32 lines
1 KiB
TypeScript
32 lines
1 KiB
TypeScript
import { TextAttributes } from "@opentui/core"
|
|
import { useTheme } from "@tui/context/theme"
|
|
import { useDialog } from "./dialog"
|
|
import { useKeyboard } from "@opentui/solid"
|
|
|
|
export function DialogHelp() {
|
|
const dialog = useDialog()
|
|
const { theme } = useTheme()
|
|
|
|
useKeyboard((evt) => {
|
|
if (evt.name === "return" || evt.name === "escape") {
|
|
dialog.clear()
|
|
}
|
|
})
|
|
|
|
return (
|
|
<box paddingLeft={2} paddingRight={2} gap={1}>
|
|
<box flexDirection="row" justifyContent="space-between">
|
|
<text attributes={TextAttributes.BOLD}>Help</text>
|
|
<text fg={theme.textMuted}>esc/enter</text>
|
|
</box>
|
|
<box paddingBottom={1}>
|
|
<text fg={theme.textMuted}>Press Ctrl+P to see all available actions and commands in any context.</text>
|
|
</box>
|
|
<box flexDirection="row" justifyContent="flex-end" paddingBottom={1}>
|
|
<box paddingLeft={3} paddingRight={3} backgroundColor={theme.primary} onMouseUp={() => dialog.clear()}>
|
|
<text fg={theme.background}>ok</text>
|
|
</box>
|
|
</box>
|
|
</box>
|
|
)
|
|
}
|