Shell polish: storage line, status pill, footer strip, sidebar
Backend: - apps.core with GET /api/status/ (env, git hash, OS, watched folder, worker counts) and a TimingMiddleware adding X-Server-Time-Ms - status endpoint reports its own server-side assembly time Frontend: - top bar shows the storage line (watched folder) and a status pill with ENV, git hash, host OS, server time (e621 time once it exists) - fixed 32px footer strip: storage path, active workers, build version - collapsible filter sidebar: closed by default, Ctrl/Cmd+B toggle, overlay drawer with backdrop blur under 1024px - rating filters, per-page and sidebar state persist in localStorage
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { Folder, Zap } from "lucide-react";
|
||||
|
||||
import type { SystemStatus } from "@/lib/types";
|
||||
import { APP_VERSION } from "@/lib/version";
|
||||
|
||||
export function StatusFooter({ status }: { status?: SystemStatus }) {
|
||||
return (
|
||||
<footer className="fixed inset-x-0 bottom-0 z-30 border-t border-ctp-surface0 bg-ctp-crust">
|
||||
<div className="mx-auto flex h-8 w-full max-w-[1600px] items-center gap-4 px-4 font-mono text-[11px] text-ctp-overlay0">
|
||||
<span
|
||||
className="flex min-w-0 items-center gap-1.5"
|
||||
title={status?.watched_folder ?? ""}
|
||||
>
|
||||
<Folder className="h-3 w-3 shrink-0" />
|
||||
<span className="hidden shrink-0 sm:inline">Local Storage:</span>
|
||||
<span className="truncate">{status?.watched_folder ?? "…"}</span>
|
||||
</span>
|
||||
|
||||
<span
|
||||
className="hidden shrink-0 items-center gap-1.5 md:flex"
|
||||
title="Active background jobs"
|
||||
>
|
||||
<Zap className="h-3 w-3" />
|
||||
<span>
|
||||
Active Workers:{" "}
|
||||
{status
|
||||
? `${status.workers.active} running | ${status.workers.queued} pending`
|
||||
: "…"}
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span className="ml-auto shrink-0" title="Running build">
|
||||
{status?.version ?? APP_VERSION}
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user