import { getAtk } from "../stores/userinfo.tsx"; import { createSignal, For, Match, Show, Switch } from "solid-js"; export default function DashboardPage() { const [challenges, setChallenges] = createSignal([]); const [challengeCount, setChallengeCount] = createSignal(0); const [sessions, setSessions] = createSignal([]); const [sessionCount, setSessionCount] = createSignal(0); const [events, setEvents] = createSignal([]); const [eventCount, setEventCount] = createSignal(0); const [error, setError] = createSignal(null); const [submitting, setSubmitting] = createSignal(false); const [contentTab, setContentTab] = createSignal(0); async function readChallenges() { const res = await fetch("/api/users/me/challenges?take=10", { headers: { Authorization: `Bearer ${getAtk()}` } }); if (res.status !== 200) { setError(await res.text()); } else { const data = await res.json(); setChallenges(data["data"]); setChallengeCount(data["count"]); } } async function readSessions() { const res = await fetch("/api/users/me/sessions?take=10", { headers: { Authorization: `Bearer ${getAtk()}` } }); if (res.status !== 200) { setError(await res.text()); } else { const data = await res.json(); setSessions(data["data"]); setSessionCount(data["count"]); } } async function readEvents() { const res = await fetch("/api/users/me/events?take=10", { headers: { Authorization: `Bearer ${getAtk()}` } }); if (res.status !== 200) { setError(await res.text()); } else { const data = await res.json(); setEvents(data["data"]); setEventCount(data["count"]); } } async function killSession(item: any) { setSubmitting(true); const res = await fetch(`/api/users/me/sessions/${item.id}`, { method: "DELETE", headers: { Authorization: `Bearer ${getAtk()}` } }); if (res.status !== 200) { setError(await res.text()); } else { await readSessions(); setError(null); } setSubmitting(false); } readChallenges(); readSessions(); readEvents(); return (

Security

Here is your account status of security.

Challenges
{challengeCount()}
Sessions
{sessionCount()}
Events
{eventCount()}
setContentTab(0)} /> setContentTab(1)} /> setContentTab(2)} />
{item => }
State IP Address User Agent Date
{item.id} {item.state} {item.ip_address} {item.user_agent.substring(0, 10) + "..."} {new Date(item.created_at).toLocaleString()}
{item => }
Third Client Audiences Date
{item.id} {item.client_id ? "Linked" : "Non-linked"} {item.audiences?.join(", ")} {new Date(item.created_at).toLocaleString()}
{item => }
Type Target IP Address User Agent Date
{item.id} {item.type} {item.target} {item.ip_address} {item.user_agent.substring(0, 10) + "..."} {new Date(item.created_at).toLocaleString()}
); }