front-hub/src/utils/hooks/useCustomTariffs.ts
2024-05-29 14:58:54 +03:00

46 lines
1.1 KiB
TypeScript

import { useEffect, useLayoutEffect, useRef } from "react";
import { devlog } from "@frontend/kitui";
import { ServiceKeyToPrivilegesMap } from "@root/model/privilege";
import { getCustomTariffs } from "@root/api/tariff";
export function useCustomTariffs({
onError,
onNewUser,
}: {
onNewUser: (response: ServiceKeyToPrivilegesMap) => void;
onError: (error: any) => void;
}) {
const onNewUserRef = useRef(onNewUser);
const onErrorRef = useRef(onError);
useLayoutEffect(() => {
onNewUserRef.current = onNewUser;
onErrorRef.current = onError;
});
useEffect(() => {
const controller = new AbortController();
const getCustomTariffsRequest = async () => {
const [customTariffs, customTariffsError] = await getCustomTariffs(
controller.signal
);
if (customTariffsError) {
devlog("Error fetching custom tariffs", customTariffsError);
onErrorRef.current(customTariffsError);
return;
}
if (customTariffs) {
onNewUserRef.current(customTariffs);
}
};
getCustomTariffsRequest();
return () => controller.abort();
}, []);
}