From bcfe5bea3216af1dfc6a76de70baddb351113f30 Mon Sep 17 00:00:00 2001 From: aleksandr-raw <104529174+aleksandr-raw@users.noreply.github.com> Date: Mon, 22 Apr 2024 18:09:41 +0400 Subject: [PATCH] added email icon and realized handler for send bill by email --- src/pages/History/AccordionWrapper.tsx | 83 +++++++++++++++++++++---- src/pages/History/AccordionWrapper2.tsx | 83 +++++++++++++++++++++---- 2 files changed, 142 insertions(+), 24 deletions(-) diff --git a/src/pages/History/AccordionWrapper.tsx b/src/pages/History/AccordionWrapper.tsx index 56841ba..35b6d52 100644 --- a/src/pages/History/AccordionWrapper.tsx +++ b/src/pages/History/AccordionWrapper.tsx @@ -1,9 +1,18 @@ -import { Box, IconButton, Typography, useMediaQuery, useTheme } from "@mui/material" +import { + Box, + IconButton, + Typography, + useMediaQuery, + useTheme +} from "@mui/material" import CustomAccordion from "@components/CustomAccordion" import File from "@components/icons/File" -import { getDeclension } from "@utils/declension" -import { enqueueSnackbar } from "notistack" -import { addTariffToCart } from "@root/stores/user" +import {getDeclension} from "@utils/declension" +import {enqueueSnackbar} from "notistack" +import {addTariffToCart} from "@root/stores/user" +import ForwardToInboxOutlinedIcon + from "@mui/icons-material/ForwardToInboxOutlined"; +import {makeRequest} from "@frontend/kitui"; export type History = { title: string; @@ -50,6 +59,18 @@ export default function AccordionWrapper({ content, last, first, createdAt, onCl } } + async function sendBillByEmail(tariffId: string) { + try { + await makeRequest({ + url: process.env.REACT_APP_DOMAIN + `/customer/sendReport/${tariffId}`, + method: "POST", + }); + enqueueSnackbar("Акт будет отправлен на почту, указанную при регистрации"); + } catch (e) { + enqueueSnackbar("Извините, произошла ошибка"); + } + } + return ( - {e[1].Value} - {e[5].Value} {getDeclension(Number(e[5].Value), e[7].Value.toString())} + {e[1].Value} - {e[5].Value} {getDeclension(Number(e[5].Value), e[7].Value.toString())} ) )} header={ @@ -144,7 +165,7 @@ export default function AccordionWrapper({ content, last, first, createdAt, onCl }} title={`>Способ оплаты: ${valuesByKey.payMethod}}`} > - {valuesByKey.payMethod && {!isMobile && <> - {/* - - */} + { + e.stopPropagation(); + sendBillByEmail(valuesByKey.id); + }} + sx={{ + ml: "20px", + bgcolor: "#EEE4FC", + stroke: "#7E2AEA", + borderRadius: 2, + "&:hover": { + bgcolor: "#7E2AEA", + stroke: "white", + }, + "&:active": { + bgcolor: "black", + stroke: "white", + } + }} + > + + { @@ -211,9 +251,28 @@ export default function AccordionWrapper({ content, last, first, createdAt, onCl {isMobile && <> - {/* - - */} + { + e.stopPropagation(); + sendBillByEmail(valuesByKey.id); + }} + sx={{ + m: "0 10px", + bgcolor: "#EEE4FC", + stroke: "#7E2AEA", + borderRadius: 2, + "&:hover": { + bgcolor: "#7E2AEA", + stroke: "white", + }, + "&:active": { + bgcolor: "black", + stroke: "white", + } + }} + > + + { diff --git a/src/pages/History/AccordionWrapper2.tsx b/src/pages/History/AccordionWrapper2.tsx index 09d7499..ca55317 100644 --- a/src/pages/History/AccordionWrapper2.tsx +++ b/src/pages/History/AccordionWrapper2.tsx @@ -1,11 +1,19 @@ -import { Box, IconButton, Typography, useMediaQuery, useTheme } from "@mui/material"; +import { + Box, + IconButton, + Typography, + useMediaQuery, + useTheme +} from "@mui/material"; import CustomAccordion from "@components/CustomAccordion"; import File from "@components/icons/File"; -import { getDeclension } from "@utils/declension"; -import { enqueueSnackbar } from "notistack"; -import { addTariffToCart } from "@root/stores/user"; -import { Tariff } from "@frontend/kitui"; -import { currencyFormatter } from "@root/utils/currencyFormatter"; +import {getDeclension} from "@utils/declension"; +import {enqueueSnackbar} from "notistack"; +import {addTariffToCart} from "@root/stores/user"; +import {makeRequest, Tariff} from "@frontend/kitui"; +import {currencyFormatter} from "@root/utils/currencyFormatter"; +import ForwardToInboxOutlinedIcon + from "@mui/icons-material/ForwardToInboxOutlined"; export type History = { title: string; @@ -40,6 +48,19 @@ export default function AccordionWrapper2({ tariff, price, last, first, createdA } } + + async function sendBillByEmail(tariffId: string) { + try { + await makeRequest({ + url: process.env.REACT_APP_DOMAIN + `/customer/sendReport/${tariffId}`, + method: "POST", + }); + enqueueSnackbar("Акт будет отправлен на почту, указанную при регистрации"); + } catch (e) { + enqueueSnackbar("Извините, произошла ошибка"); + } + } + return ( {!isMobile && <> - {/* - - */} + { + e.stopPropagation(); + sendBillByEmail(tariff._id); + }} + sx={{ + ml: "20px", + bgcolor: "#EEE4FC", + stroke: "#7E2AEA", + borderRadius: 2, + "&:hover": { + bgcolor: "#7E2AEA", + stroke: "white", + }, + "&:active": { + bgcolor: "black", + stroke: "white", + } + }} + > + + { @@ -196,9 +236,28 @@ export default function AccordionWrapper2({ tariff, price, last, first, createdA {isMobile && <> - {/* - - */} + { + e.stopPropagation(); + sendBillByEmail(tariff._id); + }} + sx={{ + m: "0 10px", + bgcolor: "#EEE4FC", + stroke: "#7E2AEA", + borderRadius: 2, + "&:hover": { + bgcolor: "#7E2AEA", + stroke: "white", + }, + "&:active": { + bgcolor: "black", + stroke: "white", + } + }} + > + + {