add dynamic challenge modal title

This commit is contained in:
Tom
2023-05-26 10:10:51 +02:00
parent bb54704a89
commit 8d0ffd1f74
6 changed files with 59 additions and 9 deletions
+28 -7
View File
@@ -11,7 +11,11 @@ const CaptchaModal = () => {
pendingComment,
selectedStyle,
setCaptchaResponse,
isAuthorDelete, setIsAuthorDelete,
isAuthorEdit, setIsAuthorEdit,
isCaptchaOpen, setIsCaptchaOpen,
isModEdit, setIsModEdit,
resolveCaptchaPromise,
selectedShortCid,
} = useGeneralStore(state => state);
@@ -22,8 +26,18 @@ const CaptchaModal = () => {
const responseRef = useRef();
const nodeRef = useRef(null);
useEffect(() => {
if (!isCaptchaOpen) {
setIsAuthorDelete(false);
setIsAuthorEdit(false);
setIsModEdit(false);
}
}, [isCaptchaOpen, setIsAuthorDelete, setIsAuthorEdit, setIsModEdit]);
useEffect(() => {
useEffect(() => {
const handleResize = () => setIsMobile(window.innerWidth <= 480);
window.addEventListener('resize', handleResize);
@@ -50,6 +64,7 @@ const CaptchaModal = () => {
}
}, [challengesArray]);
const handleKeyDown = (event) => {
if (event.key === "Enter") {
event.preventDefault();
@@ -57,10 +72,11 @@ const CaptchaModal = () => {
}
};
const handleReturnKeyDown = () => {
submitCaptcha((response) => {
useGeneralStore.getState().setCaptchaResponse(response);
useGeneralStore.getState().resolveCaptchaPromise(response);
submitCaptcha((response) => {
setCaptchaResponse(response);
resolveCaptchaPromise(response);
});
};
@@ -72,13 +88,15 @@ const CaptchaModal = () => {
if (callback) {
callback(responseRef.current.value);
}
};
};
return (
<StyledModal
isOpen={isCaptchaOpen}
onRequestClose={() => setIsCaptchaOpen(false)}
onRequestClose={() => {
submitCaptcha();
setIsCaptchaOpen(false);}}
contentLabel="Captcha Modal"
shouldCloseOnEsc={false}
shouldCloseOnOverlayClick={false}
@@ -87,7 +105,10 @@ const CaptchaModal = () => {
<Draggable handle=".modal-header" nodeRef={nodeRef} disabled={isMobile}>
<div className="modal-content" ref={nodeRef}>
<div className="modal-header">
{pendingComment.parentCid ?
{isModEdit ? "Challenge for Moderator Action" :
isAuthorEdit ? "Challenge for Editing Post" :
isAuthorDelete ? "Challenge for Deleting Post" :
pendingComment.parentCid ?
("Challenges for Reply to c/" + selectedShortCid) :
"Challenges for New Thread"}
<button className="icon" onClick={() => setIsCaptchaOpen(false)} title="close" />
@@ -15,6 +15,7 @@ const ModerationModal = ({ isOpen, closeModal, deletePost }) => {
setCaptchaResponse,
setChallengesArray,
setIsCaptchaOpen,
setIsModEdit,
moderatingCommentCid,
setResolveCaptchaPromise,
} = useGeneralStore(state => state);
@@ -221,6 +222,7 @@ const ModerationModal = ({ isOpen, closeModal, deletePost }) => {
reason: reason
}));
setTriggerPublishCommentEdit(true);
setIsModEdit(true);
handleCloseModal();
}}
>