diff --git a/src/services/tauri-db.ts b/src/services/tauri-db.ts index 001c241..89c6e73 100644 --- a/src/services/tauri-db.ts +++ b/src/services/tauri-db.ts @@ -1,5 +1,13 @@ import { invoke } from '@tauri-apps/api/core' +function safeInvoke(cmd: string, args?: Record): Promise { + if (typeof invoke !== 'function') { + console.warn(`[Alpha] Tauri invoke no disponible (${cmd}). ¿Estás en un navegador externo? Usá la ventana de Tauri.`) + return Promise.resolve(null as unknown as T) + } + return safeInvoke(cmd, args) +} + export interface ProjectRecord { id: number name: string @@ -126,99 +134,99 @@ export interface PerformanceRecord { export const tauriDb = { // Projects getProjects(): Promise { - return invoke('get_projects') + return safeInvoke('get_projects') }, saveProject(project: ProjectRecord): Promise { - return invoke('save_project', { project }) + return safeInvoke('save_project', { project }) }, deleteProject(id: number): Promise { - return invoke('delete_project', { id }) + return safeInvoke('delete_project', { id }) }, // Work Items getWorkItems(projectId: number): Promise { - return invoke('get_work_items', { projectId }) + return safeInvoke('get_work_items', { projectId }) }, saveWorkItem(item: WorkItemRecord): Promise { - return invoke('save_work_item', { item }) + return safeInvoke('save_work_item', { item }) }, deleteWorkItem(id: number): Promise { - return invoke('delete_work_item', { id }) + return safeInvoke('delete_work_item', { id }) }, // Epics getEpics(initiativeId: number): Promise { - return invoke('get_epics', { initiativeId }) + return safeInvoke('get_epics', { initiativeId }) }, saveEpic(epic: EpicRecord): Promise { - return invoke('save_epic', { epic }) + return safeInvoke('save_epic', { epic }) }, deleteEpic(id: number): Promise { - return invoke('delete_epic', { id }) + return safeInvoke('delete_epic', { id }) }, // User Stories getUserStories(initiativeId: number, epicId?: number): Promise { - return invoke('get_user_stories', { initiativeId, epicId: epicId ?? null }) + return safeInvoke('get_user_stories', { initiativeId, epicId: epicId ?? null }) }, saveUserStory(story: UserStoryRecord): Promise { - return invoke('save_user_story', { story }) + return safeInvoke('save_user_story', { story }) }, deleteUserStory(id: number): Promise { - return invoke('delete_user_story', { id }) + return safeInvoke('delete_user_story', { id }) }, // Users getUsers(): Promise { - return invoke('get_users') + return safeInvoke('get_users') }, saveUser(user: AlphaUserRecord): Promise { - return invoke('save_user', { user }) + return safeInvoke('save_user', { user }) }, updateUserFields(id: number, role: string | null, seniority: string | null, cell_id: number | null): Promise { - return invoke('update_user_fields', { id, role, seniority, cellId: cell_id }) + return safeInvoke('update_user_fields', { id, role, seniority, cellId: cell_id }) }, // Cells getCells(): Promise { - return invoke('get_cells') + return safeInvoke('get_cells') }, saveCell(cell: CellRecord): Promise { - return invoke('save_cell', { cell }) + return safeInvoke('save_cell', { cell }) }, // Project Members getProjectMembers(userId: number): Promise { - return invoke('get_project_members', { userId }) + return safeInvoke('get_project_members', { userId }) }, saveProjectMembers(userId: number, members: ProjectMemberRecord[]): Promise { - return invoke('save_project_members', { userId, members }) + return safeInvoke('save_project_members', { userId, members }) }, // Absences getAbsences(userId: number): Promise { - return invoke('get_absences', { userId }) + return safeInvoke('get_absences', { userId }) }, saveAbsence(absence: AbsenceRecord): Promise { - return invoke('save_absence', { absence }) + return safeInvoke('save_absence', { absence }) }, deleteAbsence(id: number): Promise { - return invoke('delete_absence', { id }) + return safeInvoke('delete_absence', { id }) }, // Daily Logs getDailyLogs(userId: number, initiativeId?: number): Promise { - return invoke('get_daily_logs', { userId, initiativeId: initiativeId ?? null }) + return safeInvoke('get_daily_logs', { userId, initiativeId: initiativeId ?? null }) }, saveDailyLog(log: DailyLogRecord): Promise { - return invoke('save_daily_log', { log }) + return safeInvoke('save_daily_log', { log }) }, // Performance getPerformance(userId: number, initiativeId?: number): Promise { - return invoke('get_performance', { userId, initiativeId }) + return safeInvoke('get_performance', { userId, initiativeId }) }, savePerformance(snap: PerformanceRecord): Promise { - return invoke('save_performance', { snap }) + return safeInvoke('save_performance', { snap }) }, } diff --git a/src/views/SchedulerView.vue b/src/views/SchedulerView.vue index 11a5faf..da5dd45 100644 --- a/src/views/SchedulerView.vue +++ b/src/views/SchedulerView.vue @@ -1,5 +1,6 @@