This commit is contained in:
Nastya 2024-01-04 01:56:50 +03:00
parent ea4c238813
commit 219041ead6
2 changed files with 43 additions and 32 deletions

@ -20,7 +20,7 @@ import { createTariffElements } from "./tariffsUtils/createTariffElements";
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();
@ -57,27 +57,31 @@ function TariffPage() {
console.log("discounts ", discounts); console.log("discounts ", discounts);
const openModalHC = (tariffInfo: any) => setOpenModal(tariffInfo); const openModalHC = (tariffInfo: any) => setOpenModal(tariffInfo);
const tryBuy = async ({ id, price }: { id: string, price: number }) => { const tryBuy = async ({ id, price }: { id: string; price: number }) => {
openModalHC({}) openModalHC({});
//Если в корзине что-то было - выкладываем содержимое и запоминаем чо там лежало //Если в корзине что-то было - выкладываем содержимое и запоминаем чо там лежало
if (user.cart.length > 0) { if (user.cart.length > 0) {
outCart(user.cart) outCart(user.cart);
} }
//Если нам хватает денежек - покупаем тариф //Если нам хватает денежек - покупаем тариф
if (price <= user.wallet.cash) { if (price <= user.wallet.cash) {
try { try {
await makeRequest({ await makeRequest({
method: "POST", method: "POST",
url: "https://suiz.pena.digital/customer/cart/pay" url: "https://suiz.pena.digital/customer/cart/pay",
}) });
} catch (e) { } catch (e) {
enqueueSnackbar("Произошла ошибка. Попробуйте позже") enqueueSnackbar("Произошла ошибка. Попробуйте позже");
} }
//Развращаем товары в корзину //Развращаем товары в корзину
inCart() inCart();
} else { } else {
//Деняк не хватило //Деняк не хватило
navigate("https://hub.pena.digital/wallet?action=squizpay") // history.pushState({}, null, "https://hub.pena.digital/wallet?action=squizpay");
var link = document.createElement('a');
link.href = `https://hub.pena.digital/payment?action=squizpay&dif=${(price - user.wallet) * 100}`
document.body.appendChild(link);
link.click();
} }
}; };
@ -126,12 +130,20 @@ function TariffPage() {
p: 4, p: 4,
display: "flex", display: "flex",
justifyContent: "center", justifyContent: "center",
flexDirection: "column" flexDirection: "column",
}}> }}
<Typography id="modal-modal-title" variant="h6" component="h2" mb="20px"> >
<Typography
id="modal-modal-title"
variant="h6"
component="h2"
mb="20px"
>
Вы подтверждаете платёж в сумму {openModal.price} Вы подтверждаете платёж в сумму {openModal.price}
</Typography> </Typography>
<Button variant="contained" onClick={() => tryBuy(openModal)}>купить</Button> <Button variant="contained" onClick={() => tryBuy(openModal)}>
купить
</Button>
</Paper> </Paper>
</Modal> </Modal>
</> </>
@ -163,39 +175,37 @@ const LoadingPage = () => (
); );
const inCart = () => { const inCart = () => {
let saveCart = JSON.parse(localStorage.getItem("saveCart") || "[]") let saveCart = JSON.parse(localStorage.getItem("saveCart") || "[]");
saveCart.forEach(async (id: string) => { saveCart.forEach(async (id: string) => {
try { try {
await makeRequest({ await makeRequest({
method: "PATCH", method: "PATCH",
url: `https://hub.pena.digital/customer/cart?id=${id}` url: `https://hub.pena.digital/customer/cart?id=${id}`,
}) });
let index = saveCart.indexOf('green'); let index = saveCart.indexOf("green");
if (index !== -1) { if (index !== -1) {
saveCart.splice(index, 1); saveCart.splice(index, 1);
} }
localStorage.setItem("saveCart", JSON.stringify(saveCart)) localStorage.setItem("saveCart", JSON.stringify(saveCart));
} catch (e) { } catch (e) {
console.log("Я не смог добавить тариф в корзину :( " + id) console.log("Я не смог добавить тариф в корзину :( " + id);
} }
}) });
} };
const outCart = (cart: string[]) => { const outCart = (cart: string[]) => {
//Сделаем муторно и подольше, зато при прерывании сессии данные потеряются минимально //Сделаем муторно и подольше, зато при прерывании сессии данные потеряются минимально
cart.forEach(async (id: string) => { cart.forEach(async (id: string) => {
try { try {
await makeRequest({ await makeRequest({
method: "DELETE", method: "DELETE",
url: `https://suiz.pena.digital/customer/cart?id=${id}` url: `https://suiz.pena.digital/customer/cart?id=${id}`,
}) });
let saveCart = JSON.parse(localStorage.getItem("saveCart") || "[]") let saveCart = JSON.parse(localStorage.getItem("saveCart") || "[]");
saveCart = saveCart.push(id) saveCart = saveCart.push(id);
localStorage.setItem("saveCart", JSON.stringify(saveCart)) localStorage.setItem("saveCart", JSON.stringify(saveCart));
} catch (e) { } catch (e) {
console.log("Я не смог удалить из корзины тариф :(") console.log("Я не смог удалить из корзины тариф :(");
} }
}) });
} };

@ -46,7 +46,8 @@ export const createTariffElements = (
} }
buttonProps={{ buttonProps={{
text: "Выбрать", text: "Выбрать",
onClick: () => onclick({id: tariff._id, price: priceBeforeDiscounts / 100}), onClick: () =>
onclick({ id: tariff._id, price: priceBeforeDiscounts / 100 }),
}} }}
headerText={tariff.name} headerText={tariff.name}
text={tariff.privileges.map((p) => `${p.name} - ${p.amount}`)} text={tariff.privileges.map((p) => `${p.name} - ${p.amount}`)}