mirror of
https://github.com/supabase/supabase.git
synced 2026-10-10 20:05:06 +03:00
Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
74 lines
1.3 KiB
TypeScript
74 lines
1.3 KiB
TypeScript
import { Button } from '@ui/components/shadcn/ui/button'
|
|
import { useMemo } from 'react'
|
|
import {
|
|
CommandInput,
|
|
CommandList,
|
|
CommandMenu,
|
|
CommandMenuTrigger as CommandMenuTriggerPrimitive,
|
|
CommandProvider,
|
|
PageType,
|
|
useRegisterCommands,
|
|
useRegisterPage,
|
|
useSetPage,
|
|
} from 'ui-patterns/CommandMenu'
|
|
|
|
function Commands() {
|
|
const setPage = useSetPage()
|
|
|
|
const commands = useMemo(
|
|
() => [
|
|
{
|
|
id: 'subcommand',
|
|
name: 'Subcommand',
|
|
action: () => alert('Triggered from subpage'),
|
|
},
|
|
],
|
|
[]
|
|
)
|
|
|
|
useRegisterPage(
|
|
'Subpage',
|
|
{
|
|
type: PageType.Commands,
|
|
sections: [
|
|
{
|
|
id: 'subpage',
|
|
name: 'Subpage',
|
|
commands,
|
|
},
|
|
],
|
|
},
|
|
{ deps: [commands] }
|
|
)
|
|
|
|
useRegisterCommands('Commands', [
|
|
{
|
|
id: 'subpage',
|
|
name: 'Go to subpage',
|
|
action: () => setPage('Subpage'),
|
|
},
|
|
])
|
|
|
|
return null
|
|
}
|
|
|
|
function CommandMenuTrigger() {
|
|
return (
|
|
<CommandMenuTriggerPrimitive>
|
|
<Button>Open command menu</Button>
|
|
</CommandMenuTriggerPrimitive>
|
|
)
|
|
}
|
|
|
|
export default function CommandMenuDemo() {
|
|
return (
|
|
<CommandProvider openKey="">
|
|
<Commands />
|
|
<CommandMenu trigger={<CommandMenuTrigger />}>
|
|
<CommandInput />
|
|
<CommandList />
|
|
</CommandMenu>
|
|
</CommandProvider>
|
|
)
|
|
}
|