From 546579f8c8b1ca86ceed3fa3c6d9337d712f1e20 Mon Sep 17 00:00:00 2001 From: Eduard Gert Date: Tue, 16 Apr 2024 16:52:07 +0200 Subject: [PATCH] Add better validation for setup keys --- src/modules/setup-keys/SetupKeyModal.tsx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/modules/setup-keys/SetupKeyModal.tsx b/src/modules/setup-keys/SetupKeyModal.tsx index dbf6a400..c5ebd44b 100644 --- a/src/modules/setup-keys/SetupKeyModal.tsx +++ b/src/modules/setup-keys/SetupKeyModal.tsx @@ -126,7 +126,7 @@ type ModalProps = { }; export function SetupKeyModalContent({ onSuccess }: ModalProps) { - const setupKeyRequest = useApiCall("/setup-keys"); + const setupKeyRequest = useApiCall("/setup-keys", true); const { mutate } = useSWRConfig(); const [name, setName] = useState(""); @@ -143,10 +143,18 @@ export function SetupKeyModalContent({ onSuccess }: ModalProps) { return reusable ? "Unlimited" : "1"; }, [reusable]); + const expiresInError = useMemo(() => { + const expires = parseInt(expiresIn); + if (expires < 1 || expires > 365) { + return "Days should be between 1 and 365"; + } + return ""; + }, [expiresIn]); + const isDisabled = useMemo(() => { const trimmedName = trim(name); - return trimmedName.length === 0; - }, [name]); + return trimmedName.length === 0 || expiresInError.length > 0; + }, [name, expiresInError]); const submit = () => { if (!selectedGroups) return; @@ -245,6 +253,8 @@ export function SetupKeyModalContent({ onSuccess }: ModalProps) { min={1} max={365} value={expiresIn} + error={expiresInError} + errorTooltip={true} type={"number"} onChange={(e) => setExpiresIn(e.target.value)} customPrefix={