Skip to content

Commit ddf9e48

Browse files
committed
feat: enhance DateTimePicker in AccessSettingsCard
- Added modal dropdown type and customized header controls for better navigation. - Improved styling for calendar header and label. - Configured time picker with presets for a defined time range.
1 parent 5904034 commit ddf9e48

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

src/shared/ui/forms/users/forms-components/access-settings-card.tsx

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ import {
55
} from '@remnawave/backend-contract'
66
import { ForwardRefComponent, HTMLMotionProps, Variants } from 'motion/react'
77
import { Fieldset, Group, Stack, Title } from '@mantine/core'
8+
import { DateTimePicker, getTimeRange } from '@mantine/dates'
89
import { notifications } from '@mantine/notifications'
910
import { PiCalendarDuotone } from 'react-icons/pi'
1011
import { UseFormReturnType } from '@mantine/form'
11-
import { DateTimePicker } from '@mantine/dates'
1212
import { useTranslation } from 'react-i18next'
1313
import { TbShield } from 'react-icons/tb'
1414
import { useMemo, useState } from 'react'
@@ -63,10 +63,35 @@ export const AccessSettingsCard = <T extends CreateUserCommand.Request | UpdateU
6363
>
6464
<Stack gap="md">
6565
<DateTimePicker
66+
dropdownType="modal"
67+
headerControlsOrder={['previous', 'next', 'level']}
6668
highlightToday
6769
key={form.key('expireAt')}
6870
label={t('create-user-modal.widget.expiry-date')}
6971
minDate={new Date()}
72+
modalProps={{
73+
centered: true
74+
}}
75+
styles={{
76+
calendarHeaderLevel: {
77+
justifyContent: 'flex-start',
78+
paddingInlineStart: 8
79+
},
80+
label: { fontWeight: 500 }
81+
}}
82+
submitButtonProps={{
83+
style: {
84+
width: '30%'
85+
}
86+
}}
87+
timePickerProps={{
88+
withDropdown: true,
89+
presets: getTimeRange({
90+
startTime: '06:00:00',
91+
endTime: '18:00:00',
92+
interval: '01:30:00'
93+
})
94+
}}
7095
valueFormat="MMMM D, YYYY - HH:mm"
7196
{...form.getInputProps('expireAt')}
7297
description={t('create-user-modal.widget.expire-at-description')}
@@ -110,9 +135,6 @@ export const AccessSettingsCard = <T extends CreateUserCommand.Request | UpdateU
110135
label: t('create-user-modal.widget.2099-year')
111136
}
112137
]}
113-
styles={{
114-
label: { fontWeight: 500 }
115-
}}
116138
/>
117139

118140
<InternalSquadsListWidget

0 commit comments

Comments
 (0)