Files
laude/src/shared/ipc.ts
AnRil e96ca06587 feat(window): maximize toggle + drag-zone fix + minWidth bump
- Средняя кнопка тайтлбара теперь 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
  (стек, архитектура, команды, релиз, тех. долг, чего не делать).
2026-05-19 17:52:54 +07:00

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