downloadbottomsheet

This commit is contained in:
focp212@naver.com
2025-11-07 17:46:06 +09:00
parent 6b6d3cff0e
commit 1bbf90b98e
24 changed files with 485 additions and 368 deletions

View File

@@ -21,7 +21,7 @@ import { KeyInPaymentList } from '@/entities/additional-service/ui/key-in-paymen
import { useStore } from '@/shared/model/store';
import { KeyInPaymentListItem, KeyInPaymentStatus, KeyInPaymentTansactionType } from '@/entities/additional-service/model/key-in/types';
import { getKeyInPaymentPaymentStatusBtnGroup } from '@/entities/additional-service/model/key-in/constant';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
import { DownloadBottomSheet, DownloadSelectedMode } from '@/entities/common/ui/download-bottom-sheet';
import { useTranslation } from 'react-i18next';
import { useExtensionAccessCheck } from '@/shared/lib/hooks/use-extension-access-check';
import useIntersectionObserver from '@/widgets/intersection-observer';
@@ -51,7 +51,8 @@ export const KeyInPaymentPage = () => {
const [status, setStatus] = useState<KeyInPaymentStatus>(KeyInPaymentStatus.ALL);
const [minAmount, setMinAmount] = useState<number>();
const [maxAmount, setMaxAmount] = useState<number>();
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const [downloadBottomSheetOn, setDownloadBottomSheetOn] = useState<boolean>(false);
useSetHeaderTitle(t('additionalService.keyIn.title'));
useSetHeaderType(HeaderType.LeftArrow);
@@ -140,17 +141,22 @@ export const KeyInPaymentPage = () => {
setFilterOn(!filterOn);
};
const onClickToOpenEmailBottomSheet = () => {
const onClickToOpenDownloadBottomSheet = () => {
if (!checkGrant(56, 'D')) {
showAlert(t('common.nopermission'));
return;
}
setEmailBottomSheetOn(true);
setDownloadBottomSheetOn(true);
};
// 엑셀 다운로드
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
const onRequestDownloadExcel = (
selectedMode: DownloadSelectedMode,
userEmail?: string
) => {
if(selectedMode === DownloadSelectedMode.EMAIL
&& userEmail
){
downloadExcel({
mid: mid,
fromDate: startDate,
@@ -158,7 +164,7 @@ export const KeyInPaymentPage = () => {
paymentStatus: transactionType,
minAmount: minAmount,
maxAmount: maxAmount,
email: selectedEmail
email: userEmail
}).then((rs) => {
console.log('Excel Download Status:', rs.status);
}).catch((e: any) => {
@@ -168,7 +174,6 @@ export const KeyInPaymentPage = () => {
}
});
}
setEmailBottomSheetOn(false);
};
const onClickToSort = (sort: SortTypeKeys) => {
@@ -217,17 +222,17 @@ export const KeyInPaymentPage = () => {
<img
src={IMAGE_ROOT + '/ico_setting.svg'}
alt="검색옵션"
onClick={() => onClickToOpenFilter()}
onClick={ onClickToOpenFilter }
/>
</button>
</div>
<button
className="download-btn"
aria-label="다운로드"
onClick={onClickToOpenEmailBottomSheet}
onClick={ onClickToOpenDownloadBottomSheet }
>
<img
src={IMAGE_ROOT + '/ico_download.svg'}
src={ IMAGE_ROOT + '/ico_download.svg' }
alt="다운로드"
/>
</button>
@@ -278,14 +283,14 @@ export const KeyInPaymentPage = () => {
setMinAmount={setMinAmount}
setMaxAmount={setMaxAmount}
></KeyInPaymentFilter>
{ !!emailBottomSheetOn &&
<EmailBottomSheet
bottomSheetOn={ emailBottomSheetOn }
setBottomSheetOn={ setEmailBottomSheetOn }
{ !!downloadBottomSheetOn &&
<DownloadBottomSheet
bottomSheetOn={ downloadBottomSheetOn }
setBottomSheetOn={ setDownloadBottomSheetOn }
imageMode={ false }
emailMode={ true }
sendRequest={ onSendRequest }
></EmailBottomSheet>
sendRequest={ onRequestDownloadExcel }
></DownloadBottomSheet>
}
</>
);