← marzneshin
/
v0.5.2
/
dashboard/src/features/users/components/dialogs/mutation/sections/data-limit/use-data-limit.ts
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/users/components/dialogs/mutation/sections/data-limit/use-data-limit.ts
· TypeScript
Blame
Raw
1import { useEffect, useState } from "react";
2import { useFormContext } from "react-hook-form";
3
4export const useDataLimit = () => {
5 const form = useFormContext();
6 const dataLimit = form.watch("data_limit");
7
8 const [isDataLimitEnabled, setIsDataLimitEnabled] = useState(dataLimit !== 0);
9
10 useEffect(() => {
11 setIsDataLimitEnabled(dataLimit !== 0);
12 }, [dataLimit]);
13
14 useEffect(() => {
15 if (!isDataLimitEnabled) {
16 form.setValue("data_limit", 0);
17 form.setValue("data_limit_reset_strategy", "no_reset");
18 }
19 // eslint-disable-next-line react-hooks/exhaustive-deps
20 }, [isDataLimitEnabled]);
21
22 return { isDataLimitEnabled, setIsDataLimitEnabled };
23};