diff --git a/apps/mobile/app/stores/create-db-collection-store.ts b/apps/mobile/app/stores/create-db-collection-store.ts index 46ace3c58..0ac487e76 100644 --- a/apps/mobile/app/stores/create-db-collection-store.ts +++ b/apps/mobile/app/stores/create-db-collection-store.ts @@ -21,6 +21,8 @@ import { Item, VirtualizedGrouping } from "@notesnook/core"; import create, { State, StoreApi, UseBoundStore } from "zustand"; import { resolveItems } from "@notesnook/common"; import { useSettingStore } from "./use-setting-store"; +import { DatabaseLogger } from "../common/database"; +import { ToastManager } from "../services/event-manager"; export interface DBCollectionStore extends State { items: VirtualizedGrouping | undefined; @@ -55,14 +57,21 @@ export default function createDBCollectionStore({ items: undefined, loading: true, refresh: async () => { - const items = await getCollection(); - if (get().loading && eagerlyFetchFirstBatch) { - await items.item(0, resolveItems); + try { + const items = await getCollection(); + if (get().loading && eagerlyFetchFirstBatch) { + await items.item(0, resolveItems); + } + set({ + items, + loading: false + }); + } catch (e) { + DatabaseLogger.error(e as Error, "useDBCollectionStore.refresh", { + useDBCollectionStore: "refresh" + }); + ToastManager.error(e as Error, "Failed to load items"); } - set({ - items, - loading: false - }); }, clear: () => set({ items: undefined, loading: true }) }));