feat(frontend): register schema-linking widget + response summary
This commit is contained in:
@@ -29,7 +29,10 @@ export function WidgetHost({ sessionId }: { sessionId: string | null }) {
|
||||
}
|
||||
setLastUserEntry({
|
||||
kind: "choice",
|
||||
text: r.text ?? r.choices?.join(", ") ?? r.decision?.type ?? r.control ?? "(choice)",
|
||||
text:
|
||||
r.kind === "schema-linking"
|
||||
? `${r.tables?.filter((t) => t.enacted).length ?? 0} tables curated`
|
||||
: r.text ?? r.choices?.join(", ") ?? r.decision?.type ?? r.control ?? "(choice)",
|
||||
});
|
||||
clearPending();
|
||||
};
|
||||
|
||||
@@ -5,10 +5,12 @@ import { FreetextWidget } from "./FreetextWidget";
|
||||
import { MultiselectWidget } from "./MultiselectWidget";
|
||||
import { ArtifactGateWidget } from "./ArtifactGateWidget";
|
||||
import { ArtifactWidget } from "./ArtifactWidget";
|
||||
import { SchemaLinkingGateWidget } from "./SchemaLinkingGateWidget";
|
||||
register("select", SelectWidget);
|
||||
register("info", InfoWidget);
|
||||
register("freetext", FreetextWidget);
|
||||
register("multiselect", MultiselectWidget);
|
||||
register("artifact-gate", ArtifactGateWidget);
|
||||
register("artifact", ArtifactWidget);
|
||||
register("schema-linking", SchemaLinkingGateWidget);
|
||||
export { resolve } from "./registry";
|
||||
|
||||
@@ -13,3 +13,9 @@ test("resolve falls back for unknown kind and shows the JSON", () => {
|
||||
render(<Comp descriptor={{ id: "u1", widget: "totally-unknown", title: "X" } as any} onRespond={() => {}} />);
|
||||
expect(screen.getByText(/Unsupported widget/i)).toBeInTheDocument();
|
||||
});
|
||||
|
||||
test("index registers the schema-linking widget", async () => {
|
||||
await import("./index");
|
||||
const Comp = resolve("schema-linking");
|
||||
expect(Comp.name).toBe("SchemaLinkingGateWidget");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user