feat: getTariffsList
This commit is contained in:
parent
d21ff137e0
commit
23bbc30075
@ -18,7 +18,7 @@ import {
|
|||||||
IconButton,
|
IconButton,
|
||||||
} from "@mui/material";
|
} from "@mui/material";
|
||||||
import { enqueueSnackbar } from "notistack";
|
import { enqueueSnackbar } from "notistack";
|
||||||
import { Tariff, getMessageFromFetchError } from "@frontend/kitui";
|
import { getMessageFromFetchError } from "@frontend/kitui";
|
||||||
import { withErrorBoundary } from "react-error-boundary";
|
import { withErrorBoundary } from "react-error-boundary";
|
||||||
import { createTariffElements } from "./tariffsUtils/createTariffElements";
|
import { createTariffElements } from "./tariffsUtils/createTariffElements";
|
||||||
import HeaderFull from "@ui_kit/Header/HeaderFull";
|
import HeaderFull from "@ui_kit/Header/HeaderFull";
|
||||||
@ -28,35 +28,58 @@ import { clearUserData } from "@root/user";
|
|||||||
import ArrowLeft from "@icons/questionsPage/arrowLeft";
|
import ArrowLeft from "@icons/questionsPage/arrowLeft";
|
||||||
import { currencyFormatter } from "./tariffsUtils/currencyFormatter";
|
import { currencyFormatter } from "./tariffsUtils/currencyFormatter";
|
||||||
|
|
||||||
|
import type { Tariff } from "@frontend/kitui";
|
||||||
|
|
||||||
function TariffPage() {
|
function TariffPage() {
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
const isTablet = useMediaQuery(theme.breakpoints.down(1000));
|
const isTablet = useMediaQuery(theme.breakpoints.down(1000));
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
const [tariffs, setTariffs] = useState();
|
const [tariffs, setTariffs] = useState<Tariff[]>([]);
|
||||||
const [user, setUser] = useState();
|
const [user, setUser] = useState();
|
||||||
const [discounts, setDiscounts] = useState();
|
const [discounts, setDiscounts] = useState();
|
||||||
const [cartTariffMap, setCartTariffMap] = useState();
|
const [cartTariffMap, setCartTariffMap] = useState();
|
||||||
const [openModal, setOpenModal] = useState({});
|
const [openModal, setOpenModal] = useState({});
|
||||||
const [cash, setCash] = useState("0");
|
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(() => {
|
useEffect(() => {
|
||||||
const get = async () => {
|
const get = async () => {
|
||||||
const user = await makeRequest({
|
const user = await makeRequest({
|
||||||
method: "GET",
|
method: "GET",
|
||||||
url: "https://squiz.pena.digital/customer/account",
|
url: "https://squiz.pena.digital/customer/account",
|
||||||
});
|
});
|
||||||
const tariffs = await makeRequest<never, GetTariffsResponse>({
|
const tariffsList = await getTariffsList();
|
||||||
method: "GET",
|
|
||||||
url: "https://squiz.pena.digital/strator/tariff?page=1&limit=100",
|
|
||||||
});
|
|
||||||
const discounts = await makeRequest({
|
const discounts = await makeRequest({
|
||||||
method: "GET",
|
method: "GET",
|
||||||
url: "https://squiz.pena.digital/price/discounts",
|
url: "https://squiz.pena.digital/price/discounts",
|
||||||
});
|
});
|
||||||
setUser(user);
|
setUser(user);
|
||||||
setTariffs(tariffs);
|
setTariffs(tariffsList);
|
||||||
setDiscounts(discounts.Discounts);
|
setDiscounts(discounts.Discounts);
|
||||||
let c = currencyFormatter.format(Number(user.wallet.cash) / 100);
|
let c = currencyFormatter.format(Number(user.wallet.cash) / 100);
|
||||||
setCash(c);
|
setCash(c);
|
||||||
@ -107,7 +130,7 @@ function TariffPage() {
|
|||||||
|
|
||||||
const purchasesAmount = user?.wallet.purchasesAmount ?? 0;
|
const purchasesAmount = user?.wallet.purchasesAmount ?? 0;
|
||||||
const isUserNko = user?.status === "nko";
|
const isUserNko = user?.status === "nko";
|
||||||
const filteredTariffs = tariffs.tariffs.filter((tariff) => {
|
const filteredTariffs = tariffs.filter((tariff) => {
|
||||||
return (
|
return (
|
||||||
tariff.privileges[0].serviceKey === "squiz" &&
|
tariff.privileges[0].serviceKey === "squiz" &&
|
||||||
!tariff.isDeleted &&
|
!tariff.isDeleted &&
|
||||||
|
@ -4,7 +4,7 @@ import NumberIcon from "@icons/NumberIcon";
|
|||||||
import { calcIndividualTariffPrices } from "./calcTariffPrices";
|
import { calcIndividualTariffPrices } from "./calcTariffPrices";
|
||||||
import { currencyFormatter } from "./currencyFormatter";
|
import { currencyFormatter } from "./currencyFormatter";
|
||||||
import FreeTariffCard from "./FreeTariffCard";
|
import FreeTariffCard from "./FreeTariffCard";
|
||||||
import { Typography, useTheme } from "@mui/material";
|
import { Typography } from "@mui/material";
|
||||||
|
|
||||||
export const createTariffElements = (
|
export const createTariffElements = (
|
||||||
filteredTariffs: Tariff[],
|
filteredTariffs: Tariff[],
|
||||||
@ -13,7 +13,6 @@ export const createTariffElements = (
|
|||||||
discounts: any,
|
discounts: any,
|
||||||
onclick: any,
|
onclick: any,
|
||||||
) => {
|
) => {
|
||||||
const theme = useTheme();
|
|
||||||
const tariffElements = filteredTariffs
|
const tariffElements = filteredTariffs
|
||||||
.filter((tariff) => tariff.privileges.length > 0)
|
.filter((tariff) => tariff.privileges.length > 0)
|
||||||
.map((tariff, index) => {
|
.map((tariff, index) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user