the prompt now displays and works with unknown command

This commit is contained in:
2025-02-06 20:51:25 -05:00
parent 273f748ff1
commit acf460772c
9 changed files with 133 additions and 62 deletions

View File

@ -1,7 +1,8 @@
import { useState } from "react"
import { useState, type JSX } from "react"
import { red } from "../shell/color"
import { display_prompt, keyboard_events } from "../shell/events"
import { display_prompt, keyboard_event } from "../shell/events"
import React from "react"
const terminal_window = document.querySelector("main")
@ -14,14 +15,21 @@ function panic(message: string) {
</>
}
type newElement = (elements: JSX.Element[]) => void
export default function Shell() {
if (terminal_window) {
const [existingPrompts, setPrompt] = useState([display_prompt()])
keyboard_event(terminal_window, existingPrompts, setPrompt)
const [renderedElements, renderElement] = useState([display_prompt()])
const new_element_f = (elements: JSX.Element[]) => renderElement([...renderedElements, ...elements])
return existingPrompts.map((ps1, k) => <div className="shell-prompt" key={k}>{ps1}</div>)
keyboard_events(terminal_window, new_element_f)
return renderedElements.map((element, k) => <React.Fragment key={k}>{element}</React.Fragment>)
}
return panic("The <main> element is missing")
}
export { panic }
export {
panic,
type newElement,
}