00e0cc42cf
- /photo/gallery: D-pad grid, OK opens full screen, arrows browse, Back returns - 400px gallery tiles cached per photo (sync + uploads) - com.dayline.photos 1.1: launcher tile opens the gallery, takes remote input, Back steps through WebView history; screensaver unchanged - slideshow interval 20s -> 15s (live settings) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E9NnVEico3WvFxLyjy1iW3
28 lines
808 B
TypeScript
28 lines
808 B
TypeScript
import { readAuth, readSettings } from "../../_lib/store";
|
|
|
|
export const dynamic = "force-dynamic";
|
|
|
|
export async function GET() {
|
|
const { calendars } = await readSettings();
|
|
let adminConfigured = false;
|
|
try {
|
|
adminConfigured = Boolean((await readAuth()).passwordHash);
|
|
} catch {
|
|
adminConfigured = false;
|
|
}
|
|
|
|
return Response.json(
|
|
{
|
|
status: "ok",
|
|
service: "hobbs-family-organizer",
|
|
version: "1.3.0",
|
|
calendarConfigurationValid: calendars.some((calendar) => calendar.enabled),
|
|
calendarsEnabled: calendars.filter((calendar) => calendar.enabled).length,
|
|
adminConfigured,
|
|
authenticationEnabled: Boolean(process.env.ORGANIZER_ACCESS_TOKEN),
|
|
checkedAt: new Date().toISOString(),
|
|
},
|
|
{ headers: { "Cache-Control": "no-store" } },
|
|
);
|
|
}
|