feat: getTariffsList
This commit is contained in:
parent
d21ff137e0
commit
23bbc30075
@ -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) => {
|
||||
|
Loading…
Reference in New Issue
Block a user