Spaces:
Runtime error
Runtime error
| import React, { useState } from "react"; | |
| import { render, Box, Text, useInput } from "ink"; | |
| import { MenuSelect } from "../tui-components/MenuSelect.jsx"; | |
| function InterfaceMenuApp({ version, baseUrl, hasUpdate, latestVersion, onChoice }) { | |
| return ( | |
| <Box flexDirection="column" paddingX={2} paddingY={1}> | |
| <Box borderStyle="double" borderColor="cyan" paddingX={2} paddingY={1} flexDirection="column"> | |
| <Text bold color="cyan"> | |
| β‘ OmniRoute {version ? `v${version}` : ""} | |
| </Text> | |
| <Text dimColor>{baseUrl}</Text> | |
| </Box> | |
| {hasUpdate && ( | |
| <Box marginTop={1}> | |
| <Text color="yellow"> | |
| β Update available: v{latestVersion} (run `omniroute update --apply`) | |
| </Text> | |
| </Box> | |
| )} | |
| <Box marginTop={1}> | |
| <MenuSelect | |
| items={[ | |
| { label: "π Open Web UI in Browser", hint: "(default)" }, | |
| { label: "π» Interactive TUI Dashboard" }, | |
| { label: "π Start in Background (daemon)" }, | |
| { label: "π Show Live Logs" }, | |
| { label: "πͺ Exit" }, | |
| ]} | |
| onSelect={(item) => onChoice(item.label)} | |
| /> | |
| </Box> | |
| <Box marginTop={1}> | |
| <Text dimColor>[ββ] navigate [Enter] select [1-5] shortcut [q] exit</Text> | |
| </Box> | |
| </Box> | |
| ); | |
| } | |
| export async function showInterfaceMenu({ version, baseUrl, hasUpdate, latestVersion } = {}) { | |
| return new Promise((resolve) => { | |
| const { unmount } = render( | |
| <InterfaceMenuApp | |
| version={version} | |
| baseUrl={baseUrl} | |
| hasUpdate={hasUpdate} | |
| latestVersion={latestVersion} | |
| onChoice={(choice) => { | |
| unmount(); | |
| resolve(choice); | |
| }} | |
| /> | |
| ); | |
| }); | |
| } | |