diff --git a/.env.example b/.env.example index 58d7a88..48f3711 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ VITE_API_BASE_URL= VITE_MATOMO_URL= VITE_MATOMO_SITE_ID= -VITE_MAINTENANCE_MODE= # nothing = false, anything else = true +VITE_MAINTENANCE_MODE="false" # use "true" or "false" VITE_MAINTENANCE_MODE_MESSAGE="ChessScribe is currently undergoing maintenance. Some features may be unavailable." DISCORD_CONTACT_WEBHOOK= diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 590efae..8186b19 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,17 +1,16 @@ import { Link } from "@tanstack/react-router"; import { Image } from "@unpic/react"; -import { z } from "zod"; import MaintenanceModeBanner from "#/components/MaintenanceModeBanner.tsx"; import { env } from "#/env.ts"; import logo from "@/assets/images/logo.svg?url"; +const DEFAULT_MAINTENANCE_MESSAGE = "Maintenance Mode"; + export default function Header() { - const maintenanceModeMessage = env.VITE_MAINTENANCE_MODE - ? z - .string() - .transform((value) => (value.trim() === "" ? null : value)) - .parse(env.VITE_MAINTENANCE_MODE_MESSAGE) - : null; + const maintenanceModeMessage = + env.VITE_MAINTENANCE_MODE ? + env.VITE_MAINTENANCE_MODE_MESSAGE?.trim() || DEFAULT_MAINTENANCE_MESSAGE + : null; return (
diff --git a/src/env.ts b/src/env.ts index f6e2a92..abe7488 100644 --- a/src/env.ts +++ b/src/env.ts @@ -4,7 +4,9 @@ const clientSchema = z.object({ VITE_API_BASE_URL: z.url("Invalid API Base URL format"), VITE_MATOMO_URL: z.url("Invalid URL format"), VITE_MATOMO_SITE_ID: z.string("Invalid Site ID"), - VITE_MAINTENANCE_MODE: z.string("Invalid Maintenance Mode"), + VITE_MAINTENANCE_MODE: z + .enum(["true", "false"], 'Invalid Maintenance Mode (must be "true" or "false")') + .transform((v) => v === "true"), VITE_MAINTENANCE_MODE_MESSAGE: z.string().optional(), });