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",
+ }
+ }}
+ >
+
+
{