fix(app): mount shortcuts per titlebar tab (#33567)
This commit is contained in:
parent
fed4f4d86b
commit
f8c9bfd454
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user