From d5d8eed6990a05e91a12dc221a07b25b831bcd31 Mon Sep 17 00:00:00 2001 From: "focp212@naver.com" Date: Wed, 22 Oct 2025 17:45:38 +0900 Subject: [PATCH] email bottom --- src/entities/common/ui/email-bottom-sheet.tsx | 79 +++++++++++++------ .../transaction/all-transaction/list-page.tsx | 37 +++++++-- 2 files changed, 84 insertions(+), 32 deletions(-) diff --git a/src/entities/common/ui/email-bottom-sheet.tsx b/src/entities/common/ui/email-bottom-sheet.tsx index 78ab917..40fc175 100644 --- a/src/entities/common/ui/email-bottom-sheet.tsx +++ b/src/entities/common/ui/email-bottom-sheet.tsx @@ -1,21 +1,36 @@ import { BottomSheetMotionDuration, BottomSheetMotionVaiants } from '@/entities/common/model/constant'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { motion } from 'framer-motion'; +import { ChangeEvent, useState } from 'react'; export interface EmailBottomSheetProps { bottomSheetOn: boolean; setBottomSheetOn: (bottomSheetOn: boolean) => void; - callPurposeUpdate: () => void; + imageSave: boolean; + sendEmail: boolean; + sendRequest: (email?: string) => void; }; export const EmailBottomSheet = ({ bottomSheetOn, setBottomSheetOn, + imageSave, + sendEmail, + sendRequest }: EmailBottomSheetProps) => { - + const [userEmail, setUserEmail] = useState(''); + const emailList = [ + {name: 'test1@nicepay.co.kr', value: 'test1@nicepay.co.kr'}, + {name: 'test2@nicepay.co.kr', value: 'test2@nicepay.co.kr'}, + {name: 'test3@nicepay.co.kr', value: 'test3@nicepay.co.kr'}, + ]; const onClickToClose = () => { setBottomSheetOn(false); }; + + const onClickToRequest = () => { + sendRequest(userEmail); + }; return ( @@ -48,6 +63,7 @@ export const EmailBottomSheet = ({
+ { !!imageSave &&
@@ -58,38 +74,49 @@ export const EmailBottomSheet = ({
이미지 저장
-
-
-
- 메일 + } + { !!sendEmail && + <> +
+
+
+ 메일 +
+ 메일로 받기
- 메일로 받기 -
- -
-
- +
+
+ +
-
- -
-

등록된 메일 정보가 없습니다.
이메일 인증정보를 사용자관리 메뉴에서 추가 후 신청하세요.

-
+ {/* +
+

등록된 메일 정보가 없습니다.
이메일 인증정보를 사용자관리 메뉴에서 추가 후 신청하세요.

+
+ */} + + } +
diff --git a/src/pages/transaction/all-transaction/list-page.tsx b/src/pages/transaction/all-transaction/list-page.tsx index 6004f6d..4ac336a 100644 --- a/src/pages/transaction/all-transaction/list-page.tsx +++ b/src/pages/transaction/all-transaction/list-page.tsx @@ -1,11 +1,20 @@ import moment from 'moment'; +import { useStore } from '@/shared/model/store'; import { ChangeEvent, useEffect, useState } from 'react'; import { NumericFormat } from 'react-number-format'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { AllTransactionList } from '@/entities/transaction/ui/all-transaction-list'; -import { AllTransactionListItem, TransactionCategory, AllTransactionStatusCode, AllTransactionServiceCode, AllTransactionSearchCl, AllTransactionListParams, ListItemProps, AllTransactionListSummaryParams, AllTransactionListResponse, AllTransactionListSummaryResponse } from '@/entities/transaction/model/types'; +import { + TransactionCategory, + AllTransactionSearchCl, + AllTransactionListParams, + ListItemProps, + AllTransactionListSummaryParams, + AllTransactionListResponse, + AllTransactionListSummaryResponse +} from '@/entities/transaction/model/types'; import { useAllTransactionListMutation } from '@/entities/transaction/api/use-all-transaction-list-mutation'; import { useAllTransactionListSummaryMutation } from '@/entities/transaction/api/use-all-transaction-list-summary-mutation'; import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation'; @@ -19,8 +28,7 @@ import { useSetHeaderType, useSetFooterMode } from '@/widgets/sub-layout/use-sub-layout'; -import { useStore } from '@/shared/model/store'; -import { useCodesListByCodeClMutation } from '@/entities/common/api/use-codes-list-by-codeCl-mutaion'; +import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet'; export const AllTransactionListPage = () => { const { navigate } = useNavigate(); @@ -35,8 +43,8 @@ export const AllTransactionListPage = () => { const [mid, setMid] = useState(userMid); const [moid, setMoid] = useState(''); const [tid, setTid] = useState(''); - const [dateCl, setDateCl] = useState(); - const [goodsName, setGoodsName] = useState(); + const [dateCl, setDateCl] = useState(''); + const [goodsName, setGoodsName] = useState(''); // const [fromDate, setFromDate] = useState(moment().subtract(1, 'month').format('YYYYMMDD')); const [fromDate, setFromDate] = useState(moment().format('YYYYMMDD')); const [toDate, setToDate] = useState(moment().format('YYYYMMDD')); @@ -51,6 +59,8 @@ export const AllTransactionListPage = () => { const [totalCount, setTotalCount] = useState(0); const [totalAmount, setTotalAmount] = useState(0); + + const [emailBottomSheetOn, setEmailBottomSheetOn] = useState(false); useSetHeaderTitle('거래내역 조회'); @@ -62,7 +72,6 @@ export const AllTransactionListPage = () => { const { mutateAsync: allTransactionList } = useAllTransactionListMutation(); const { mutateAsync: allTransactionListSummary } = useAllTransactionListSummaryMutation(); - const { mutateAsync: codesListByCodeCl} = useCodesListByCodeClMutation(); const { mutateAsync: downloadExcel } = useDownloadExcelMutation(); const callList = (option?: { @@ -112,12 +121,18 @@ export const AllTransactionListPage = () => { setFilterOn(!filterOn); }; const onClickToDownloadExcel = () => { + setEmailBottomSheetOn(true); + + }; + const onRequestDownloadExcel = (userEmail?: string) => { // tid??? 확인 필요 + /* downloadExcel({ // tid: tid }).then((rs) => { }); + */ }; const onClickToSort = (sort: SortTypeKeys) => { setSortType(sort); @@ -270,6 +285,16 @@ export const AllTransactionListPage = () => { setSearchValue={ setSearchValue } serviceCodeOptions={ serviceCodeOptions } > + + { !!emailBottomSheetOn && + + } ); }; \ No newline at end of file