From c389a48209775f9d847b532ecf0f641f7c92b121 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Mon, 6 Jun 2022 13:10:46 +0800 Subject: [PATCH] Add default expires at and validation --- packages/web/components/elements/FormElements.tsx | 2 ++ packages/web/pages/settings/api-keys.tsx | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/web/components/elements/FormElements.tsx b/packages/web/components/elements/FormElements.tsx index f7896089f..03f501e7d 100644 --- a/packages/web/components/elements/FormElements.tsx +++ b/packages/web/components/elements/FormElements.tsx @@ -16,6 +16,7 @@ export interface FormInputProps { required?: boolean css?: any options?: string[] + min?: any } export const FormInput = styled('input', { @@ -96,6 +97,7 @@ export function GeneralFormInput(props: FormInputProps): JSX.Element { }, }} name={input.name} + min={input.min} /> ) } diff --git a/packages/web/pages/settings/api-keys.tsx b/packages/web/pages/settings/api-keys.tsx index 3a72e1c0d..012d1759f 100644 --- a/packages/web/pages/settings/api-keys.tsx +++ b/packages/web/pages/settings/api-keys.tsx @@ -42,6 +42,11 @@ export default function ApiKeys(): JSX.Element { return rows }, [apiKeys]) + // default expiry date is 1 year from now + const defaultExpiresAt = new Date(Date.now() + 1000 * 60 * 60 * 24 * 365) + .toISOString() + .split('T')[0] + applyStoredTheme(false) async function onDelete(id: string): Promise { @@ -121,15 +126,17 @@ export default function ApiKeys(): JSX.Element { required: true, }, { - label: 'Expired at', + label: 'Expired on', name: 'expiredAt', required: true, onChange: setExpiresAt, type: 'date', + min: new Date().toISOString().split('T')[0], // today + value: defaultExpiresAt, }, ]) setName('') - setExpiresAt(new Date(Date.now() + 1000 * 60 * 60 * 24 * 365)) + setExpiresAt(new Date(defaultExpiresAt)) setAddModelOpen(true) }} />