added email icon and realized handler for send bill by email

This commit is contained in:
aleksandr-raw 2024-04-22 18:09:41 +04:00
parent 1a586dc5dc
commit bcfe5bea32
2 changed files with 142 additions and 24 deletions

@ -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 (
<Box
sx={{
@ -178,9 +199,28 @@ export default function AccordionWrapper({ content, last, first, createdAt, onCl
</Box>
{!isMobile &&
<>
{/* <IconButton onClick={onClickMail}>
<EmailIcon fontSize={"large"}/>
</IconButton> */}
<IconButton
onClick={(e) => {
e.stopPropagation();
sendBillByEmail(valuesByKey.id);
}}
sx={{
ml: "20px",
bgcolor: "#EEE4FC",
stroke: "#7E2AEA",
borderRadius: 2,
"&:hover": {
bgcolor: "#7E2AEA",
stroke: "white",
},
"&:active": {
bgcolor: "black",
stroke: "white",
}
}}
>
<ForwardToInboxOutlinedIcon fontSize={"medium"} sx={{ opacity: 0.7 }}/>
</IconButton>
<IconButton
title="Добавить в корзину тариф"
onClick={(e) => {
@ -211,9 +251,28 @@ export default function AccordionWrapper({ content, last, first, createdAt, onCl
</Box>
{isMobile &&
<>
{/* <IconButton onClick={onClickMail}>
<EmailIcon fontSize={"large"}/>
</IconButton> */}
<IconButton
onClick={(e) => {
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",
}
}}
>
<ForwardToInboxOutlinedIcon fontSize={"medium"} sx={{ opacity: 0.7 }}/>
</IconButton>
<IconButton
title="Добавить в корзину тариф"
onClick={(e) => {

@ -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 (
<Box
sx={{
@ -163,9 +184,28 @@ export default function AccordionWrapper2({ tariff, price, last, first, createdA
</Box>
{!isMobile &&
<>
{/* <IconButton onClick={onClickMail}>
<EmailIcon fontSize={"large"}/>
</IconButton> */}
<IconButton
onClick={(e) => {
e.stopPropagation();
sendBillByEmail(tariff._id);
}}
sx={{
ml: "20px",
bgcolor: "#EEE4FC",
stroke: "#7E2AEA",
borderRadius: 2,
"&:hover": {
bgcolor: "#7E2AEA",
stroke: "white",
},
"&:active": {
bgcolor: "black",
stroke: "white",
}
}}
>
<ForwardToInboxOutlinedIcon fontSize={"medium"} sx={{ opacity: 0.7 }}/>
</IconButton>
<IconButton
title="Добавить в корзину тариф"
onClick={(e) => {
@ -196,9 +236,28 @@ export default function AccordionWrapper2({ tariff, price, last, first, createdA
</Box>
{isMobile &&
<>
{/* <IconButton onClick={onClickMail}>
<EmailIcon fontSize={"large"}/>
</IconButton> */}
<IconButton
onClick={(e) => {
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",
}
}}
>
<ForwardToInboxOutlinedIcon fontSize={"medium"} sx={{ opacity: 0.7 }}/>
</IconButton>
<IconButton
title="Добавить в корзину тариф"
onClick={(e) => {