fix: discounts request in Cart

This commit is contained in:
IlyaDoronin 2023-07-13 12:56:52 +03:00
parent a1cce00733
commit c3046a6740
2 changed files with 28 additions and 38 deletions

@ -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("Ошибка при получении скидок");
}
};