feat: getTariffsList

This commit is contained in:
IlyaDoronin 2024-01-09 15:00:42 +03:00 committed by Nastya
parent d21ff137e0
commit 23bbc30075
2 changed files with 32 additions and 10 deletions

@ -18,7 +18,7 @@ import {
IconButton,
} from "@mui/material";
import { enqueueSnackbar } from "notistack";
import { Tariff, getMessageFromFetchError } from "@frontend/kitui";
import { getMessageFromFetchError } from "@frontend/kitui";
import { withErrorBoundary } from "react-error-boundary";
import { createTariffElements } from "./tariffsUtils/createTariffElements";
import HeaderFull from "@ui_kit/Header/HeaderFull";
@ -28,35 +28,58 @@ import { clearUserData } from "@root/user";
import ArrowLeft from "@icons/questionsPage/arrowLeft";
import { currencyFormatter } from "./tariffsUtils/currencyFormatter";
import type { Tariff } from "@frontend/kitui";
function TariffPage() {
const theme = useTheme();
const isTablet = useMediaQuery(theme.breakpoints.down(1000));
const location = useLocation();
const navigate = useNavigate();
const [tariffs, setTariffs] = useState();
const [tariffs, setTariffs] = useState<Tariff[]>([]);
const [user, setUser] = useState();
const [discounts, setDiscounts] = useState();
const [cartTariffMap, setCartTariffMap] = useState();
const [openModal, setOpenModal] = useState({});
const [cash, setCash] = useState("0");
const getTariffsList = async (): Promise<Tariff[]> => {
const tariffsList: Tariff[] = [];
const { tariffs, totalPages } = await makeRequest<
never,
GetTariffsResponse
>({
method: "GET",
url: "https://squiz.pena.digital/strator/tariff?page=1&limit=100",
});
tariffsList.push(...tariffs);
for (let page = 2; page <= totalPages; page += 1) {
const tariffsResult = await makeRequest<never, GetTariffsResponse>({
method: "GET",
url: `https://squiz.pena.digital/strator/tariff?page=${page}&limit=100`,
});
tariffsList.concat(tariffsResult.tariffs);
}
return tariffsList;
};
useEffect(() => {
const get = async () => {
const user = await makeRequest({
method: "GET",
url: "https://squiz.pena.digital/customer/account",
});
const tariffs = await makeRequest<never, GetTariffsResponse>({
method: "GET",
url: "https://squiz.pena.digital/strator/tariff?page=1&limit=100",
});
const tariffsList = await getTariffsList();
const discounts = await makeRequest({
method: "GET",
url: "https://squiz.pena.digital/price/discounts",
});
setUser(user);
setTariffs(tariffs);
setTariffs(tariffsList);
setDiscounts(discounts.Discounts);
let c = currencyFormatter.format(Number(user.wallet.cash) / 100);
setCash(c);
@ -107,7 +130,7 @@ function TariffPage() {
const purchasesAmount = user?.wallet.purchasesAmount ?? 0;
const isUserNko = user?.status === "nko";
const filteredTariffs = tariffs.tariffs.filter((tariff) => {
const filteredTariffs = tariffs.filter((tariff) => {
return (
tariff.privileges[0].serviceKey === "squiz" &&
!tariff.isDeleted &&

@ -4,7 +4,7 @@ import NumberIcon from "@icons/NumberIcon";
import { calcIndividualTariffPrices } from "./calcTariffPrices";
import { currencyFormatter } from "./currencyFormatter";
import FreeTariffCard from "./FreeTariffCard";
import { Typography, useTheme } from "@mui/material";
import { Typography } from "@mui/material";
export const createTariffElements = (
filteredTariffs: Tariff[],
@ -13,7 +13,6 @@ export const createTariffElements = (
discounts: any,
onclick: any,
) => {
const theme = useTheme();
const tariffElements = filteredTariffs
.filter((tariff) => tariff.privileges.length > 0)
.map((tariff, index) => {