fix: discounts request in Cart
This commit is contained in:
parent
a1cce00733
commit
c3046a6740
@ -33,7 +33,7 @@ import { findPrivilegeById } from "@root/stores/privilegesStore";
|
||||
import { testUser } from "@root/stores/mocks/user";
|
||||
import { useTariffStore } from "@root/stores/tariffsStore";
|
||||
import { Discount } from "@root/model/discount";
|
||||
import { authStore } from "@root/stores/auth";
|
||||
import { useDiscountStore } from "@root/stores/discounts";
|
||||
import { requestPrivilegies } from "@root/services/privilegies.service";
|
||||
import { requestDiscounts } from "@root/services/discounts.service";
|
||||
|
||||
@ -59,13 +59,11 @@ interface MergedTariff {
|
||||
|
||||
export default function Cart({ selectedTariffs }: Props) {
|
||||
let cartTariffs = Object.values(useTariffStore().tariffs);
|
||||
// const discounts = useDiscountStore((store) => store.discounts);
|
||||
const [discounts, setDiscounts] = useState<Discount[]>([]);
|
||||
const discounts = useDiscountStore((store) => store.discounts);
|
||||
const cartTotal = useCartStore((state) => state.cartTotal);
|
||||
const setCartTotal = useCartStore((store) => store.setCartTotal);
|
||||
const [couponField, setCouponField] = useState<string>("");
|
||||
const [loyaltyField, setLoyaltyField] = useState<string>("");
|
||||
const makeRequest = authStore.getState().makeRequest;
|
||||
const [errorMessage, setErrorMessage] = useState<string | null>(null);
|
||||
const [isNonCommercial, setIsNonCommercial] = useState<boolean>(false);
|
||||
|
||||
@ -152,17 +150,6 @@ export default function Cart({ selectedTariffs }: Props) {
|
||||
await requestPrivilegies();
|
||||
await requestDiscounts();
|
||||
|
||||
//рассчитать
|
||||
const dis = await makeRequest<unknown>({
|
||||
url: "https://admin.pena.digital/price/discounts",
|
||||
method: "get",
|
||||
useToken: true,
|
||||
bearer: true,
|
||||
});
|
||||
console.log(dis);
|
||||
// @ts-ignore
|
||||
setDiscounts(dis.Discounts);
|
||||
|
||||
const cartItems = cartTariffs
|
||||
.filter((tariff) => selectedTariffs.includes(tariff.id))
|
||||
.map((tariff) => createCartItem(tariff));
|
||||
@ -173,15 +160,11 @@ export default function Cart({ selectedTariffs }: Props) {
|
||||
|
||||
if (!isFinite(loyaltyValue)) loyaltyValue = 0;
|
||||
|
||||
const activeDiscounts = discounts.filter(
|
||||
(discount) => !discount.Deprecated
|
||||
);
|
||||
|
||||
const cartData = calcCartData({
|
||||
user: testUser,
|
||||
purchasesAmount: loyaltyValue,
|
||||
cartItems,
|
||||
discounts: activeDiscounts,
|
||||
discounts,
|
||||
isNonCommercial,
|
||||
coupon: couponField,
|
||||
});
|
||||
|
@ -1,25 +1,32 @@
|
||||
import { authStore } from "@root/stores/auth";
|
||||
import { setDiscounts } from "@root/stores/discounts";
|
||||
import { authStore } from "@root/stores/auth";
|
||||
|
||||
import type { GetDiscountResponse } from "@root/model/discount";
|
||||
import type { GetDiscountResponse, Discount } from "@root/model/discount";
|
||||
|
||||
export const requestDiscounts = async () => {
|
||||
const { makeRequest } = authStore.getState();
|
||||
const controller = new AbortController();
|
||||
const baseUrl =
|
||||
process.env.NODE_ENV === "production"
|
||||
? "/price"
|
||||
: "https://admin.pena.digital/price";
|
||||
|
||||
makeRequest<never, GetDiscountResponse>({
|
||||
url: "https://admin.pena.digital/price/discounts",
|
||||
method: "get",
|
||||
useToken: true,
|
||||
bearer: true,
|
||||
signal: controller.signal,
|
||||
})
|
||||
.then((result) => {
|
||||
setDiscounts(result.Discounts);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log("Error fetching discounts", error);
|
||||
const { makeRequest } = authStore.getState();
|
||||
|
||||
const filterDiscounts = (discounts: Discount[]) => {
|
||||
const activeDiscounts = discounts.filter((discount) => !discount.Deprecated);
|
||||
|
||||
setDiscounts(activeDiscounts);
|
||||
};
|
||||
|
||||
export const requestDiscounts = async (): Promise<void> => {
|
||||
try {
|
||||
const { Discounts } = await makeRequest<never, GetDiscountResponse>({
|
||||
url: baseUrl + "/discounts",
|
||||
method: "get",
|
||||
useToken: true,
|
||||
bearer: true,
|
||||
});
|
||||
|
||||
return () => controller.abort();
|
||||
filterDiscounts(Discounts);
|
||||
} catch {
|
||||
throw new Error("Ошибка при получении скидок");
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user