- Средняя кнопка тайтлбара теперь toggle maximize/restore (была hide-to-tray, но иконка Square вводила в заблуждение — выглядит как нативная maximize). Double-click по тайтлбару тоже работает. - Иконка свапается Square ↔ Copy в зависимости от max-state, aria-label локализован (titlebar.maximize_aria / restore_aria). - Новый IPC: toggleMaximizeMain, isMaximizedMain (invoke), evtMaximizeChanged (event main → renderer на maximize/unmaximize). - Фикс drag-зоны: titlebar-nodrag перенесён с обёртки правого кластера на сами кнопки. Из-за flex-1 basis-0 пустое место слева от кнопок раньше было no-drag — окно нельзя было ухватить рядом. - minWidth/minHeight окна 900x600 → 1100x700, чтобы Tailwind lg: всегда срабатывал (4 hero-stat в один ряд, heatmap без скролла). - CLAUDE.md: контекст проекта для будущих сессий Claude Code (стек, архитектура, команды, релиз, тех. долг, чего не делать).
62 lines
1.7 KiB
TypeScript
62 lines
1.7 KiB
TypeScript
export const IPC = {
|
|
getState: 'state:get',
|
|
addExercise: 'exercise:add',
|
|
updateExercise: 'exercise:update',
|
|
deleteExercise: 'exercise:delete',
|
|
toggleExercise: 'exercise:toggle',
|
|
markDone: 'exercise:markDone',
|
|
snooze: 'exercise:snooze',
|
|
skip: 'exercise:skip',
|
|
|
|
updateSettings: 'settings:update',
|
|
getAccentColor: 'system:accentColor',
|
|
getOsTheme: 'system:osTheme',
|
|
|
|
pauseAll: 'app:pauseAll',
|
|
resumeAll: 'app:resumeAll',
|
|
quit: 'app:quit',
|
|
minimizeMain: 'window:minimize',
|
|
toggleMaximizeMain: 'window:toggleMaximize',
|
|
isMaximizedMain: 'window:isMaximized',
|
|
closeMain: 'window:close',
|
|
hideMain: 'window:hide',
|
|
|
|
reminderClose: 'reminder:close',
|
|
|
|
// Games
|
|
gamesList: 'games:list',
|
|
gameInstall: 'games:install',
|
|
gameUninstall: 'games:uninstall',
|
|
gameToggle: 'games:toggle',
|
|
gameOpenLaunchOptions: 'games:openLaunchOptions',
|
|
|
|
// Challenges
|
|
addChallenge: 'challenge:add',
|
|
updateChallenge: 'challenge:update',
|
|
deleteChallenge: 'challenge:delete',
|
|
toggleChallenge: 'challenge:toggle',
|
|
markChallengeDone: 'challenge:markDone',
|
|
closeMatchSummary: 'matchSummary:close',
|
|
|
|
// Auto-updater
|
|
updaterStatus: 'updater:status',
|
|
updaterCheck: 'updater:check',
|
|
updaterDownload: 'updater:download',
|
|
updaterInstall: 'updater:install',
|
|
|
|
// History
|
|
getHistory: 'history:get',
|
|
clearHistory: 'history:clear',
|
|
|
|
// events from main → renderer
|
|
evtTick: 'evt:tick',
|
|
evtFire: 'evt:fire',
|
|
evtMatchEnd: 'evt:matchEnd',
|
|
evtStateChanged: 'evt:stateChanged',
|
|
evtThemeChanged: 'evt:themeChanged',
|
|
evtAccentChanged: 'evt:accentChanged',
|
|
evtGamesChanged: 'evt:gamesChanged',
|
|
evtUpdaterStatus: 'evt:updaterStatus',
|
|
evtMaximizeChanged: 'evt:maximizeChanged'
|
|
} as const
|