From b48ab3c85d3d9aa3d3c03a71c4ccc85c8d0aad47 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 1 Jun 2026 10:56:35 +0500 Subject: [PATCH 1/2] mobile: fix query error on fetching themes in theme-selector --- .../app/screens/settings/theme-selector.tsx | 35 ++++++++----------- apps/mobile/package-lock.json | 30 ++++++++-------- apps/mobile/package.json | 8 ++--- 3 files changed, 34 insertions(+), 39 deletions(-) diff --git a/apps/mobile/app/screens/settings/theme-selector.tsx b/apps/mobile/app/screens/settings/theme-selector.tsx index a6e2a3076..c6cefbf82 100644 --- a/apps/mobile/app/screens/settings/theme-selector.tsx +++ b/apps/mobile/app/screens/settings/theme-selector.tsx @@ -31,7 +31,11 @@ import type { ThemesRouter } from "@notesnook/themes-server"; import { keepLocalCopy, pick } from "@react-native-documents/picker"; -import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { + notifyManager, + QueryClient, + QueryClientProvider +} from "@tanstack/react-query"; import { createTRPCProxyClient, httpBatchLink } from "@trpc/client"; import { createTRPCReact } from "@trpc/react-query"; import React, { useState } from "react"; @@ -69,7 +73,8 @@ export const themeTrpcClient = createTRPCProxyClient({ }) ] }); - +notifyManager.setBatchNotifyFunction((cb) => cb()); +notifyManager.setNotifyFunction((cb) => cb()); function ThemeSelector() { const [darkTheme, lightTheme] = useThemeStore((state) => [ state.darkTheme, @@ -80,30 +85,20 @@ function ThemeSelector() { const themeColors = colors; const [searchQuery, setSearchQuery] = useState(); const [colorScheme, setColorScheme] = useState(); + + const filters = []; + if (searchQuery) filters.push({ type: "term" as const, value: searchQuery }); + if (colorScheme) + filters.push({ type: "colorScheme" as const, value: colorScheme }); + const themes = trpc.themes.useInfiniteQuery( { limit: 10, compatibilityVersion: THEME_COMPATIBILITY_VERSION, - filters: [ - ...(searchQuery && searchQuery !== "" - ? [ - { - type: "term" as const, - value: searchQuery - } - ] - : []), - ...(colorScheme && colorScheme !== "" - ? [ - { - type: "colorScheme" as const, - value: colorScheme - } - ] - : []) - ] + filters }, { + keepPreviousData: true, getNextPageParam: (lastPage) => lastPage.nextCursor } ); diff --git a/apps/mobile/package-lock.json b/apps/mobile/package-lock.json index bcff135b9..d8ef641eb 100644 --- a/apps/mobile/package-lock.json +++ b/apps/mobile/package-lock.json @@ -1,12 +1,12 @@ { "name": "@notesnook/mobile", - "version": "3.3.23", + "version": "3.3.24", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@notesnook/mobile", - "version": "3.3.23", + "version": "3.3.24", "hasInstallScript": true, "license": "GPL-3.0-or-later", "dependencies": { @@ -51,10 +51,10 @@ "@sayem314/react-native-keep-awake": "^1.3.1", "@streetwriters/kysely": "^0.27.4", "@streetwriters/showdown": "^3.0.1-alpha.2", - "@tanstack/react-query": "^4.36.1", - "@trpc/client": "^10.45.2", - "@trpc/react-query": "^10.45.2", - "@trpc/server": "^10.45.2", + "@tanstack/react-query": "^4.18.0", + "@trpc/client": "10.45.2", + "@trpc/react-query": "10.45.2", + "@trpc/server": "10.45.2", "@types/validator": "^13.12.2", "absolutify": "^0.1.0", "async-mutex": "0.5.0", @@ -5634,9 +5634,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.41.0.tgz", - "integrity": "sha512-193R4Jp9hjvlij6LryxrB5Mpbffd2L9PeWh3KlIy/hJV4SkBOfiQZ+jc5qAZLDCrdbkA5FjGj+UoDYw6TcNnyA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.18.0.tgz", + "integrity": "sha512-PP4mG8MD08sq64RZCqMfXMYfaj7+Oulwg7xZ/fJoEOdTZNcPIgaOkHajZvUBsNLbi/0ViMvJB4cFkL2Jg2WPbw==", "license": "MIT", "funding": { "type": "github", @@ -5644,12 +5644,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "4.42.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.42.0.tgz", - "integrity": "sha512-j0tiofkzE3CSrYKmVRaKuwGgvCE+P2OOEDlhmfjeZf5ufcuFHwYwwgw3j08n4WYPVZ+OpsHblcFYezhKA3jDwg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.18.0.tgz", + "integrity": "sha512-s1kdbGMdVcfUIllzsHUqVUdktBT5uuIRgnvrqFNLjl9TSOXEoBSDrhjsGjao0INQZv8cMpQlgOh3YH9YtN6cKw==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "4.41.0", + "@tanstack/query-core": "4.18.0", "use-sync-external-store": "^1.2.0" }, "funding": { @@ -5657,8 +5657,8 @@ "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", "react-native": "*" }, "peerDependenciesMeta": { diff --git a/apps/mobile/package.json b/apps/mobile/package.json index fc4cad762..7e4c1c6f6 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -69,10 +69,10 @@ "@sayem314/react-native-keep-awake": "^1.3.1", "@streetwriters/kysely": "^0.27.4", "@streetwriters/showdown": "^3.0.1-alpha.2", - "@tanstack/react-query": "^4.36.1", - "@trpc/client": "^10.45.2", - "@trpc/react-query": "^10.45.2", - "@trpc/server": "^10.45.2", + "@tanstack/react-query": "^4.18.0", + "@trpc/client": "10.45.2", + "@trpc/react-query": "10.45.2", + "@trpc/server": "10.45.2", "@types/validator": "^13.12.2", "absolutify": "^0.1.0", "async-mutex": "0.5.0", From 82d37701c551fb908e4277f7f96d097ccd77deaa Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Mon, 1 Jun 2026 11:09:29 +0500 Subject: [PATCH 2/2] mobile: fix gap in buttons --- .../app/screens/settings/theme-selector.tsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/mobile/app/screens/settings/theme-selector.tsx b/apps/mobile/app/screens/settings/theme-selector.tsx index c6cefbf82..073adbd02 100644 --- a/apps/mobile/app/screens/settings/theme-selector.tsx +++ b/apps/mobile/app/screens/settings/theme-selector.tsx @@ -361,12 +361,14 @@ function ThemeSelector() { >