mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
fix: prevent TypeError when challengeErrors is not iterable in challenge verification
This commit is contained in:
@@ -2,8 +2,31 @@ import { ChallengeVerification } from '@plebbit/plebbit-react-hooks';
|
|||||||
|
|
||||||
export const alertChallengeVerificationFailed = (challengeVerification: ChallengeVerification, publication: any) => {
|
export const alertChallengeVerificationFailed = (challengeVerification: ChallengeVerification, publication: any) => {
|
||||||
if (challengeVerification?.challengeSuccess === false) {
|
if (challengeVerification?.challengeSuccess === false) {
|
||||||
console.warn(challengeVerification, publication);
|
console.warn('Challenge Verification Failed:', challengeVerification, 'Publication:', publication);
|
||||||
alert(`p/${publication?.subplebbitAddress} challenge error: ${[...(challengeVerification?.challengeErrors || []), challengeVerification?.reason].join(' ')}`);
|
|
||||||
|
let errorMessages: string[] = [];
|
||||||
|
if (challengeVerification?.challengeErrors) {
|
||||||
|
if (
|
||||||
|
typeof challengeVerification.challengeErrors === 'object' &&
|
||||||
|
challengeVerification.challengeErrors !== null &&
|
||||||
|
!Array.isArray(challengeVerification.challengeErrors)
|
||||||
|
) {
|
||||||
|
// Handle challengeErrors as object (extract values and filter for strings)
|
||||||
|
errorMessages = Object.values(challengeVerification.challengeErrors).filter((val): val is string => typeof val === 'string');
|
||||||
|
} else if (Array.isArray(challengeVerification.challengeErrors)) {
|
||||||
|
// Handle challengeErrors as array
|
||||||
|
errorMessages = [...challengeVerification.challengeErrors];
|
||||||
|
} else {
|
||||||
|
console.warn('challengeVerification.challengeErrors is not an object or array:', challengeVerification.challengeErrors);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (challengeVerification?.reason) {
|
||||||
|
errorMessages.push(challengeVerification.reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
const finalMessage = errorMessages.filter(Boolean).join(' ');
|
||||||
|
alert(`p/${publication?.subplebbitAddress} challenge error: ${finalMessage || 'unknown error'}`);
|
||||||
} else {
|
} else {
|
||||||
console.log(challengeVerification, publication);
|
console.log(challengeVerification, publication);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user