added functionality to captcha modal

This commit is contained in:
plebbitor
2023-04-07 17:47:51 +02:00
parent 664533d465
commit 73ed32c848
3 changed files with 89 additions and 33 deletions
+8 -11
View File
@@ -24,8 +24,10 @@ import useSuccess from '../../hooks/useSuccess';
const Board = () => {
const {
captchaResponse, setCaptchaResponse,
setChallengesArray,
defaultSubplebbits,
isSettingsOpen, setIsSettingsOpen,
setPendingComment,
selectedAddress, setSelectedAddress,
selectedStyle,
setSelectedThread,
@@ -41,7 +43,6 @@ const Board = () => {
const [isCaptchaOpen, setIsCaptchaOpen] = useState(false);
const [isReplyOpen, setIsReplyOpen] = useState(false);
const [captchaImage, setCaptchaImage] = useState('');
const navigate = useNavigate();
const [prevScrollPos, setPrevScrollPos] = useState(0);
const [visible, setVisible] = useState(true);
@@ -55,10 +56,6 @@ const Board = () => {
useSuccess(successMessage, [successMessage]);
// useEffect(() => {
// console.log(selectedFeed[3]);
// }, [selectedFeed]);
// temporary title from JSON, gets subplebbitAddress from URL
useEffect(() => {
setSelectedAddress(subplebbitAddress);
@@ -110,7 +107,8 @@ const Board = () => {
const onChallenge = async (challenges, comment) => {
console.log("onChallenge:", challenges, comment)
setPendingComment(comment);
let challengeAnswers = [];
try {
challengeAnswers = await getChallengeAnswersFromUser(challenges)
@@ -150,6 +148,8 @@ const Board = () => {
const getChallengeAnswersFromUser = async (challenges) => {
setChallengesArray(challenges);
return new Promise((resolve, reject) => {
const imageString = challenges?.challenges[0].challenge;
const imageSource = `data:image/png;base64,${imageString}`;
@@ -158,11 +158,9 @@ const Board = () => {
challengeImg.onload = () => {
setIsCaptchaOpen(true);
setCaptchaImage(imageSource);
const handleKeyDown = (event) => {
if (event.key === 'Enter') {
setCaptchaImage('');
resolve(captchaResponse);
setIsCaptchaOpen(false);
document.removeEventListener('keydown', handleKeyDown);
@@ -175,7 +173,7 @@ const Board = () => {
};
challengeImg.onerror = () => {
reject(setErrorMessage('Could not load challenge image'));
reject(setErrorMessage('Could not load challenges'));
};
});
};
@@ -213,8 +211,7 @@ const Board = () => {
<CaptchaModal
selectedStyle={selectedStyle}
isOpen={isCaptchaOpen}
closeModal={() => setIsCaptchaOpen(false)}
captchaImage={captchaImage} />
closeModal={() => setIsCaptchaOpen(false)} />
<ReplyModal
selectedStyle={selectedStyle}
isOpen={isReplyOpen}