From 57a587301bc1e5cce1070228ddcdd905223a8218 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 27 Jun 2024 13:35:06 +0530 Subject: [PATCH] Hook back into the app --- web/apps/photos/src/pages/_app.tsx | 4 ++-- web/apps/photos/src/services/face/indexer.ts | 13 ++++++------- web/apps/photos/src/services/searchService.ts | 4 +--- web/apps/photos/src/services/sync.ts | 6 +++--- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/web/apps/photos/src/pages/_app.tsx b/web/apps/photos/src/pages/_app.tsx index 1cdcb6b3b8..a012881fb9 100644 --- a/web/apps/photos/src/pages/_app.tsx +++ b/web/apps/photos/src/pages/_app.tsx @@ -202,7 +202,7 @@ export default function App({ Component, pageProps }: AppProps) { } const loadMlSearchState = async () => { try { - const enabled = await isFaceIndexingEnabled(); + const enabled = isFaceIndexingEnabled(); setMlSearchEnabled(enabled); mlWorkManager.setMlSearchEnabled(enabled); } catch (e) { @@ -302,7 +302,7 @@ export default function App({ Component, pageProps }: AppProps) { const showNavBar = (show: boolean) => setShowNavBar(show); const updateMlSearchEnabled = async (enabled: boolean) => { try { - await setIsFaceIndexingEnabled(enabled); + setIsFaceIndexingEnabled(enabled); setMlSearchEnabled(enabled); mlWorkManager.setMlSearchEnabled(enabled); } catch (e) { diff --git a/web/apps/photos/src/services/face/indexer.ts b/web/apps/photos/src/services/face/indexer.ts index 74e700a3f0..820b9c4519 100644 --- a/web/apps/photos/src/services/face/indexer.ts +++ b/web/apps/photos/src/services/face/indexer.ts @@ -215,17 +215,16 @@ export const canEnableFaceIndexing = async () => * on any client. This {@link isFaceIndexingEnabled} property, on the other * hand, denotes whether or not indexing is enabled on the current client. */ -export const isFaceIndexingEnabled = async () => { - return localStorage.getItem("faceIndexingEnabled") == "1"; -}; +export const isFaceIndexingEnabled = () => + localStorage.getItem("faceIndexingEnabled") == "1"; /** * Update the (locally stored) value of {@link isFaceIndexingEnabled}. */ -export const setIsFaceIndexingEnabled = async (enabled: boolean) => { - if (enabled) localStorage.setItem("faceIndexingEnabled", "1"); - else localStorage.removeItem("faceIndexingEnabled"); -}; +export const setIsFaceIndexingEnabled = (enabled: boolean) => + enabled + ? localStorage.setItem("faceIndexingEnabled", "1") + : localStorage.removeItem("faceIndexingEnabled"); /** * Sync face DB with the local (and potentially indexable) files that we know diff --git a/web/apps/photos/src/services/searchService.ts b/web/apps/photos/src/services/searchService.ts index 9fe1580e55..5247ef61e4 100644 --- a/web/apps/photos/src/services/searchService.ts +++ b/web/apps/photos/src/services/searchService.ts @@ -32,9 +32,7 @@ export const getDefaultOptions = async () => { return [ // TODO-ML(MR): Skip this for now if indexing is disabled (eventually // the indexing status should not be tied to results). - ...((await isFaceIndexingEnabled()) - ? [await getIndexStatusSuggestion()] - : []), + ...(isFaceIndexingEnabled() ? [await getIndexStatusSuggestion()] : []), ...(await convertSuggestionsToOptions(await getAllPeopleSuggestion())), ].filter((t) => !!t); }; diff --git a/web/apps/photos/src/services/sync.ts b/web/apps/photos/src/services/sync.ts index 19f5812834..05481d9597 100644 --- a/web/apps/photos/src/services/sync.ts +++ b/web/apps/photos/src/services/sync.ts @@ -1,8 +1,10 @@ +import { faceWorker } from "@/new/photos/services/face"; import { fetchAndSaveFeatureFlagsIfNeeded } from "@/new/photos/services/feature-flags"; import { clipService } from "services/clip-service"; import { syncCLIPEmbeddings } from "services/embeddingService"; import { syncEntities } from "services/entityService"; import { syncMapEnabled } from "services/userService"; +import { isFaceIndexingEnabled } from "./face/indexer"; /** * Perform a soft "refresh" by making various API calls to fetch state from @@ -20,9 +22,7 @@ export const sync = async () => { const electron = globalThis.electron; if (electron) { await syncCLIPEmbeddings(); - // TODO-ML(MR): Disable fetch until we start storing it in the - // same place as the local ones. - // if (isFaceIndexingEnabled()) await syncFaceEmbeddings(); + if (isFaceIndexingEnabled()) await (await faceWorker()).sync(); } if (clipService.isPlatformSupported()) { void clipService.scheduleImageEmbeddingExtraction();