///
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}
|
))}
),
};
});