Desktop: custom context menus everywhere, never the browser's menu

One ContextMenu in the design system (keyboard, type-ahead, submenus, check items,
disabled reasons, Shift+F10 / Menu key, viewport placement, light and dark). The
native menu is prevented globally; text fields keep Cut / Copy / Paste / Select all.
Menus on sidebar and portfolio apps, app hero, releases, store art, live art,
reviews, checks, editor fields, catalog, prices, accounts, app folders, ignored.
This commit is contained in:
CRTkafa 2026-10-23 08:59:14 +08:00
parent 944b24fe59
commit dece83c3e8
23 changed files with 839 additions and 28 deletions

View file

@ -8,6 +8,7 @@ import { PrefsContext } from './prefs-ctx';
import { installGlobalHandlers, report } from './lib/crash';
import { DataProvider } from './store';
import { ErrorBoundary } from './ui/ErrorBoundary';
import { ContextMenuProvider } from './ui/ContextMenu';
import { ExportProvider } from './ui/Exports';
import './styles.css';
import './design.css';
@ -36,7 +37,7 @@ function Root() {
update({ ...prefs, theme: dark ? 'light' : 'dark' });
}, [prefs, update]);
// a language change re-renders the whole tree in the new language
return <PrefsContext.Provider value={{ prefs, update }}><DataProvider><ExportProvider><App key={lang} onTheme={onTheme} /></ExportProvider></DataProvider></PrefsContext.Provider>;
return <PrefsContext.Provider value={{ prefs, update }}><DataProvider><ExportProvider><ContextMenuProvider><App key={lang} onTheme={onTheme} /></ContextMenuProvider></ExportProvider></DataProvider></PrefsContext.Provider>;
}
installGlobalHandlers();