import moment from 'moment'; import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { HeaderType } from '@/entities/common/model/types'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { SortByKeys, AuthAndTransferStatus, AccountHolderAuthListItem } from '@/entities/additional-service/model/types'; import { useEffect, useState } from 'react'; import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant'; import { SortOptionsBox } from '@/entities/additional-service/ui/sort-options-box'; import { useSetHeaderTitle, useSetHeaderType, useSetFooterMode, useSetOnBack } from '@/widgets/sub-layout/use-sub-layout'; import { useExtensionAccountHolderAuthListMutation } from '@/entities/additional-service/api/account-holder-auth/use-extension-account-holder-auth-list-mutation'; import { authStatusBtnGroup } from '@/entities/additional-service/model/account-holder-auth/constant'; import { AccountHolderAuthList } from '@/entities/additional-service/ui/account-holder-auth/account-holder-auth-list'; import { useExtensionAccountHolderAuthDownloadExcelMutation } from '@/entities/additional-service/api/account-holder-auth/use-extension-account-holder-auth-download-excel-mutation'; import { AccountHolderAuthFilter } from '@/entities/additional-service/ui/account-holder-auth/filter/account-holder-auth-filter'; export const AccountHolderAuthPage = () => { const { navigate } = useNavigate(); const [sortBy, setSortBy] = useState(SortByKeys.New); const [listItems, setListItems] = useState({}); const [filterOn, setFilterOn] = useState(false); const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM); const [mid, setMid] = useState('nictest001m'); const [fromDate, setFromDate] = useState(moment().format('YYYY-MM-DD')); const [toDate, setToDate] = useState(moment().format('YYYY-MM-DD')); const [authStatus, setAuthStatus] = useState(AuthAndTransferStatus.ALL) useSetHeaderTitle('계좌점유인증'); useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(true); useSetOnBack(() => { navigate(PATHS.home); }); const { mutateAsync: accountHolderAuthList } = useExtensionAccountHolderAuthListMutation(); const { mutateAsync: downloadExcel } = useExtensionAccountHolderAuthDownloadExcelMutation(); const callList = (option?: { sortBy?: string, val?: string }) => { pageParam.sortBy = (option?.sortBy) ? option.sortBy : sortBy; setPageParam(pageParam); let listParams = { mid: mid, fromDate: fromDate, toDate: toDate, authStatus: authStatus, page: pageParam } accountHolderAuthList(listParams).then((rs) => { setListItems(assembleData(rs.content)); }); } const assembleData = (content: Array) => { console.log('rs.content:', content) let data: any = {}; if (content && content.length > 0) { for (let i = 0; i < content?.length; i++) { let requestDate = content[i]?.requestDate?.substring(0, 8); let groupDate = moment(requestDate).format('YYYYMMDD'); if (!!groupDate && !data.hasOwnProperty(groupDate)) { data[groupDate] = []; } if (!!groupDate && data.hasOwnProperty(groupDate)) { data[groupDate].push(content[i]); } } } console.log('Data : ', data) return data; }; const onClickToDownloadExcel = () => { downloadExcel({ mid: mid, fromDate: fromDate, toDate: toDate, authStatus: authStatus }).then((rs) => { console.log('Excel Downlaod Status : ' + rs.status) }); } const onClickToOpenFilter = () => { setFilterOn(!filterOn); }; const onClickToSort = (sort: SortByKeys) => { setSortBy(sort); callList({ sortBy: sort }) }; const onClickToAuthStatus = (val: AuthAndTransferStatus) => { setAuthStatus(val); callList({ val: val }); }; useEffect(() => { callList(); }, []); return ( <>
{ authStatusBtnGroup.map((value, index) => ( onClickToAuthStatus(value.value)} >{value.name} )) }
); };