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({
|
setLastUserEntry({
|
||||||
kind: "choice",
|
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();
|
clearPending();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,10 +5,12 @@ import { FreetextWidget } from "./FreetextWidget";
|
|||||||
import { MultiselectWidget } from "./MultiselectWidget";
|
import { MultiselectWidget } from "./MultiselectWidget";
|
||||||
import { ArtifactGateWidget } from "./ArtifactGateWidget";
|
import { ArtifactGateWidget } from "./ArtifactGateWidget";
|
||||||
import { ArtifactWidget } from "./ArtifactWidget";
|
import { ArtifactWidget } from "./ArtifactWidget";
|
||||||
|
import { SchemaLinkingGateWidget } from "./SchemaLinkingGateWidget";
|
||||||
register("select", SelectWidget);
|
register("select", SelectWidget);
|
||||||
register("info", InfoWidget);
|
register("info", InfoWidget);
|
||||||
register("freetext", FreetextWidget);
|
register("freetext", FreetextWidget);
|
||||||
register("multiselect", MultiselectWidget);
|
register("multiselect", MultiselectWidget);
|
||||||
register("artifact-gate", ArtifactGateWidget);
|
register("artifact-gate", ArtifactGateWidget);
|
||||||
register("artifact", ArtifactWidget);
|
register("artifact", ArtifactWidget);
|
||||||
|
register("schema-linking", SchemaLinkingGateWidget);
|
||||||
export { resolve } from "./registry";
|
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={() => {}} />);
|
render(<Comp descriptor={{ id: "u1", widget: "totally-unknown", title: "X" } as any} onRespond={() => {}} />);
|
||||||
expect(screen.getByText(/Unsupported widget/i)).toBeInTheDocument();
|
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