From 2ba8594e6b63a3585d23c5f9a0e29ae1b048201f Mon Sep 17 00:00:00 2001 From: bcjang Date: Mon, 28 Jul 2025 14:13:01 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B9=BC=EB=A6=AC=EC=9B=80=20=EC=99=84?= =?UTF-8?q?=EB=A3=8C=EC=B2=98=EB=A6=AC=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=20=EB=B3=80=EA=B2=BD=20=EC=9A=B0=ED=8E=B8=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=20=ED=99=95=EC=9D=B8=EC=8B=9C=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EC=B2=98=EB=A6=AC=20=EC=A1=B0=ED=9A=8C=EC=A1=B0?= =?UTF-8?q?=EA=B1=B4=20=EB=B3=80=EA=B2=BD=EC=8B=9C=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EC=B4=88=EA=B8=B0=ED=99=94=20=EB=9E=9C=EB=93=9C?= =?UTF-8?q?=EA=B2=BD=EB=A7=A4=20=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/modal/LandAuctionModal.js | 69 +----------------------- src/hooks/useCommonSearchOld.js | 27 ++++++++-- src/pages/ServiceManage/Board.js | 18 ++----- src/pages/ServiceManage/Items.js | 5 +- src/pages/ServiceManage/Mail.js | 2 +- src/pages/UserManage/CaliumRequest.js | 8 ++- 6 files changed, 36 insertions(+), 93 deletions(-) diff --git a/src/components/modal/LandAuctionModal.js b/src/components/modal/LandAuctionModal.js index 940de0d..90a06e4 100644 --- a/src/components/modal/LandAuctionModal.js +++ b/src/components/modal/LandAuctionModal.js @@ -65,7 +65,6 @@ const LandAuctionModal = ({ modalType, detailView, handleDetailView, content, se resv_end_dt: convertKTCDate(content.resv_end_dt), auction_start_dt: convertKTCDate(content.auction_start_dt), auction_end_dt: convertKTCDate(content.auction_end_dt), - message_list: content.message_list, }); const land = landData.find(land => land.id === parseInt(content.land_id)); setSelectLand(land); @@ -126,30 +125,6 @@ const LandAuctionModal = ({ modalType, detailView, handleDetailView, content, se } }; - // 입력 글자 제한 - const handleInputData = e => { - if (e.target.value.length > 250) { - return; - } - const updatedMessages = resultData.message_list.map(msg => - msg.language === message_lang - ? { ...msg, content: e.target.value.trimStart() } - : msg - ); - - setResultData(prev => ({ - ...prev, - message_list: updatedMessages - })); - }; - - // 언어 선택 - const handleLanguage = e => { - setMessage_lang(e.target.value); - if(!resultData.message_list.some(({language}) => language === e.target.value)) - setResultData({ ...resultData, message_list: [...resultData.message_list, {language: e.target.value, content: ''}] }) - } - const handleLand = e => { const land_id = e.target.value; const land = landData.find(land => land.id === parseInt(land_id)); @@ -256,7 +231,6 @@ const LandAuctionModal = ({ modalType, detailView, handleDetailView, content, se && resultData.resv_start_dt !== '' && resultData.resv_end_dt !== '' && resultData.land_id !== '' - // && resultData.message_list?.every(data => data.content !== '') ); }; @@ -368,42 +342,6 @@ const LandAuctionModal = ({ modalType, detailView, handleDetailView, content, se endLabel="종료 일자" reset={resetDateTime} /> - - {/**/} - {/* */} - {/* 메세지 작성[경매 시작 5분전 공지 - 미구현]*/} - {/* */} - {/* */} - {/* 언어*/} - {/* handleLanguage(e) } value={message_lang}>*/} - {/* {languageType.map((data, index) => (*/} - {/* */} - {/* ))}*/} - {/* */} - {/* */} - {/**/} - {/**/} - {/* {resultData.message_list.map(content => {*/} - {/* return (*/} - {/* */} - {/* {message_lang === content.language && (*/} - {/* */} - {/* handleInputData(e)}*/} - {/* maxLength={250}*/} - {/* disabled={!isView('message')}*/} - {/* />*/} - {/* */} - {/* )}*/} - {/* */} - {/* );*/} - {/* })}*/} - {/**/} {!isView() && isNullValue && {t('REQUIRED_VALUE_CHECK')}} @@ -465,12 +403,7 @@ export const initData = { resv_start_dt: '', resv_end_dt: '', auction_start_dt: '', - auction_end_dt: '', - message_list: [ - { language: 'KO', content: '' }, - { language: 'EN', content: '' }, - { language: 'JA', content: '' }, - ], + auction_end_dt: '' } export const initLandData = { diff --git a/src/hooks/useCommonSearchOld.js b/src/hooks/useCommonSearchOld.js index 4563868..73303f0 100644 --- a/src/hooks/useCommonSearchOld.js +++ b/src/hooks/useCommonSearchOld.js @@ -102,7 +102,22 @@ export const useCommonSearchOld = (configPath) => { }, [configLoaded, config, searchParams, fetchData]); // 검색 파라미터 업데이트 - const updateSearchParams = useCallback((newParams) => { + const updateSearchParams = useCallback((newParams, resetPage = false) => { + const pageField = config?.apiInfo?.pageField || 'currentPage'; + + setSearchParams(prev => { + // 페이지 필드 자체가 변경되는 경우가 아니라면 1페이지로 리셋 + const shouldResetPage = !newParams.hasOwnProperty(pageField) && prev[pageField] > 1; + + return { + ...prev, + ...newParams, + ...(shouldResetPage && { [pageField]: 1 }) + }; + }); + }, [config]); + + const updateSearchParamsForPagination = useCallback((newParams) => { setSearchParams(prev => ({ ...prev, ...newParams @@ -142,8 +157,14 @@ export const useCommonSearchOld = (configPath) => { if (!config) return null; const pageField = config.apiInfo?.pageField || 'currentPage'; - return await handleSearch({ [pageField]: newPage }, true); - }, [handleSearch, config]); + const updatedParams = { + ...searchParams, + [pageField]: newPage + }; + + updateSearchParamsForPagination(updatedParams); + return await fetchData(updatedParams); + }, [searchParams, fetchData, config, updateSearchParamsForPagination]); // 페이지 크기 변경 const handlePageSizeChange = useCallback(async (newSize) => { diff --git a/src/pages/ServiceManage/Board.js b/src/pages/ServiceManage/Board.js index 14c327e..85ba80f 100644 --- a/src/pages/ServiceManage/Board.js +++ b/src/pages/ServiceManage/Board.js @@ -1,21 +1,14 @@ import React, { Fragment, useState } from 'react'; -import { Link } from 'react-router-dom'; import { useEffect } from 'react'; import Button from '../../components/common/button/Button'; import CheckBox from '../../components/common/input/CheckBox'; -import Modal from '../../components/common/modal/Modal'; - -import styled from 'styled-components'; import { Title, TableWrapper, - BtnWrapper, TableInfo, ListOption, TableStyle, - ButtonClose, - ModalText, DetailMessage, } from '../../styles/Components'; @@ -23,14 +16,11 @@ import { NoticeDelete, NoticeDetailView, NoticeListView } from '../../apis/Notic import { BoardInfoModal, BoardRegistModal } from '../../components/ServiceManage'; import { authList } from '../../store/authList'; import { useRecoilValue } from 'recoil'; -import { useNavigate } from 'react-router-dom'; -import { convertKTC, timeDiffMinute } from '../../utils'; -import AuthModal from '../../components/common/modal/AuthModal'; -import { authType, landAuctionStatusType } from '../../assets/data'; +import { convertKTC } from '../../utils'; +import { authType } from '../../assets/data'; import { useAlert } from '../../context/AlertProvider'; import { message_type, sendStatus } from '../../assets/data/options'; -import { BattleEventDelete, BattleEventDetailView, BattleEventStop } from '../../apis/Battle'; -import { alertTypes, battleEventStatusType } from '../../assets/data/types'; +import { alertTypes } from '../../assets/data/types'; import { useModal, useTable, withAuth } from '../../hooks/hook'; import { useLoading } from '../../context/LoadingProvider'; import LogDetailModal from '../../components/common/modal/LogDetailModal'; @@ -109,7 +99,7 @@ const Board = () => { selectedRows.map(data => list.push({ - message_id: data.id, + id: data.id, }), ); diff --git a/src/pages/ServiceManage/Items.js b/src/pages/ServiceManage/Items.js index 0bc5d65..763c21e 100644 --- a/src/pages/ServiceManage/Items.js +++ b/src/pages/ServiceManage/Items.js @@ -45,6 +45,7 @@ const Items = () => { pagination, goToNextPage, goToPrevPage, + handlePageChange } = useEnhancedCommonSearch("itemSearch"); const { @@ -85,7 +86,7 @@ const Items = () => { showToast('API_FAIL', {type: alertTypes.error}); }).finally(() => { setItemCount('1'); - handleSearch(updateSearchParams); + handlePageChange(pagination.currentPage); }); break; @@ -118,7 +119,7 @@ const Items = () => { }).catch(reason => { showToast('API_FAIL', {type: alertTypes.error}); }).finally(() => { - handleSearch(updateSearchParams); + handlePageChange(pagination.currentPage); }); break; diff --git a/src/pages/ServiceManage/Mail.js b/src/pages/ServiceManage/Mail.js index 1645627..1b43238 100644 --- a/src/pages/ServiceManage/Mail.js +++ b/src/pages/ServiceManage/Mail.js @@ -226,7 +226,7 @@ const Mail = () => { detailView={modalState.detailModal} handleDetailView={() =>{ handleModalClose('detail'); - handleSearch(updateSearchParams); + handlePageChange(searchParams.currentPage); }} content={detailData} /> diff --git a/src/pages/UserManage/CaliumRequest.js b/src/pages/UserManage/CaliumRequest.js index df63964..215a5c8 100644 --- a/src/pages/UserManage/CaliumRequest.js +++ b/src/pages/UserManage/CaliumRequest.js @@ -46,7 +46,6 @@ const CaliumRequest = () => { const navigate = useNavigate(); const tableRef = useRef(null); - const [selectCharge, setSelectCharge] = useState({}); const [historyData, setHistoryData] = useState({}); const { @@ -90,15 +89,15 @@ const CaliumRequest = () => { }); break; case "chargedConfirm": - setSelectCharge({id: param.id, count: param.count}); + const select = {id: param.id, count: param.count}; showModal('CALIUM_CHARGE_CONFIRM', { type: alertTypes.confirm, - onConfirm: () => handleSubmit('charged') + onConfirm: () => handleSubmit('charged', select) }); break; case "charged": await withLoading( async () => { - return await CaliumCharge(token, selectCharge); + return await CaliumCharge(token, param); }).then(data => { if(data.result === "SUCCESS") { showToast('CHARGE_COMPLTED', {type: alertTypes.success}); @@ -110,7 +109,6 @@ const CaliumRequest = () => { }).catch(error => { showToast('API_FAIL', {type: alertTypes.error}); }).finally(() =>{ - setSelectCharge({}); handleSearch(updateSearchParams); }); break;