Browse Source

qna 사용자 문의 삭제 api 연결

pull/2/head
hhjk00 11 months ago
parent
commit
a33ea7e7af
  1. 10
      src/components/cstmrService/inquiry/InquiryWrite.js
  2. 33
      src/containers/cstmrService/inquiry/UserInquiryContainer.js
  3. 1
      src/modules/cstmrService/inquiry/action/index.ts
  4. 17
      src/modules/cstmrService/inquiry/sagas/index.ts

10
src/components/cstmrService/inquiry/InquiryWrite.js

@ -26,7 +26,8 @@ function InquiryWrite({
handlerChangeInquiryForm, handlerChangeInquiryForm,
handlerSubmitInquiryForm, handlerSubmitInquiryForm,
memberName, memberName,
inquiryForm inquiryForm,
handlerDeleteConfirmInquiry
}) { }) {
const fileInputRef = useRef(null); const fileInputRef = useRef(null);
const [selectedFile, setSelectedFile] = useState(null); const [selectedFile, setSelectedFile] = useState(null);
@ -208,7 +209,12 @@ function InquiryWrite({
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<div className='pal-form-btn'> <div className='pal-form-btn'>
<Button color='danger'>삭제</Button> <Button
color='danger'
onClick={() => handlerDeleteConfirmInquiry()}
>
삭제
</Button>
<Button color='secondary' onClick={() => handlerInquiryModal()}> <Button color='secondary' onClick={() => handlerInquiryModal()}>
취소 취소
</Button> </Button>

33
src/containers/cstmrService/inquiry/UserInquiryContainer.js

@ -7,6 +7,7 @@ import moment from 'moment';
import InquiryWrite from '../../../components/cstmrService/inquiry/InquiryWrite'; import InquiryWrite from '../../../components/cstmrService/inquiry/InquiryWrite';
import { InfoModal } from '../../../components/modal/InfoModal'; import { InfoModal } from '../../../components/modal/InfoModal';
import { ErrorModal } from '../../../components/modal/ErrorModal'; import { ErrorModal } from '../../../components/modal/ErrorModal';
import { ConfirmModal } from '../../../components/modal/ConfirmModal';
export default function UserInquiryContainer({ memberName }) { export default function UserInquiryContainer({ memberName }) {
const dispatch = useDispatch(); const dispatch = useDispatch();
@ -201,6 +202,25 @@ export default function UserInquiryContainer({ memberName }) {
setIsInquiryModalOpen(false); setIsInquiryModalOpen(false);
}; };
// 문의 삭제 Confirm
const handlerDeleteConfirmInquiry = () => {
setValidationModal({
...validationModal,
confirmType: {
isOpen: true,
title: '삭제',
desc: '정말 삭제하시겠습니까?'
}
});
};
// 문의 삭제
const handlerDeleteInquiry = () => {
const { qnaSno } = inquiryForm;
dispatch(Actions.ADMIN_DELETE.request({ qnaSno, role: 'user' }));
setIsInquiryModalOpen(false);
};
return ( return (
<div className='faq'> <div className='faq'>
<div className='my-faq'> <div className='my-faq'>
@ -226,6 +246,7 @@ export default function UserInquiryContainer({ memberName }) {
handlerSubmitInquiryForm={handlerSubmitInquiryForm} handlerSubmitInquiryForm={handlerSubmitInquiryForm}
memberName={memberName} memberName={memberName}
inquiryForm={inquiryForm} inquiryForm={inquiryForm}
handlerDeleteConfirmInquiry={handlerDeleteConfirmInquiry}
/> />
<InfoModal <InfoModal
@ -250,6 +271,18 @@ export default function UserInquiryContainer({ memberName }) {
}); });
}} }}
/> />
<ConfirmModal
modal={validationModal.confirmType}
setModal={val => {
setValidationModal({
...validationModal,
confirmType: {
...val
}
});
}}
handlerConfirm={handlerDeleteInquiry}
/>
</div> </div>
); );
} }

1
src/modules/cstmrService/inquiry/action/index.ts

@ -86,6 +86,7 @@ export const ADMIN_DELETE = createAsyncAction(
anserStatus: string; anserStatus: string;
createUserNm: string; createUserNm: string;
qnaSno: number; qnaSno: number;
role: string;
}, },
{}, {},
AxiosError AxiosError

17
src/modules/cstmrService/inquiry/sagas/index.ts

@ -120,7 +120,8 @@ function* adminDeleteSaga(
action: ActionType<typeof Actions.ADMIN_DELETE.request> action: ActionType<typeof Actions.ADMIN_DELETE.request>
) { ) {
try { try {
const { category, anserStatus, createUserNm, qnaSno } = action.payload; const { category, anserStatus, createUserNm, qnaSno, role } =
action.payload;
const res = yield call(Apis.qnaAPI.adminDelete, qnaSno); const res = yield call(Apis.qnaAPI.adminDelete, qnaSno);
const { errorCode, data } = res; const { errorCode, data } = res;
@ -137,6 +138,7 @@ function* adminDeleteSaga(
return; return;
} }
if (data) { if (data) {
yield put( yield put(
MessageActions.IS_MESSAGE({ MessageActions.IS_MESSAGE({
@ -147,9 +149,16 @@ function* adminDeleteSaga(
}) })
); );
} }
yield put(
Actions.ADMIN_LIST.request({ category, anserStatus, createUserNm }) if (role === 'user') {
); yield put(
Actions.USER_LIST.request({ category: '', searchType: '', word: '' })
);
} else {
yield put(
Actions.ADMIN_LIST.request({ category, anserStatus, createUserNm })
);
}
} catch (error) { } catch (error) {
yield put(Actions.ADMIN_DELETE.failure(error)); yield put(Actions.ADMIN_DELETE.failure(error));
} }

Loading…
Cancel
Save