diff --git a/front/src/components/Nav.svelte b/front/src/components/Nav.svelte index 43a4437..d005dc9 100644 --- a/front/src/components/Nav.svelte +++ b/front/src/components/Nav.svelte @@ -87,17 +87,27 @@ {/each} + - iky logo - iky logo large + iky logo + iky logo large - + diff --git a/front/src/components/SearchList.svelte b/front/src/components/SearchList.svelte index 78a918d..5284fc9 100644 --- a/front/src/components/SearchList.svelte +++ b/front/src/components/SearchList.svelte @@ -28,42 +28,48 @@ href={`/search/${s.id}`} class="card bg-base-200 hover:bg-base-300 transition-colors shadow-sm cursor-pointer" > -
-
- {#each [INPUT_TYPE_ICON[s.input_type] ?? FileText] as Icon} - - {/each} -
-
- {s.target} -
- {s.input_type} - {#if s.profile} - {s.profile} - {/if} - · {fmtDate(s.started_at)} +
+
+ +
+ {#each [INPUT_TYPE_ICON[s.input_type] ?? FileText] as Icon} + + {/each} +
+ + +
+ {s.target} +
+ {s.input_type} + {#if s.profile} + {s.profile} + {/if} + · {fmtDate(s.started_at)} + {#if s.status !== "running"} + {@const total = (s.planned_tools ?? []).reduce((sum, t) => sum + (t.result_count ?? 0), 0)} + {#if total > 0} + · {total} result{total !== 1 ? "s" : ""} + {/if} + {/if} +
+
+ + +
+ + {#if s.status === "running"} + + {/if} + {s.status} + +
- - {#if s.status !== "running"} - {@const total = (s.planned_tools ?? []).reduce((sum, t) => sum + (t.result_count ?? 0), 0)} - {#if total > 0} - {total} result{total !== 1 ? "s" : ""} - {/if} - {/if} - - - {#if s.status === "running"} - - {/if} - {s.status} - - -
{/each} diff --git a/front/src/components/ToolList.svelte b/front/src/components/ToolList.svelte index 1167152..99846d3 100644 --- a/front/src/components/ToolList.svelte +++ b/front/src/components/ToolList.svelte @@ -15,6 +15,7 @@ let error = $state(""); let selectedInputType = $state("all"); + let nameFilter = $state(""); const inputTypeOptions = ["all", ...INPUT_TYPES]; @@ -47,11 +48,14 @@ ); let visibleTools = $derived( - selectedInputType === "all" - ? toolsWithStatus - : toolsWithStatus.filter((t) => - t.input_types.includes(selectedInputType), - ), + toolsWithStatus.filter((t) => { + const matchesInput = + selectedInputType === "all" || t.input_types.includes(selectedInputType); + const matchesName = + nameFilter.trim() === "" || + t.name.toLowerCase().includes(nameFilter.trim().toLowerCase()); + return matchesInput && matchesName; + }), ); let active = $derived( @@ -170,6 +174,19 @@
{error}
{:else}
+
+ Search + +
+
Support me