- 设置页新增「键盘快捷键」分类,可自定义快捷键绑定 - 支持快速滚动(Home/End/PageUp/PageDown)与导航跳转(Ctrl/Cmd+数字) - 快捷键绑定与开关按动作独立持久化,默认关闭 - 新增 ui 包 keybinding 组件与工具(KeybindingModal/KeybindingChips 等)
This commit is contained in:
1 parent
47bdb1e79c
commit
2e92887eb2
24 files changed
+2432
-5
No files matched your search
@@ -6,6 +6,18 @@ import {
|
||||
resolveFontFamily,
|
||||
} from '@/helpers/font-family.ts'
|
||||
|
||||
/**
|
||||
* Mirrors `KeyBinding` from `@modrinth/ui`. Declared here so this module stays
|
||||
* loadable without the UI package.
|
||||
*/
|
||||
export interface ShortcutBinding {
|
||||
device: 'keyboard' | 'mouse'
|
||||
code: string
|
||||
mod: boolean
|
||||
shift: boolean
|
||||
alt: boolean
|
||||
}
|
||||
|
||||
let systemThemeMq: MediaQueryList | null = null
|
||||
|
||||
export const DEFAULT_FEATURE_FLAGS = {
|
||||
@@ -135,8 +147,30 @@ export type ThemeStore = {
|
||||
minimalHomeInstanceId: string | null
|
||||
closeBehavior: CloseBehavior
|
||||
|
||||
/** Whether the floating "back to top" button is shown on scrollable pages. */
|
||||
showScrollTop: boolean
|
||||
/** Whether quick scrolling shortcuts (Home/End/PageUp/PageDown) are active. */
|
||||
quickScrollEnabled: boolean
|
||||
/** Per-nav-item quick jump shortcuts (Ctrl/Cmd + number), off by default. */
|
||||
shortcutNavHome: boolean
|
||||
shortcutNavWorlds: boolean
|
||||
shortcutNavDiscover: boolean
|
||||
shortcutNavSkins: boolean
|
||||
shortcutNavMultiplayer: boolean
|
||||
shortcutNavLibrary: boolean
|
||||
shortcutNavLab: boolean
|
||||
shortcutNavDownloads: boolean
|
||||
shortcutNavCreate: boolean
|
||||
shortcutNavSettings: boolean
|
||||
|
||||
/**
|
||||
* The combination every shortcut answers to, keyed by action id. Kept here so
|
||||
* pages re-render when one is recorded; the value itself lives in local
|
||||
* storage, next to the enable flags.
|
||||
*/
|
||||
shortcutBindings: Record<string, ShortcutBinding>
|
||||
|
||||
devMode: boolean
|
||||
featureFlags: FeatureFlags
|
||||
|
||||
uiFont: string | null
|
||||
monoFont: string | null
|
||||
@@ -162,6 +196,22 @@ export const DEFAULT_THEME_STORE: ThemeStore = {
|
||||
minimalHomeInstanceId: null,
|
||||
closeBehavior: 'ask',
|
||||
|
||||
showScrollTop: true,
|
||||
quickScrollEnabled: false,
|
||||
|
||||
shortcutNavHome: false,
|
||||
shortcutNavWorlds: false,
|
||||
shortcutNavDiscover: false,
|
||||
shortcutNavSkins: false,
|
||||
shortcutNavMultiplayer: false,
|
||||
shortcutNavLibrary: false,
|
||||
shortcutNavLab: false,
|
||||
shortcutNavDownloads: false,
|
||||
shortcutNavCreate: false,
|
||||
shortcutNavSettings: false,
|
||||
|
||||
shortcutBindings: {},
|
||||
|
||||
devMode: false,
|
||||
featureFlags: DEFAULT_FEATURE_FLAGS,
|
||||
|
||||
|
||||
Reference in new issue
Block a user