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