From b2ef55832cdeddfcf84395a35465d4dd20fcbde7 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Thu, 6 Feb 2025 20:54:39 +0100 Subject: [PATCH] hotfix: fix window cannot be dragged when light traffic widget is shown on macOS (#304) * fix: fix window cannot be dragged when light traffic widget is shown on macOS * fix: detecting tauri focus event for deeplink redirect in oauth * release: version 0.9.9 --- apps/readest-app/package.json | 2 +- apps/readest-app/release-notes.json | 9 +++++++++ apps/readest-app/src/app/auth/page.tsx | 13 +++++++++++-- .../src/app/library/components/LibraryHeader.tsx | 16 ++++++++-------- apps/readest-app/src/utils/window.ts | 9 +++++++++ 5 files changed, 38 insertions(+), 11 deletions(-) diff --git a/apps/readest-app/package.json b/apps/readest-app/package.json index 74eef798..7dc47d4e 100644 --- a/apps/readest-app/package.json +++ b/apps/readest-app/package.json @@ -1,6 +1,6 @@ { "name": "@readest/readest-app", - "version": "0.9.8", + "version": "0.9.9", "private": true, "scripts": { "dev": "dotenv -e .env.tauri -- next dev", diff --git a/apps/readest-app/release-notes.json b/apps/readest-app/release-notes.json index b0fe1360..a14f4a68 100644 --- a/apps/readest-app/release-notes.json +++ b/apps/readest-app/release-notes.json @@ -1,5 +1,14 @@ { "releases": { + "0.9.9": { + "date": "2025-02-06", + "notes": [ + "Load system fonts list at runtime on desktop", + "Incrementally load new books in synchronization", + "Change voice language dynamically by detecting text language", + "Various fixes and enhancements on sync, fonts and highlighting" + ] + }, "0.9.8": { "date": "2025-02-01", "notes": [ diff --git a/apps/readest-app/src/app/auth/page.tsx b/apps/readest-app/src/app/auth/page.tsx index dc4c69b5..bf76f0cb 100644 --- a/apps/readest-app/src/app/auth/page.tsx +++ b/apps/readest-app/src/app/auth/page.tsx @@ -16,9 +16,10 @@ import { useTheme } from '@/hooks/useTheme'; import { useEnv } from '@/context/EnvContext'; import { useSettingsStore } from '@/store/settingsStore'; import { isTauriAppPlatform } from '@/services/environment'; -import { onOpenUrl } from '@tauri-apps/plugin-deep-link'; +import { onOpenUrl, getCurrent } from '@tauri-apps/plugin-deep-link'; import { start, cancel, onUrl, onInvalidUrl } from '@fabianlars/tauri-plugin-oauth'; import { openUrl } from '@tauri-apps/plugin-opener'; +import { tauriHandleOnWindowFocus } from '@/utils/window'; import { handleAuthCallback } from '@/helpers/auth'; import { getOSPlatform } from '@/utils/misc'; @@ -90,7 +91,15 @@ export default function AuthPage() { openUrl(data.url); // FIXME: For Android we need a better way to trigger the deeplink redirect - if (getOSPlatform() === 'android') { + if (isTauriAppPlatform() && osPlatform === 'android') { + tauriHandleOnWindowFocus(async () => { + const urls = await getCurrent(); + if (urls && urls.length > 0) { + urls.forEach((url) => { + handleOAuthUrl(url); + }); + } + }); setTimeout(() => { router.back(); }, 5000); diff --git a/apps/readest-app/src/app/library/components/LibraryHeader.tsx b/apps/readest-app/src/app/library/components/LibraryHeader.tsx index 06e982fd..8b8389f2 100644 --- a/apps/readest-app/src/app/library/components/LibraryHeader.tsx +++ b/apps/readest-app/src/app/library/components/LibraryHeader.tsx @@ -43,6 +43,8 @@ const LibraryHeader: React.FC = ({ }; }, [onToggleSelectMode]); + const windowButtonVisible = appService?.appPlatform !== 'web' && !isTrafficLightVisible; + return (
= ({ > - {!isTrafficLightVisible && appService?.appPlatform !== 'web' && ( - - )} +
diff --git a/apps/readest-app/src/utils/window.ts b/apps/readest-app/src/utils/window.ts index a168fc60..9a5fdd9a 100644 --- a/apps/readest-app/src/utils/window.ts +++ b/apps/readest-app/src/utils/window.ts @@ -24,3 +24,12 @@ export const tauriHandleOnCloseWindow = async (callback: () => void) => { await exit(0); }); }; + +export const tauriHandleOnWindowFocus = async (callback: () => void) => { + const { TauriEvent } = await import('@tauri-apps/api/event'); + const { getCurrentWindow } = await import('@tauri-apps/api/window'); + const currentWindow = getCurrentWindow(); + return currentWindow.listen(TauriEvent.WINDOW_FOCUS, async () => { + await callback(); + }); +};