|
|
|
@ -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 |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 줄바꿈 문자를 <br>로 변환
|
|
|
|
|
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} |
|
|
|
|
/> |
|
|
|
|
|
|
|
|
|
<InfoModal |
|
|
|
|
modal={validationModal.successType} |
|
|
|
|
setModal={val => { |
|
|
|
|
setValidationModal({ |
|
|
|
|
...validationModal, |
|
|
|
|
successType: { |
|
|
|
|
...val |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
/> |
|
|
|
|
<ErrorModal |
|
|
|
|
modal={validationModal.errorType} |
|
|
|
|
setModal={val => { |
|
|
|
|
setValidationModal({ |
|
|
|
|
...validationModal, |
|
|
|
|
errorType: { |
|
|
|
|
...val |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
/> |
|
|
|
|
<ConfirmModal |
|
|
|
|
modal={validationModal.confirmType} |
|
|
|
|
setModal={val => { |
|
|
|
|