import { Button, Container, Stack, TextInput, Title } from "@mantine/core"; import { type FormEvent, useState } from "react"; import { validateAccessKey } from "../../modules/accessKey"; import { addLogEntry } from "../../modules/logEntries"; interface AccessPageState { accessKey: string; error: string; } export default function AccessPage({ onAccessKeyValid, }: { onAccessKeyValid: () => void; }) { const [state, setState] = useState({ accessKey: "", error: "", }); const handleSubmit = async (formEvent: FormEvent) => { formEvent.preventDefault(); setState((prev) => ({ ...prev, error: "" })); try { const isValid = await validateAccessKey(state.accessKey); if (isValid) { addLogEntry("Valid access key entered"); onAccessKeyValid(); } else { setState((prev) => ({ ...prev, error: "Invalid access key" })); addLogEntry("Invalid access key attempt"); } } catch (error) { setState((prev) => ({ ...prev, error: "Error validating access key" })); addLogEntry(`Error validating access key: ${error}`); } }; return ( Access Restricted
setState((prev) => ({ ...prev, accessKey: target.value })) } placeholder="Enter your access key to continue" required autoFocus error={state.error} styles={{ input: { textAlign: "center", }, }} />
); }