Files
immerse/src/types.ts
Sayuop 683c4ddafe Complete internal code renaming from FocusTask to Immerse types
- Renamed FocusTask → ImmerseTask
- Renamed FocusTaskSettings → ImmerseSettings
- Renamed FocusTaskData → ImmerseData
- Updated CSS classes: focus-task-status-* → immerse-status-*
- Updated package release script zip filename
- Updated remaining README references
- Rebuilt main.js with new type names
2025-11-23 20:12:28 +01:00

104 lines
2.6 KiB
TypeScript

// ============ Types & Interfaces ============
export interface ImmerseTask {
id: string;
text: string;
completed: boolean;
estimatedMinutes: number;
actualMinutes: number;
createdAt: number;
completedAt?: number;
list: string;
notes: string;
scheduledDate?: string;
isActive: boolean;
}
export interface TaskList {
id: string;
name: string;
color: string;
icon: string;
}
export interface ImmerseSettings {
pomodoroWorkMinutes: number;
pomodoroBreakMinutes: number;
longBreakMinutes: number;
longBreakInterval: number;
enableSounds: boolean;
enableCelebrations: boolean;
defaultEstimateMinutes: number;
lists: TaskList[];
autoStartBreak: boolean;
tickSoundEnabled: boolean;
// Daily note logging
logToDaily: boolean;
}
export interface ImmerseData {
tasks: ImmerseTask[];
completedToday: number;
totalFocusMinutesToday: number;
streak: number;
lastActiveDate: string;
pomodorosCompleted: number;
}
export const DEFAULT_SETTINGS: ImmerseSettings = {
pomodoroWorkMinutes: 25,
pomodoroBreakMinutes: 5,
longBreakMinutes: 15,
longBreakInterval: 4,
enableSounds: true,
enableCelebrations: true,
defaultEstimateMinutes: 30,
lists: [
{ id: 'work', name: 'Work', color: '#6366f1', icon: '💼' },
{ id: 'personal', name: 'Personal', color: '#22c55e', icon: '🏠' },
{ id: 'learning', name: 'Learning', color: '#f59e0b', icon: '📚' },
],
autoStartBreak: true,
tickSoundEnabled: false,
// Daily note logging
logToDaily: false,
};
export const DEFAULT_DATA: ImmerseData = {
tasks: [],
completedToday: 0,
totalFocusMinutesToday: 0,
streak: 0,
lastActiveDate: '',
pomodorosCompleted: 0,
};
export const VIEW_TYPE_IMMERSE = 'immerse-view';
// ============ Celebration Messages ============
export const CELEBRATION_MESSAGES = [
{ emoji: '💥', message: 'Crushed it!' },
{ emoji: '🔥', message: 'On fire!' },
{ emoji: '⚡', message: 'Lightning fast!' },
{ emoji: '🎯', message: 'Bullseye!' },
{ emoji: '🚀', message: 'Blasting through!' },
{ emoji: '💪', message: 'Strong work!' },
{ emoji: '🌟', message: 'Stellar!' },
{ emoji: '✨', message: 'Brilliant!' },
{ emoji: '🏆', message: 'Champion!' },
{ emoji: '🎉', message: 'Well done!' },
];
export const EARLY_FINISH_MESSAGES = [
{ emoji: '⚡', message: 'Speed demon! Finished early!' },
{ emoji: '🏎️', message: 'Faster than expected!' },
{ emoji: '🎯', message: 'Under budget! Nice work!' },
];
export const OVERTIME_MESSAGES = [
{ emoji: '💪', message: 'Persistence pays off!' },
{ emoji: '🏃', message: 'Marathon runner!' },
{ emoji: '🔥', message: 'The grind is real!' },
];