gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/users/components/dialogs/mutation/fields/usage-duration.tsx · v0.5.1
Source
1 857e289 Mrdn 2y ago import {
2 857e289 Mrdn 2y ago FormControl,
3 857e289 Mrdn 2y ago FormField,
4 857e289 Mrdn 2y ago FormItem,
5 857e289 Mrdn 2y ago Input,
6 857e289 Mrdn 2y ago FormLabel,
7 857e289 Mrdn 2y ago FormMessage
8 857e289 Mrdn 2y ago } from '@marzneshin/components';
9 d377c4c Dawsh 2y ago import { type FC, useEffect, useState } from 'react'
10 857e289 Mrdn 2y ago import { useFormContext } from 'react-hook-form';
11 857e289 Mrdn 2y ago import { useTranslation } from 'react-i18next';
12 857e289 Mrdn 2y ago
13 d377c4c Dawsh 2y ago export const UsageDurationField: FC = () => {
14 88321ab Mardin 2y ago const form = useFormContext();
15 88321ab Mardin 2y ago const { t } = useTranslation();
16 88321ab Mardin 2y ago
17 d377c4c Dawsh 2y ago const defaultDuration = (form.getValues('usage_duration') ?? 0) / 86400;
18 88321ab Mardin 2y ago const [duration, setDuration] = useState<number>(defaultDuration);
19 857e289 Mrdn 2y ago
20 857e289 Mrdn 2y ago useEffect(() => {
21 d377c4c Dawsh 2y ago form.setValue('usage_duration', duration * 86400);
22 88321ab Mardin 2y ago }, [form, duration]);
23 857e289 Mrdn 2y ago
24 857e289 Mrdn 2y ago return (
25 857e289 Mrdn 2y ago <FormField
26 857e289 Mrdn 2y ago control={form.control}
27 d377c4c Dawsh 2y ago name="usage_duration"
28 857e289 Mrdn 2y ago render={({ field }) => (
29 857e289 Mrdn 2y ago <FormItem>
30 d377c4c Dawsh 2y ago <FormLabel>{t('page.users.usage_duration')} ({t('days')})</FormLabel>
31 857e289 Mrdn 2y ago <FormControl>
32 857e289 Mrdn 2y ago <Input
33 857e289 Mrdn 2y ago {...field}
34 88321ab Mardin 2y ago type="number"
35 857e289 Mrdn 2y ago value={duration}
36 88321ab Mardin 2y ago onChange={(e) => {
37 88321ab Mardin 2y ago setDuration(Number(e.target.value));
38 88321ab Mardin 2y ago field.onChange(e.target.value);
39 88321ab Mardin 2y ago }}
40 857e289 Mrdn 2y ago />
41 857e289 Mrdn 2y ago </FormControl>
42 857e289 Mrdn 2y ago <FormMessage />
43 857e289 Mrdn 2y ago </FormItem>
44 857e289 Mrdn 2y ago )}
45 857e289 Mrdn 2y ago />
46 857e289 Mrdn 2y ago );
47 857e289 Mrdn 2y ago }