/// import { computed, NAME, pattern, UI, wish, Writable } from "commontools"; import { type SummaryIndexEntry } from "../system/summary-index.tsx"; type SummaryIndexResult = { entries: SummaryIndexEntry[]; search: { pattern: unknown; extraParams: { entries: SummaryIndexEntry[] } }; }; export default pattern>((_) => { const query = Writable.of(""); const { entries } = wish({ query: "#summaryIndex", }).result; const filtered = computed(() => { const q = query.get().toLowerCase().trim(); if (!q) return entries; return entries.filter( (entry) => entry.summary.toLowerCase().includes(q) || entry.name.toLowerCase().includes(q), ); }); const entryCount = computed(() => entries.length); const filteredCount = computed(() => filtered.length); return { [NAME]: "Summary Index Tester", [UI]: (

Summary Index Tester

Index: {entryCount} entries Showing {filteredCount} results Name Summary {filtered.map((entry) => ( {entry.summary} ))}
), }; });