diff --git a/src/renderer/src/services/QuickPhraseService.ts b/src/renderer/src/services/QuickPhraseService.ts index 876704cd07..3ec0439053 100644 --- a/src/renderer/src/services/QuickPhraseService.ts +++ b/src/renderer/src/services/QuickPhraseService.ts @@ -3,7 +3,24 @@ import { QuickPhrase } from '@renderer/types' import { v4 as uuidv4 } from 'uuid' export class QuickPhraseService { + private static _isInitialized: boolean = false + + static async init() { + if (QuickPhraseService._isInitialized) { + return + } + + try { + await db.open() + QuickPhraseService._isInitialized = true + } catch (error) { + console.error('Failed to open Dexie database:', error) + } + } + static async getAll(): Promise { + // Ensure database is initialized before + await QuickPhraseService.init() const phrases = await db.quick_phrases.toArray() return phrases.sort((a, b) => (b.order ?? 0) - (a.order ?? 0)) } @@ -34,6 +51,7 @@ export class QuickPhraseService { } static async update(id: string, data: Pick): Promise { + await QuickPhraseService.init() await db.quick_phrases.update(id, { ...data, updatedAt: Date.now() @@ -54,6 +72,7 @@ export class QuickPhraseService { static async updateOrder(phrases: QuickPhrase[]): Promise { const now = Date.now() + await QuickPhraseService.init() await Promise.all( phrases.map((phrase, index) => db.quick_phrases.update(phrase.id, {