27 lines
835 B
TypeScript
27 lines
835 B
TypeScript
![]() |
import { devlog } from "@frontend/kitui";
|
||
|
import { CustomTariffsMap } from "@root/model/customTariffs";
|
||
|
import axios, { AxiosResponse } from "axios";
|
||
|
import { useEffect } from "react";
|
||
|
|
||
|
|
||
|
export function useCustomTariffs({ onError, onNewUser, url }: {
|
||
|
url: string;
|
||
|
onNewUser: (response: CustomTariffsMap) => void;
|
||
|
onError: (error: any) => void;
|
||
|
}) {
|
||
|
useEffect(function fetchUserData() {
|
||
|
const controller = new AbortController();
|
||
|
|
||
|
axios<never, AxiosResponse<CustomTariffsMap>>({
|
||
|
url,
|
||
|
signal: controller.signal,
|
||
|
}).then(result => {
|
||
|
onNewUser(result.data);
|
||
|
}).catch(error => {
|
||
|
devlog("Error fetching custom tariffs", error);
|
||
|
onError(error);
|
||
|
});
|
||
|
|
||
|
return () => controller.abort();
|
||
|
}, [onError, onNewUser, url]);
|
||
|
}
|