31 lines
1008 B
TypeScript
31 lines
1008 B
TypeScript
![]() |
import { Discount, GetDiscountResponse } from "@root/model/discount";
|
||
|
import { authStore } from "@root/stores/auth";
|
||
|
import { useEffect } from "react";
|
||
|
|
||
|
|
||
|
const makeRequest = authStore.getState().makeRequest;
|
||
|
|
||
|
export default function useDiscounts({ onError, onNewDiscounts }: {
|
||
|
onNewDiscounts: (response: Discount[]) => void;
|
||
|
onError?: (error: any) => void;
|
||
|
}) {
|
||
|
useEffect(() => {
|
||
|
const controller = new AbortController();
|
||
|
|
||
|
makeRequest<never, GetDiscountResponse>({
|
||
|
url: "https://admin.pena.digital/price/discounts",
|
||
|
method: "get",
|
||
|
useToken: true,
|
||
|
bearer: true,
|
||
|
signal: controller.signal,
|
||
|
}).then(result => {
|
||
|
console.log("New discounts", result);
|
||
|
onNewDiscounts(result.Discounts);
|
||
|
}).catch(error => {
|
||
|
console.log("Error fetching discounts", error);
|
||
|
onError?.(error);
|
||
|
});
|
||
|
|
||
|
return () => controller.abort();
|
||
|
}, [onError, onNewDiscounts]);
|
||
|
}
|