diff --git a/frontend/src/app/kiosk/page.tsx b/frontend/src/app/kiosk/page.tsx index 53a2599..2485b22 100644 --- a/frontend/src/app/kiosk/page.tsx +++ b/frontend/src/app/kiosk/page.tsx @@ -1,22 +1,19 @@ "use client"; +import { useCallback, useEffect, useState } from "react"; import Spinner from "@/components/utils/Spinner"; +import WifiQr from "@/components/utils/WifiQr"; import { TriState } from "@/types/state"; import { Voucher } from "@/types/voucher"; import { api } from "@/utils/api"; import { formatCode } from "@/utils/format"; -import { useEffect, useCallback, useState } from "react"; export default function KioskPage() { const [voucher, setVoucher] = useState(null); const [state, setState] = useState(null); const load = useCallback(async () => { - // If already loading, do nothing - if (state === "loading") { - return; - } - + if (state === "loading") return; try { setState("loading"); await api.getRollingVoucher().then(setVoucher); @@ -26,8 +23,6 @@ export default function KioskPage() { setState("error"); return; } - - // If 404 (Not Found), create rolling voucher try { await api.createRollingVoucher().then(setVoucher); setState("ok"); @@ -40,38 +35,38 @@ export default function KioskPage() { useEffect(() => { load(); window.addEventListener("vouchersUpdated", load); - - return () => { - window.removeEventListener("vouchersUpdated", load); - }; + return () => window.removeEventListener("vouchersUpdated", load); }, [load]); function renderContent() { switch (state) { + case null: case "loading": return ; case "error": - return "Could not load rolling voucher"; + return ( +
+ Could not load rolling voucher +
+ ); case "ok": return ( - <> - Voucher Code -
- {voucher ? ( -
{formatCode(voucher.code)}
- ) : ( - "No voucher available" - )} - +
+ +
+

+ Voucher Code +

+
+ {voucher ? formatCode(voucher.code) : "No voucher available"} +
+
+
); } } return ( -
-
- {renderContent()} -
-
+
{renderContent()}
); }