fix(app): mount shortcuts per titlebar tab (#33567)

This commit is contained in:
Brendan Allan 2026-06-24 09:39:30 +08:00 committed by GitHub
parent fed4f4d86b
commit f8c9bfd454
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -421,22 +421,6 @@ export function Titlebar(props: { update?: TitlebarUpdate }) {
if (next) tabs.select(next) if (next) tabs.select(next)
}, },
}, },
...Array.from({ length: 9 }, (_, i) => {
const index = i
const number = index + 1
return {
id: `tab.${number}`,
category: "tab",
title: "",
keybind: `mod+${number}`,
disabled: layout.projects.list().length <= index,
hidden: true,
onSelect: () => {
const tab = tabsStore[index]
if (tab) tabs.select(tab)
},
}
}),
].filter((v) => v !== undefined) ].filter((v) => v !== undefined)
}) })
@ -500,6 +484,7 @@ export function Titlebar(props: { update?: TitlebarUpdate }) {
<For each={tabsStore}> <For each={tabsStore}>
{(tab, i) => { {(tab, i) => {
let ref!: HTMLDivElement let ref!: HTMLDivElement
useTabShortcut(i, () => tabs.select(tab))
const divider = () => const divider = () =>
i() !== 0 && ( i() !== 0 && (
@ -854,6 +839,26 @@ function TitlebarUpdateIconButton(props: { state: TitlebarUpdatePillState }) {
) )
} }
function useTabShortcut(index: () => number, onSelect: () => void) {
const command = useCommand()
command.register(() => {
const number = index() + 1
if (number > 9) return []
return [
{
id: `tab.${number}`,
category: "tab",
title: "",
keybind: `mod+${number}`,
hidden: true,
onSelect,
},
]
})
}
function TabNavItem(props: { function TabNavItem(props: {
ref?: HTMLDivElement ref?: HTMLDivElement
href: string href: string