diff --git a/src/components/laanc/map/LaancDrawControl.js b/src/components/laanc/map/LaancDrawControl.js index 18c0c87a..7e52832e 100644 --- a/src/components/laanc/map/LaancDrawControl.js +++ b/src/components/laanc/map/LaancDrawControl.js @@ -23,7 +23,6 @@ import Constants from 'mapbox-gl-draw-circle/node_modules/@mapbox/mapbox-gl-draw import { openModal } from '@src/_redux/features/comn/message/messageSlice'; import { MODAL_BODY, MODAL_HEADER } from '@src/configs/msgConst'; -const ErrorModal = lazy(() => import('../../modal/ErrorModal')); export default function LaancDrawControl(props) { const dispatch = useDispatch(); const drawObj = props.drawObj; diff --git a/src/components/layout/CustomDetailLayout.js b/src/components/layout/CustomDetailLayout.js index a6074b57..dd1d20dd 100644 --- a/src/components/layout/CustomDetailLayout.js +++ b/src/components/layout/CustomDetailLayout.js @@ -1,9 +1,6 @@ import { Button } from '@component/ui'; import { useHistory } from 'react-router-dom'; import { X } from 'react-feather'; -import { MessageErrorModal } from '../message/MessageErrorModal'; -import { MessageInfoModal } from '../message/MessageInfoModal'; -import { MessageModal } from '../message/MessageModal'; export const CustomDetailLayout = ({ children, ...props }) => { const history = useHistory(); @@ -26,9 +23,6 @@ export const CustomDetailLayout = ({ children, ...props }) => { {children} - {/* - - */} ); }; diff --git a/src/components/layout/CustomMainLayout.js b/src/components/layout/CustomMainLayout.js index db014211..847033d9 100644 --- a/src/components/layout/CustomMainLayout.js +++ b/src/components/layout/CustomMainLayout.js @@ -1,7 +1,3 @@ -import { MessageErrorModal } from '../message/MessageErrorModal'; -import { MessageInfoModal } from '../message/MessageInfoModal'; -import { MessageModal } from '../message/MessageModal'; - export const CustomMainLayout = ({ children, ...props }) => { return (
@@ -11,9 +7,6 @@ export const CustomMainLayout = ({ children, ...props }) => {
{children} - {/* - - */} ); }; diff --git a/src/containers/basis/group/BasisGroupApprovalContainer.js b/src/containers/basis/group/BasisGroupApprovalContainer.js index 72628bf9..3cc1fcd9 100644 --- a/src/containers/basis/group/BasisGroupApprovalContainer.js +++ b/src/containers/basis/group/BasisGroupApprovalContainer.js @@ -3,7 +3,6 @@ import { useEffect, useState } from 'react'; import { Button } from '@component/ui'; import { BasisGroupApprovalSearch } from '../../../components/basis/group/BasisGroupApprovalSearch'; import { ConfirmModal } from '../../../components/modal/ConfirmModal'; -import InfoModal from '../../../components/modal/InfoModal'; import { BasisContainer } from '../BasisContainer'; import { BasisDataGrid } from '../../../components/basis/BasisDataGrid'; import { @@ -13,6 +12,7 @@ import { updateAprv } from '@src/_redux/features/basis/group/groupThunk'; import { clientSelectAprvGroup } from '@src/_redux/features/basis/group/groupSlice'; +import { openModal } from '@src/_redux/features/comn/message/messageSlice'; export const BasisGroupApprovalContainer = ({ user }) => { const dispatch = useDispatch(); @@ -50,13 +50,6 @@ export const BasisGroupApprovalContainer = ({ user }) => { desc: '' }); - // info 모달 - const [infoModal, setInfoModal] = useState({ - isOpen: false, - title: '', - desc: '' - }); - // 그룹목록 컬럼명 const column = [ { @@ -273,11 +266,12 @@ export const BasisGroupApprovalContainer = ({ user }) => { ); } } else { - setInfoModal({ - isOpen: true, - title: '권한 확인', - desc: '승인관리 확인을 위해서는 운영자 권한이 필요합니다. 운영자에게 권한을 부여받고 다시 시도해 주세요.' - }); + dispatch( + openModal({ + header: '권한 확인', + body: '승인관리 확인을 위해서는 운영자 권한이 필요합니다. 운영자에게 권한을 부여받고 다시 시도해 주세요.' + }) + ); return; } }; @@ -341,7 +335,7 @@ export const BasisGroupApprovalContainer = ({ user }) => { setModal({ isOpen: true, title: '승인 취소', - desc: '해당 사용자를 승인취소 처리 하시겠습니까?' + desc: '해당 사용자를 승인취소 처리하시겠습니까?' }); setSaveData({ @@ -393,7 +387,6 @@ export const BasisGroupApprovalContainer = ({ user }) => { handlerConfirm={handlerAprvSave} color='primary' /> - } /> diff --git a/src/containers/cstmrService/faq/FaqContainer.js b/src/containers/cstmrService/faq/FaqContainer.js index c06e89ca..c093c3da 100644 --- a/src/containers/cstmrService/faq/FaqContainer.js +++ b/src/containers/cstmrService/faq/FaqContainer.js @@ -6,9 +6,9 @@ import * as Actions from '../../../_redux/features/customerService/faq/faqThunk' import FaqSearchBox from '../../../components/cstmrService/faq/FaqSearchBox'; import FaqForm from '../../../components/cstmrService/faq/FaqForm'; import FaqTab from '../../../components/cstmrService/faq/FaqTab'; -import ErrorModal from '../../../components/modal/ErrorModal'; -import InfoModal from '../../../components/modal/InfoModal'; import { ConfirmModal } from '../../../components/modal/ConfirmModal'; +import { MODAL_BODY, MODAL_HEADER } from '@src/configs/msgConst'; +import { openModal } from '@src/_redux/features/comn/message/messageSlice'; const tabList = [ { title: '전체', @@ -59,16 +59,6 @@ export default function FaqContainer() { const [isOpenFormModal, setIsOpenFormModal] = useState(false); // validation Modal const [validationModal, setValidationModal] = useState({ - errorType: { - isOpen: false, - desc: '', - title: '필수값 입력 오류' - }, - successType: { - isOpen: false, - desc: '', - title: '필수값 입력 오류' - }, confirmType: { isOpen: false, desc: '', @@ -84,6 +74,16 @@ export default function FaqContainer() { handlerGetFaqList(); }, [activeTab]); + // 단순 메시지 표출 모달 + const handlerOpenModal = (header, body) => { + dispatch( + openModal({ + header: header, + body: body + }) + ); + }; + // 질문 목록 가져오는 handler const handlerGetFaqList = () => { dispatch( @@ -136,26 +136,12 @@ export default function FaqContainer() { // 질문 등록, 수정 Submit handler const handlerSubmitForm = () => { if (!formData.title) { - setValidationModal({ - ...validationModal, - errorType: { - ...validationModal.errorType, - isOpen: true, - desc: '제목을 입력해주세요.' - } - }); + handlerOpenModal(MODAL_HEADER.valid, '제목을' + MODAL_BODY.valid); return; } if (!formData.content) { - setValidationModal({ - ...validationModal, - errorType: { - ...validationModal.errorType, - isOpen: true, - desc: '내용을 입력해주세요.' - } - }); + handlerOpenModal(MODAL_HEADER.valid, '내용을' + MODAL_BODY.valid); return; } @@ -187,14 +173,8 @@ export default function FaqContainer() { setIsOpenFormModal(false); setFormData(initFormData); - setValidationModal({ - ...validationModal, - successType: { - title: formMode === 'create' ? '등록' : '수정', - isOpen: true, - desc: `${formMode === 'create' ? '등록' : '수정'}되었습니다.` - } - }); + const title = formMode === 'create' ? '등록' : '수정'; + handlerOpenModal(title, 'title' + '되었습니다.'); }; // 수정하기 button click handler @@ -330,28 +310,6 @@ export default function FaqContainer() { user={user} formMode={formMode} /> - { - setValidationModal({ - ...validationModal, - errorType: { - ...val - } - }); - }} - /> - { - setValidationModal({ - ...validationModal, - successType: { - ...val - } - }); - }} - /> { diff --git a/src/containers/cstmrService/inquiry/AdminInquiryContainer.js b/src/containers/cstmrService/inquiry/AdminInquiryContainer.js index 139ec30f..5acc8629 100644 --- a/src/containers/cstmrService/inquiry/AdminInquiryContainer.js +++ b/src/containers/cstmrService/inquiry/AdminInquiryContainer.js @@ -10,9 +10,9 @@ import { clientAdminDetailInital } from '@src/_redux/features/customerService/qn import QnaSearchBox from '../../../components/cstmrService/inquiry/QnaSearchBox'; import QnaGrid from '../../../components/cstmrService/inquiry/QnaGrid'; import QnaDetail from '../../../components/cstmrService/inquiry/QnaDetail'; -import InfoModal from '../../../components/modal/InfoModal'; import { ConfirmModal } from '../../../components/modal/ConfirmModal'; import { HOST } from '@src/configs/constants'; +import { openModal } from '@src/_redux/features/comn/message/messageSlice'; const initalSearch = { category: '', @@ -29,16 +29,6 @@ export default function AdminInquiryContainer() { const [adminDetailForm, setAdminDetailForm] = useState({}); // 수정 validation modal state const [validationModal, setValidationModal] = useState({ - errorType: { - isOpen: false, - desc: '', - title: '필수값 입력 오류' - }, - successType: { - isOpen: false, - desc: '', - title: '필수값 입력 오류' - }, confirmType: { isOpen: false, desc: '', @@ -71,6 +61,16 @@ export default function AdminInquiryContainer() { } }, [isDetailModal]); + // 단순 메시지 표출 모달 + const handlerOpenModal = (header, body) => { + dispatch( + openModal({ + header: header, + body: body + }) + ); + }; + // 관리자 문의 목록 조회 const handlerGetQnaList = () => { const { category, anserStatus, createUserNm } = searchData; @@ -134,14 +134,7 @@ export default function AdminInquiryContainer() { }) ); setIsDetailModal(false); - setValidationModal({ - ...validationModal, - successType: { - title: '저장', - isOpen: true, - desc: '저장 되었습니다.' - } - }); + handlerOpenModal('저장', '저장 되었습니다.'); }; // Qna 삭제 Confirm @@ -187,17 +180,6 @@ export default function AdminInquiryContainer() { handlerFileDownload={handlerFileDownload} handlerDeleteConfirQna={handlerDeleteConfirQna} /> - { - setValidationModal({ - ...validationModal, - successType: { - ...val - } - }); - }} - /> { diff --git a/src/containers/cstmrService/inquiry/UserInquiryContainer.js b/src/containers/cstmrService/inquiry/UserInquiryContainer.js index 507031ae..32b1ec80 100644 --- a/src/containers/cstmrService/inquiry/UserInquiryContainer.js +++ b/src/containers/cstmrService/inquiry/UserInquiryContainer.js @@ -12,9 +12,9 @@ import { } from '@src/_redux/features/customerService/qna/qnaThunk'; import { clientUserDetailInital } from '@src/_redux/features/customerService/qna/qnaSlice'; import InquiryWrite from '../../../components/cstmrService/inquiry/InquiryWrite'; -import InfoModal from '../../../components/modal/InfoModal'; -import ErrorModal from '../../../components/modal/ErrorModal'; import { ConfirmModal } from '../../../components/modal/ConfirmModal'; +import { openModal } from '@src/_redux/features/comn/message/messageSlice'; +import { MODAL_BODY, MODAL_HEADER } from '@src/configs/msgConst'; export default function UserInquiryContainer({ memberName }) { const dispatch = useDispatch(); @@ -40,16 +40,6 @@ export default function UserInquiryContainer({ memberName }) { // 등록 validation modal state const [validationModal, setValidationModal] = useState({ - errorType: { - isOpen: false, - desc: '', - title: '필수값 입력 오류' - }, - successType: { - isOpen: false, - desc: '', - title: '필수값 입력 오류' - }, confirmType: { isOpen: false, desc: '', @@ -65,6 +55,16 @@ export default function UserInquiryContainer({ memberName }) { if (detail) setInquiryForm({ ...detail }); }, [detail]); + // 단순 메시지 표출 모달 + const handlerOpenModal = (header, body) => { + dispatch( + openModal({ + header: header, + body: body + }) + ); + }; + // 줄바꿈 문자를
로 변환 const textLineBreaks = text => { const lines = text.split(/\r?\n/); @@ -185,44 +185,17 @@ export default function UserInquiryContainer({ memberName }) { inquiryForm; if (!contact) { - setValidationModal({ - ...validationModal, - errorType: { - title: '필수값 입력 오류', - isOpen: true, - desc: '연락처를 입력해주세요.' - } - }); + handlerOpenModal(MODAL_HEADER.valid, '연락처를' + MODAL_BODY.valid); + return; } else if (!title) { - setValidationModal({ - ...validationModal, - errorType: { - title: '필수값 입력 오류', - isOpen: true, - desc: '제목을 입력해주세요.' - } - }); + handlerOpenModal(MODAL_HEADER.valid, '제목을' + MODAL_BODY.valid); return; } else if (!content) { - setValidationModal({ - ...validationModal, - errorType: { - title: '필수값 입력 오류', - isOpen: true, - desc: '내용을 입력해주세요.' - } - }); + handlerOpenModal(MODAL_HEADER.valid, '내용을' + MODAL_BODY.valid); return; } else if (content.length > 300) { - setValidationModal({ - ...validationModal, - errorType: { - title: '필수값 입력 오류', - isOpen: true, - desc: '300자 이하로 작성해주세요.' - } - }); + handlerOpenModal(MODAL_HEADER.valid, '300자 이하로 작성해 주세요.'); return; } else if (fileInfos.length > 0) { const allowedExtensions = ['jpg', 'png', 'jpeg', 'gif']; @@ -234,26 +207,12 @@ export default function UserInquiryContainer({ memberName }) { const maxFileSize = 3 * 1024 * 1024; // 3MB if (!allowedExtensions.includes(fileExtension)) { - setValidationModal({ - ...validationModal, - errorType: { - title: '파일 형식 오류', - isOpen: true, - desc: '파일 형식을 다시 확인 해주십시요.' - } - }); + handlerOpenModal('파일 형식 오류', '파일 형식을 다시 확인해 주세요.'); return; } if (fileInfos[0].size > maxFileSize) { - setValidationModal({ - ...validationModal, - errorType: { - title: '파일 크기 오류', - isOpen: true, - desc: '최대 허용 용량을 초과 하였습니다.' - } - }); + handlerOpenModal('파일 크기 오류', '최대 허용 용량을 초과하였습니다.'); return; } } @@ -331,29 +290,6 @@ export default function UserInquiryContainer({ memberName }) { handlerFileChange={handlerFileChange} handlerFileClear={handlerFileClear} /> - - { - setValidationModal({ - ...validationModal, - successType: { - ...val - } - }); - }} - /> - { - setValidationModal({ - ...validationModal, - errorType: { - ...val - } - }); - }} - /> { diff --git a/src/containers/laanc/LaancPlanContainer.js b/src/containers/laanc/LaancPlanContainer.js index 103db416..825a22c8 100644 --- a/src/containers/laanc/LaancPlanContainer.js +++ b/src/containers/laanc/LaancPlanContainer.js @@ -1,5 +1,4 @@ import { lazy, useEffect, useState, Suspense } from 'react'; -import LaancModal from '../../components/laanc/LaancModal'; import { initFlightBasState } from '@src/_redux/features/laanc/laancState'; import { Modal } from '@component/ui'; import { clientInitAreaDetailInitial } from '../../modules/laanc/actions'; @@ -9,7 +8,6 @@ import { clientDrawTypeChange } from '@src/_redux/features/control/map/mapSlice' const LaancStep1 = lazy(() => import('../../components/laanc/step/LaancStep1')); const LaancStep2 = lazy(() => import('../../components/laanc/step/LaancStep2')); const LaancStep3 = lazy(() => import('../../components/laanc/step/LaancStep3')); -const ErrorModal = lazy(() => import('../../components/modal/ErrorModal')); export default function LaancPlanContainer({ currentParm, @@ -27,20 +25,6 @@ export default function LaancPlanContainer({ // 비행 구역 보달 const [centeredModal, setCenteredModal] = useState(false); - // 모달 - const [isErrorModal, setIsErrorModal] = useState({ - isOpen: false, - title: '', - desc: '' - }); - const [isLaancModal, setIsLaancModal] = useState({ - isOpen: false, - title: '', - desc: '', - type: '', - url: '' - }); - // 로그인 회원 정보 세팅 useEffect(() => { if (user) { @@ -115,10 +99,6 @@ export default function LaancPlanContainer({ )} - - - - );