import { createSignal, createResource, For, Show } from "solid-js"; import { Title } from "@solidjs/meta"; import { Sidebar, TopBar } from "~/components/dashboard"; import { Button, Input, Card, Badge } from "~/components/ui"; import { api } from "~/lib/api"; export default function DarkWatchPage() { const [sidebarOpen, setSidebarOpen] = createSignal(false); const [itemValue, setItemValue] = createSignal(""); const [watchlist, { refetch: refetchWatchlist }] = createResource( () => api.darkwatch.getWatchlist.query(), { initialValue: [] }, ); const [exposures] = createResource( () => api.darkwatch.getExposures.query({ page: 1, limit: 20 }), ); async function addItem() { const val = itemValue().trim(); if (!val) return; const type = val.includes("@") ? "EMAIL" : "PHONE"; await api.darkwatch.addWatchlistItem.mutate({ type, value: val }); setItemValue(""); refetchWatchlist(); } async function removeItem(itemId: string) { await api.darkwatch.removeWatchlistItem.mutate({ itemId }); refetchWatchlist(); } return (
DarkWatch — ShieldAI setSidebarOpen(false)} />
setSidebarOpen(v => !v)} />

DarkWatch

Add Watchlist Item

setItemValue(e.currentTarget.value)} />

Watchlist

{(item: Record) => (

{String(item.value ?? "")}

{String(item.type ?? "")}

)}

Recent Exposures

{(exp: Record) => (

{String(exp.title ?? "")}

{String(exp.description ?? "")}

{String(exp.severity ?? "")}
)}
No exposures found
); }