simplify some things

This commit is contained in:
Joeri Exelmans 2025-05-13 13:11:57 +02:00
parent fa70d2f3f4
commit 9ef160aeb7
8 changed files with 105 additions and 30 deletions

View file

@ -1,4 +1,4 @@
import type { EditorState } from "./Editor";
import { Editor, type EditorState } from "./Editor";
import type { Dynamic, State2Props } from "./util/extra";
@ -16,6 +16,36 @@ interface LetInBlockProps extends State2Props<LetInBlockState> {
}
export function LetInBlock({env, name, value, inner, resolved, onResolve}) {
}
export function LetInBlock({state, setState, onResolve}: LetInBlockProps) {
const {env, name, value, inner, resolved} = state;
const onChangeName = (e: React.ChangeEvent<HTMLInputElement>) => {
setState({...state, name: e.target.value});
}
return <span className="letIn">
<div className="decl">
let <input
className='editable'
value={name}
placeholder="<variable name>"
onChange={onChangeName}
/> =
<Editor
state={value}
filter={() => true}
onResolve={(state: EditorState) => {} }
onCancel={() => {} }
setState={(state: EditorState) => {} }
/>
in
</div>
<div className="inner">
<Editor
state={inner}
filter={() => true}
onResolve={(state: EditorState) => {} }
onCancel={() => {} }
setState={(state: EditorState) => {} }
/>
</div>
</span>
}