import React, { type FC, useState } from 'react'
import { createRoot } from 'react-dom/client'
import type { HotkeyOverride } from '../../index.js'
import {
focusGroupKeyUX,
focusGroupPolyfill,
getHotKeyHint,
hiddenKeyUX,
hotkeyKeyUX,
hotkeyMacCompat,
hotkeyOverrides,
jumpKeyUX,
likelyWithKeyboard,
pressKeyUX,
startKeyUX
} from '../../index.js'
let overrides: HotkeyOverride = {}
let overridesTransformer = hotkeyOverrides(overrides)
let macCompatTransformer = hotkeyMacCompat()
startKeyUX(window, [
hotkeyKeyUX([macCompatTransformer, overridesTransformer]),
focusGroupKeyUX(),
focusGroupPolyfill(),
pressKeyUX('is-pressed'),
jumpKeyUX(),
hiddenKeyUX()
])
const HotKeyHint: FC<{ hotkey: string }> = ({ hotkey }) => {
return likelyWithKeyboard(window) ? (
{getHotKeyHint(window, hotkey, [
overridesTransformer,
macCompatTransformer
])}
) : null
}
const MenuItem: FC<{
controls: string
hotkey?: string
route: string
router: string
routes?: string[]
setRouter: (value: string) => void
tabIndex?: number
}> = ({ controls, hotkey, route, router, routes, setRouter, tabIndex }) => {
if (!routes) routes = [route]
return (
{
e.preventDefault()
setRouter(route)
}}
role="menuitem"
tabIndex={tabIndex}
>
{route[0].toUpperCase() + route.slice(1)}
{hotkey ?
The {router} page{' '} { e.preventDefault() setRouter('about') }} > Back
) : (The {router} page
)} > ) } else { content = (