This commit is contained in:
nora 2021-06-24 14:42:26 +02:00
parent a96567038d
commit 579d81021a
7 changed files with 108 additions and 46 deletions

View file

@ -1,22 +1,18 @@
import './App.scss';
import CodeInput from "./components/CodeInput";
import CodeInput, {CodeOptions} from "./components/CodeInput";
import ProgramOutput from "./components/ProgramOutput";
import React, {useCallback, useState} from "react";
import Runner from "./components/Runner";
function App() {
const [out, setOut] = useState("");
const [input, setInput] = useState("");
const [input, setInput] = useState<[string, CodeOptions]>(["", {}]);
const [running, setRunning] = useState(false);
const outHandler = useCallback((char: number) => {
setOut(out => out + String.fromCharCode(char))
}, []);
const inHandler = useCallback((): number => {
return 65;
}, []);
const runHandler = (run: boolean) => {
setRunning(run);
if (!run) {
@ -24,12 +20,14 @@ function App() {
}
}
const inputHandler = (code: string, options: CodeOptions) => setInput([code, options]);
return (
<div className="App-header">
{
!running && <CodeInput setInput={input => setInput(input)}/>
!running && <CodeInput code={input[0]} setInput={inputHandler}/>
}
<Runner running={running} setRunning={runHandler} input={input} outHandler={outHandler} inHandler={inHandler}/>
<Runner running={running} setRunning={runHandler} input={input} outHandler={outHandler}/>
{
running && <ProgramOutput text={out}/>
}