import { For } from "solid-js";
import { render } from "solid-js/web";
import { createStore } from "solid-js/store";
type Level = {
value: number;
sub?: Array<Level>;
};
function Level(props: { store: Level }) {
const [local, setLocal] = createStore<Level>(props.store);
setTimeout(() => setLocal("value", (value) => value + 10), 2000);
return (
<>
<pre>local: {local.value}</pre>
<For each={local.sub}>{(sub) => <Level store={sub} />}</For>
</>
);
}
function Main() {
const [store, _] = createStore<Level>({
value: 1,
sub: [
{ value: 2, sub: [{ value: 3 }, { value: 4 }] },
{ value: 5, sub: [{ value: 6 }, { value: 7 }] },
],
});
return (
<div>
<pre>store: {JSON.stringify(store, null, 2)}</pre>
<Level store={store} />
</div>
);
}
render(() => <Main />, document.getElementById("app")!);