set default editor state to something non-empty

This commit is contained in:
Joeri Exelmans 2025-05-12 15:50:13 +02:00
parent 0a9dbd454f
commit f75d0641b4

View file

@ -2,9 +2,89 @@
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import './App.css' import './App.css'
import { Editor, initialEditorState, type EditorState } from './Editor' import { Editor, initialEditorState, type EditorState } from './Editor'
import { trie, apply, Int } from "dope2";
const listPush = trie.get(initialEditorState.env.name2dyn)("list.push");
const listEmptyList = trie.get(initialEditorState.env.name2dyn)("list.emptyList");
const fourtyTwo = {i: 42n, t: Int};
const nonEmptyEditorState: EditorState = {
kind: "call",
env: initialEditorState.env,
fn: {
kind: "call",
env: initialEditorState.env,
fn: {
kind: "input",
env: initialEditorState.env,
text: "list.push",
resolved: listPush,
},
input: {
kind: "input",
env: initialEditorState.env,
text: "list.emptyList",
resolved: listEmptyList,
},
resolved: apply(listEmptyList)(listPush),
},
input: {
kind: "input",
env: initialEditorState.env,
text: "42",
resolved: fourtyTwo,
},
resolved: apply(fourtyTwo)(apply(listEmptyList)(listPush)),
};
const functionWith3Params = trie.get(initialEditorState.env.name2dyn)("functionWith3Params");
const fourtyThree = {i: 43n, t: Int};
const fourtyFour = {i: 44n, t: Int};
const tripleFunctionCallEditorState: EditorState = {
kind: "call",
env: initialEditorState.env,
fn: {
kind: "call",
env: initialEditorState.env,
fn: {
kind: "call",
env: initialEditorState.env,
fn: {
kind: "input",
env: initialEditorState.env,
text: "functionWith3Params",
resolved: functionWith3Params,
},
input: {
kind: "input",
env: initialEditorState.env,
text: "42",
resolved: fourtyTwo,
},
resolved: apply(fourtyTwo)(functionWith3Params),
},
input: {
kind: "input",
env: initialEditorState.env,
text: "43",
resolved: fourtyThree,
},
resolved: apply(fourtyThree)(apply(fourtyTwo)(functionWith3Params)),
},
input: {
kind: "input",
env: initialEditorState.env,
text: "44",
resolved: fourtyFour,
},
resolved: apply(fourtyFour)(apply(fourtyThree)(apply(fourtyTwo)(functionWith3Params))),
}
export function App() { export function App() {
const [state, setState] = useState<EditorState>(initialEditorState); // const [state, setState] = useState<EditorState>(initialEditorState);
// const [state, setState] = useState<EditorState>(nonEmptyEditorState);
const [state, setState] = useState<EditorState>(tripleFunctionCallEditorState);
useEffect(() => { useEffect(() => {
window['APP_STATE'] = state; window['APP_STATE'] = state;