diff --git a/packages/web/components/elements/FormElements.tsx b/packages/web/components/elements/FormElements.tsx index 03f501e7d..2c26ec6b5 100644 --- a/packages/web/components/elements/FormElements.tsx +++ b/packages/web/components/elements/FormElements.tsx @@ -1,8 +1,8 @@ import { styled } from '../tokens/stitches.config' import { useState } from 'react' import Checkbox from './Checkbox' -import { Box, HStack, VStack } from './LayoutPrimitives' -import { StyledText } from './StyledText' +import { HStack, VStack } from './LayoutPrimitives' +import { Label } from '@radix-ui/react-dropdown-menu' export interface FormInputProps { name: string @@ -43,29 +43,42 @@ export function GeneralFormInput(props: FormInputProps): JSX.Element { const [input, setInput] = useState(props) if (props.type === 'checkbox') { + const StyledLabel = styled(Label, { + color: '$grayTextContrast', + fontSize: 13, + padding: '5px 10px', + cursor: 'default', + }) + return ( {input.options?.map((label, index) => ( - - {label} - - { - input.value[index] = arg - setInput(input) - props.onChange && - props.onChange( - input.options?.filter((_, i) => input.value[i]) - ) - }} - > - + + { + input.value[index] = arg + setInput(input) + props.onChange && + props.onChange( + input.options?.filter((_, i) => input.value[i]) + ) + }} + > + {label} ))} ) + } else if (props.type === 'select') { + return ( + + ) } else { return ( - Add More + Create - + {input.label} - + ))} - diff --git a/packages/web/pages/settings/api.tsx b/packages/web/pages/settings/api.tsx index 38430bf83..340f6c26b 100644 --- a/packages/web/pages/settings/api.tsx +++ b/packages/web/pages/settings/api.tsx @@ -128,12 +128,31 @@ export default function Api(): JSX.Element { required: true, }, { - label: 'Expired on', + label: 'Expires in', name: 'expiredAt', required: true, - onChange: setExpiresAt, - type: 'date', - min: new Date().toISOString().split('T')[0], // today + onChange: (e) => { + let additionalDays = 0 + switch(e.target.value) { + case '7 days': + additionalDays = 7 + break + case '30 days': + additionalDays = 30 + break + case '90 days': + additionalDays = 90 + break + case '1 year': + additionalDays = 365 + break + } + const newExpires = new Date() + newExpires.setDate(newExpires.getDate() + additionalDays) + setExpiresAt(newExpires) + }, + type: 'select', + options: ['7 days', '30 days', '90 days', '1 year'], value: defaultExpiresAt, }, ]) diff --git a/packages/web/pages/settings/emails.tsx b/packages/web/pages/settings/emails.tsx index 229552e92..2232606e5 100644 --- a/packages/web/pages/settings/emails.tsx +++ b/packages/web/pages/settings/emails.tsx @@ -261,7 +261,7 @@ export default function EmailsPage(): JSX.Element { }} >