Page MenuHomeSealhub

component-input-structured.tsx
No OneTemporary

component-input-structured.tsx

import type { ComponentArgument, Structured } from "@sealcode/jdd";
import type { StatefulPage } from "@sealcode/sealgen";
import { TempstreamJSX } from "tempstream";
import type { ComponentPreviewState } from "../components.sreact.js";
import { ComponentInput } from "./component-input.js";
import type { ComponentPreviewActions } from "./component-preview-actions.js";
export function ComponentInputStructured<
T extends Structured<Record<string, ComponentArgument<unknown>>>
>({
state,
arg_path,
arg,
value,
rerender_callback,
page,
}: {
state: ComponentPreviewState;
arg_path: string[];
arg: T;
value: Record<string, unknown>;
rerender_callback?: string;
page: StatefulPage<ComponentPreviewState, typeof ComponentPreviewActions>;
}) {
return (
<fieldset>
<legend>{arg_path.at(-1)}</legend>
{Object.entries(arg.structure).map(([arg_name, arg]) => (
<div>
<ComponentInput
{...{
state,
arg_path: [...arg_path, arg_name],
arg,
value: value[arg_name],
rerender_callback,
page,
}}
/>
</div>
))}
</fieldset>
);
}

File Metadata

Mime Type
text/x-java
Expires
Thu, Jul 3, 21:01 (8 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
799716
Default Alt Text
component-input-structured.tsx (1 KB)

Event Timeline