← marzneshin
/
v0.3.1
/
dashboard/src/features/users/components/dialogs/mutation/sections/data-limit/index.tsx
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/users/components/dialogs/mutation/sections/data-limit/index.tsx
· TypeScript
Blame
Raw
1import { FC } from "react";
2import { FormLabel, Switch } from '@marzneshin/components';
3import { useTranslation } from 'react-i18next';
4import { DataLimitField, DataLimitResetStrategyField } from "../../fields";
5import { useFormContext } from "react-hook-form";
6import { useDataLimit } from "./use-data-limit";
7
8export const DataLimitFields: FC = () => {
9 const { t } = useTranslation();
10 const { isDataLimitEnabled, setIsDataLimitEnabled } = useDataLimit();
11 const form = useFormContext();
12
13 const handleToggleChange = () => {
14 setIsDataLimitEnabled(!isDataLimitEnabled);
15 };
16
17 return (
18 <div className="my-2">
19 <FormLabel className="hstack justify-between items-center text-md my-2" >
20 {t('page.users.data_limit_method')}
21 <Switch checked={isDataLimitEnabled} onCheckedChange={handleToggleChange} />
22 </FormLabel>
23 <div className="flex gap-2 items-center w-full sm:flex-row md:flex-col">
24 {isDataLimitEnabled && (
25 <div className="flex gap-2 items-center w-full">
26 <DataLimitField />
27 {form.watch().data_limit !== 0 && <DataLimitResetStrategyField />}
28 </div>
29 )}
30 </div>
31 </div>
32 );
33};