mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
fix toasts
This commit is contained in:
+7
-7
@@ -40,31 +40,31 @@ export default function App() {
|
||||
|
||||
const account = useAccount();
|
||||
|
||||
const [, setErrorMessage] = useError();
|
||||
const [, setSuccessMessage] = useSuccess();
|
||||
const [, setNewErrorMessage] = useError();
|
||||
const [, setNewSuccessMessage] = useSuccess();
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
const successToast = localStorage.getItem("successToast");
|
||||
const errorToast = localStorage.getItem("errorToast");
|
||||
if (successToast) {
|
||||
setSuccessMessage(successToast);
|
||||
setNewSuccessMessage(successToast);
|
||||
localStorage.removeItem("successToast");
|
||||
} else if (errorToast) {
|
||||
setErrorMessage(errorToast);
|
||||
setNewErrorMessage(errorToast);
|
||||
localStorage.removeItem("errorToast");
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}, [setErrorMessage, setSuccessMessage]);
|
||||
}, [setNewErrorMessage, setNewSuccessMessage]);
|
||||
|
||||
// preload default subs and subscriptions
|
||||
useBufferedFeeds({
|
||||
feedsOptions: [
|
||||
{subplebbitAddresses: defaultSubplebbits.map(
|
||||
(subplebbit) => subplebbit.address
|
||||
), sortType: 'new'},
|
||||
{subplebbitAddresses: account?.subscriptions, sortType: 'new'}
|
||||
), sortType: 'active'},
|
||||
{subplebbitAddresses: account?.subscriptions, sortType: 'active'}
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@ const ModerationModal = ({ isOpen, closeModal, deletePost }) => {
|
||||
const [reason, setReason] = useState('');
|
||||
const [triggerPublishCommentEdit, setTriggerPublishCommentEdit] = useState(false);
|
||||
|
||||
const [errorMessage, setErrorMessage] = useError();
|
||||
const [, setSuccessMessage] = useSuccess();
|
||||
const [, setNewErrorMessage] = useError();
|
||||
const [, setNewSuccessMessage] = useSuccess();
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
@@ -48,9 +48,9 @@ const ModerationModal = ({ isOpen, closeModal, deletePost }) => {
|
||||
|
||||
const onChallengeVerification = (challengeVerification) => {
|
||||
if (challengeVerification.challengeSuccess === true) {
|
||||
setSuccessMessage('Challenge Success');
|
||||
setNewSuccessMessage('Challenge Success');
|
||||
} else if (challengeVerification.challengeSuccess === false) {
|
||||
setErrorMessage('Challenge Failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
setNewErrorMessage('Challenge Failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -63,7 +63,7 @@ const ModerationModal = ({ isOpen, closeModal, deletePost }) => {
|
||||
challengeAnswers = await getChallengeAnswersFromUser(challenges)
|
||||
}
|
||||
catch (error) {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
}
|
||||
if (challengeAnswers) {
|
||||
await comment.publishChallengeAnswers(challengeAnswers)
|
||||
@@ -100,7 +100,7 @@ const ModerationModal = ({ isOpen, closeModal, deletePost }) => {
|
||||
};
|
||||
|
||||
challengeImg.onerror = () => {
|
||||
reject(setErrorMessage('Could not load challenges'));
|
||||
reject(setNewErrorMessage('Could not load challenges'));
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -113,19 +113,12 @@ const ModerationModal = ({ isOpen, closeModal, deletePost }) => {
|
||||
onChallenge,
|
||||
onChallengeVerification,
|
||||
onError: (error) => {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const {error, publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
if (error && error !== errorMessage) {
|
||||
setErrorMessage(error);
|
||||
}
|
||||
}, [error, setErrorMessage, errorMessage]);
|
||||
const { publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
@@ -23,7 +23,7 @@ const ReplyModal = ({ isOpen, closeModal }) => {
|
||||
|
||||
const account = useAccount();
|
||||
|
||||
const [, setErrorMessage] = useError();
|
||||
const [, setNewErrorMessage] = useError();
|
||||
|
||||
const nodeRef = useRef(null);
|
||||
const nameRef = useRef();
|
||||
@@ -73,7 +73,7 @@ const ReplyModal = ({ isOpen, closeModal }) => {
|
||||
console.log('challenge success');
|
||||
}
|
||||
else if (challengeVerification.challengeSuccess === false) {
|
||||
setErrorMessage('challenge failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
setNewErrorMessage('challenge failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -86,7 +86,7 @@ const ReplyModal = ({ isOpen, closeModal }) => {
|
||||
challengeAnswers = await getChallengeAnswersFromUser(challenges)
|
||||
}
|
||||
catch (error) {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
}
|
||||
if (challengeAnswers) {
|
||||
await comment.publishChallengeAnswers(challengeAnswers)
|
||||
@@ -107,7 +107,7 @@ const ReplyModal = ({ isOpen, closeModal }) => {
|
||||
onChallenge,
|
||||
onChallengeVerification,
|
||||
onError: (error) => {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -141,7 +141,7 @@ const ReplyModal = ({ isOpen, closeModal }) => {
|
||||
commentRef.current.value === "" &&
|
||||
linkRef.current.value === ""
|
||||
) {
|
||||
setErrorMessage("Please enter a comment or link.");
|
||||
setNewErrorMessage("Please enter a comment or link.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -200,7 +200,7 @@ const ReplyModal = ({ isOpen, closeModal }) => {
|
||||
};
|
||||
|
||||
challengeImg.onerror = () => {
|
||||
reject(setErrorMessage('Could not load challenges'));
|
||||
reject(setNewErrorMessage('Could not load challenges'));
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
@@ -63,8 +63,8 @@ const All = () => {
|
||||
|
||||
const account = useAccount();
|
||||
const navigate = useNavigate();
|
||||
const [errorMessage, setErrorMessage] = useError();
|
||||
const [, setSuccessMessage] = useSuccess();
|
||||
const [, setNewErrorMessage] = useError();
|
||||
const [, setNewSuccessMessage] = useSuccess();
|
||||
|
||||
const threadMenuRefs = useRef({});
|
||||
const replyMenuRefs = useRef({});
|
||||
@@ -81,7 +81,6 @@ const All = () => {
|
||||
const [prevScrollPos, setPrevScrollPos] = useState(0);
|
||||
const [visible, setVisible] = useState(true);
|
||||
const [isImageSearchOpen, setIsImageSearchOpen] = useState(false);
|
||||
const [isModerator, setIsModerator] = useState(false);
|
||||
const [commentCid, setCommentCid] = useState(null);
|
||||
const [menuPosition, setMenuPosition] = useState({top: 0, left: 0});
|
||||
const [triggerPublishCommentEdit, setTriggerPublishCommentEdit] = useState(false);
|
||||
@@ -93,8 +92,8 @@ const All = () => {
|
||||
const [moderatorPermissions, setModeratorPermissions] = useState({});
|
||||
|
||||
const addresses = defaultSubplebbits.map(subplebbit => subplebbit.address);
|
||||
const { feed, hasMore, loadMore } = useFeed({subplebbitAddresses: addresses, sortType: 'new'});
|
||||
const {subplebbits} = useSubplebbits({subplebbitAddresses: addresses, sortType: 'new'});
|
||||
const { feed, hasMore, loadMore } = useFeed({subplebbitAddresses: addresses, sortType: 'active'});
|
||||
const {subplebbits} = useSubplebbits({subplebbitAddresses: addresses, sortType: 'active'});
|
||||
const [selectedFeed, setSelectedFeed] = useState(feed.sort((a, b) => b.timestamp - a.timestamp));
|
||||
|
||||
const stateString = useFeedStateString(subplebbits);
|
||||
@@ -102,11 +101,11 @@ const All = () => {
|
||||
|
||||
useEffect(() => {
|
||||
let permissions = {};
|
||||
|
||||
|
||||
selectedFeed.forEach(thread => {
|
||||
const subplebbit = subplebbits.find(s => s.address === thread.subplebbitAddress);
|
||||
|
||||
if (subplebbit && subplebbit.roles !== undefined) {
|
||||
const subplebbit = subplebbits.find(s => s && s.address === thread.subplebbitAddress);
|
||||
|
||||
if (subplebbit && subplebbit.roles) {
|
||||
const role = subplebbit.roles[account?.author.address]?.role;
|
||||
|
||||
if (role === 'moderator' || role === 'admin' || role === 'owner') {
|
||||
@@ -116,9 +115,9 @@ const All = () => {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
setModeratorPermissions(permissions);
|
||||
}, [account?.author.address, selectedFeed, subplebbits]);
|
||||
}, [account?.author.address, selectedFeed, subplebbits]);
|
||||
|
||||
|
||||
const handleOptionClick = () => {
|
||||
@@ -160,11 +159,10 @@ const All = () => {
|
||||
}, [subplebbits])
|
||||
|
||||
useEffect(() => {
|
||||
if (errorString && errorString !== errorMessage) {
|
||||
setErrorMessage(errorString);
|
||||
if (errorString) {
|
||||
setNewErrorMessage(errorString);
|
||||
}
|
||||
}, [errorString, setErrorMessage, errorMessage]);
|
||||
|
||||
}, [errorString, setNewErrorMessage]);
|
||||
|
||||
useEffect(() => {
|
||||
setSelectedFeed(feed.sort((a, b) => b.timestamp - a.timestamp));
|
||||
@@ -247,10 +245,10 @@ const All = () => {
|
||||
|
||||
const onChallengeVerification = (challengeVerification) => {
|
||||
if (challengeVerification.challengeSuccess === true) {
|
||||
setSuccessMessage('Challenge Success');
|
||||
setNewSuccessMessage('Challenge Success');
|
||||
}
|
||||
else if (challengeVerification.challengeSuccess === false) {
|
||||
setErrorMessage('Challenge Failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
setNewErrorMessage('Challenge Failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -261,7 +259,7 @@ const All = () => {
|
||||
challengeAnswers = await getChallengeAnswersFromUser(challenges)
|
||||
}
|
||||
catch (error) {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
}
|
||||
if (challengeAnswers) {
|
||||
await comment.publishChallengeAnswers(challengeAnswers)
|
||||
@@ -298,7 +296,7 @@ const All = () => {
|
||||
};
|
||||
|
||||
challengeImg.onerror = () => {
|
||||
reject(setErrorMessage('Could not load challenges'));
|
||||
reject(setNewErrorMessage('Could not load challenges'));
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -310,18 +308,12 @@ const All = () => {
|
||||
onChallenge,
|
||||
onChallengeVerification,
|
||||
onError: (error) => {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const {error, publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
useEffect(() => {
|
||||
if (error && error !== errorMessage) {
|
||||
setErrorMessage(error);
|
||||
}
|
||||
}, [error, setErrorMessage, errorMessage]);
|
||||
const { publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
|
||||
const handleAuthorDeleteClick = (commentCid) => {
|
||||
@@ -569,7 +561,7 @@ const All = () => {
|
||||
const { displayedReplies, omittedCount } = filteredRepliesByThread[thread.cid] || {};
|
||||
const commentMediaInfo = getCommentMediaInfo(thread);
|
||||
const fallbackImgUrl = "assets/filedeleted-res.gif";
|
||||
setIsModerator(moderatorPermissions[thread.subplebbitAddress]);
|
||||
const isModerator = moderatorPermissions[thread.subplebbitAddress];
|
||||
return (
|
||||
<Fragment key={`fr-${index}`}>
|
||||
<div key={`t-${index}`} className="thread">
|
||||
|
||||
@@ -69,8 +69,8 @@ const Board = () => {
|
||||
const navigate = useNavigate();
|
||||
const { subplebbitAddress } = useParams();
|
||||
|
||||
const [errorMessage, setErrorMessage] = useError();
|
||||
const [, setSuccessMessage] = useSuccess();
|
||||
const [, setNewErrorMessage] = useError();
|
||||
const [, setNewSuccessMessage] = useSuccess();
|
||||
|
||||
const nameRef = useRef();
|
||||
const subjectRef = useRef();
|
||||
@@ -159,10 +159,10 @@ const Board = () => {
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
if (errorString && errorString !== errorMessage) {
|
||||
setErrorMessage(errorString);
|
||||
if (errorString) {
|
||||
setNewErrorMessage(errorString);
|
||||
}
|
||||
}, [errorString, setErrorMessage, errorMessage]);
|
||||
}, [errorString, setNewErrorMessage]);
|
||||
|
||||
|
||||
const flattenedRepliesByThread = useMemo(() => {
|
||||
@@ -261,11 +261,11 @@ const Board = () => {
|
||||
navigate(`/p/${subplebbitAddress}/c/${challengeVerification.publication?.cid}`);
|
||||
console.log('challenge success');
|
||||
} else {
|
||||
setSuccessMessage('Challenge Success');
|
||||
setNewSuccessMessage('Challenge Success');
|
||||
}
|
||||
}
|
||||
else if (challengeVerification.challengeSuccess === false) {
|
||||
setErrorMessage('Challenge Failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
setNewErrorMessage('Challenge Failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -278,7 +278,7 @@ const Board = () => {
|
||||
challengeAnswers = await getChallengeAnswersFromUser(challenges)
|
||||
}
|
||||
catch (error) {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
}
|
||||
if (challengeAnswers) {
|
||||
await comment.publishChallengeAnswers(challengeAnswers)
|
||||
@@ -299,7 +299,7 @@ const Board = () => {
|
||||
onChallenge,
|
||||
onChallengeVerification,
|
||||
onError: (error) => {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -334,7 +334,7 @@ const Board = () => {
|
||||
event.preventDefault();
|
||||
|
||||
if (subjectRef.current.value === "") {
|
||||
setErrorMessage('Subject field is mandatory');
|
||||
setNewErrorMessage('Subject field is mandatory');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -392,7 +392,7 @@ const Board = () => {
|
||||
};
|
||||
|
||||
challengeImg.onerror = () => {
|
||||
reject(setErrorMessage('Could not load challenges'));
|
||||
reject(setNewErrorMessage('Could not load challenges'));
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -405,18 +405,12 @@ const Board = () => {
|
||||
onChallenge,
|
||||
onChallengeVerification,
|
||||
onError: (error) => {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const {error, publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
useEffect(() => {
|
||||
if (error && error !== errorMessage) {
|
||||
setErrorMessage(error);
|
||||
}
|
||||
}, [error, setErrorMessage, errorMessage]);
|
||||
const { publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
|
||||
const handleAuthorDeleteClick = (commentCid) => {
|
||||
@@ -526,7 +520,7 @@ const Board = () => {
|
||||
await unsubscribe(selectedAddress);
|
||||
}
|
||||
} catch (error) {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -60,8 +60,8 @@ const Catalog = () => {
|
||||
|
||||
const navigate = useNavigate();
|
||||
|
||||
const [errorMessage, setErrorMessage] = useError();
|
||||
const [, setSuccessMessage] = useSuccess();
|
||||
const [, setNewErrorMessage] = useError();
|
||||
const [, setNewSuccessMessage] = useSuccess();
|
||||
|
||||
const [triggerPublishComment, setTriggerPublishComment] = useState(false);
|
||||
const [prevScrollPos, setPrevScrollPos] = useState(0);
|
||||
@@ -140,10 +140,10 @@ const Catalog = () => {
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
if (errorString && errorString !== errorMessage) {
|
||||
setErrorMessage(errorString);
|
||||
if (errorString) {
|
||||
setNewErrorMessage(errorString);
|
||||
}
|
||||
}, [errorString, setErrorMessage, errorMessage]);
|
||||
}, [errorString, setNewErrorMessage]);
|
||||
|
||||
|
||||
const { subscribed, subscribe, unsubscribe } = useSubscribe({subplebbitAddress: selectedAddress});
|
||||
@@ -184,11 +184,11 @@ const Catalog = () => {
|
||||
navigate(`/p/${subplebbitAddress}/c/${challengeVerification.publication?.cid}`);
|
||||
console.log('challenge success');
|
||||
} else {
|
||||
setSuccessMessage('Challenge Success');
|
||||
setNewSuccessMessage('Challenge Success');
|
||||
}
|
||||
}
|
||||
else if (challengeVerification.challengeSuccess === false) {
|
||||
setErrorMessage('Challenge Failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
setNewErrorMessage('Challenge Failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -201,7 +201,7 @@ const Catalog = () => {
|
||||
challengeAnswers = await getChallengeAnswersFromUser(challenges)
|
||||
}
|
||||
catch (error) {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
}
|
||||
if (challengeAnswers) {
|
||||
await comment.publishChallengeAnswers(challengeAnswers)
|
||||
@@ -222,7 +222,7 @@ const Catalog = () => {
|
||||
onChallenge,
|
||||
onChallengeVerification,
|
||||
onError: (error) => {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -257,7 +257,7 @@ const Catalog = () => {
|
||||
event.preventDefault();
|
||||
|
||||
if (subjectRef.current.value === "") {
|
||||
setErrorMessage('Subject field is mandatory');
|
||||
setNewErrorMessage('Subject field is mandatory');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -315,7 +315,7 @@ const Catalog = () => {
|
||||
};
|
||||
|
||||
challengeImg.onerror = () => {
|
||||
reject(setErrorMessage('Could not load challenges'));
|
||||
reject(setNewErrorMessage('Could not load challenges'));
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -328,18 +328,12 @@ const Catalog = () => {
|
||||
onChallenge,
|
||||
onChallengeVerification,
|
||||
onError: (error) => {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const {error, publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
useEffect(() => {
|
||||
if (error && error !== errorMessage) {
|
||||
setErrorMessage(error);
|
||||
}
|
||||
}, [error, setErrorMessage, errorMessage]);
|
||||
const { publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
|
||||
const handleAuthorDeleteClick = (commentCid) => {
|
||||
@@ -438,7 +432,7 @@ const Catalog = () => {
|
||||
await unsubscribe(selectedAddress);
|
||||
}
|
||||
} catch (error) {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ const Pending = () => {
|
||||
|
||||
const account = useAccount();
|
||||
const comment = useAccountComment({commentIndex: index});
|
||||
const [errorMessage, setErrorMessage] = useError();
|
||||
const [, setNewErrorMessage] = useError();
|
||||
|
||||
useEffect(() => {
|
||||
setSelectedAddress(comment?.subplebbitAddress);
|
||||
@@ -53,10 +53,10 @@ const Pending = () => {
|
||||
}, [comment?.state, comment?.error, index])
|
||||
|
||||
useEffect(() => {
|
||||
if (errorString && errorString !== errorMessage) {
|
||||
setErrorMessage(errorString);
|
||||
if (errorString) {
|
||||
setNewErrorMessage(errorString);
|
||||
}
|
||||
}, [errorString, setErrorMessage, errorMessage]);
|
||||
}, [errorString, setNewErrorMessage]);
|
||||
|
||||
const [visible] = useState(true);
|
||||
|
||||
|
||||
@@ -63,8 +63,8 @@ const Subscriptions = () => {
|
||||
|
||||
const account = useAccount();
|
||||
const navigate = useNavigate();
|
||||
const [errorMessage, setErrorMessage] = useError();
|
||||
const [, setSuccessMessage] = useSuccess();
|
||||
const [, setNewErrorMessage] = useError();
|
||||
const [, setNewSuccessMessage] = useSuccess();
|
||||
|
||||
const threadMenuRefs = useRef({});
|
||||
const replyMenuRefs = useRef({});
|
||||
@@ -81,7 +81,6 @@ const Subscriptions = () => {
|
||||
const [prevScrollPos, setPrevScrollPos] = useState(0);
|
||||
const [visible, setVisible] = useState(true);
|
||||
const [isImageSearchOpen, setIsImageSearchOpen] = useState(false);
|
||||
const [isModerator, setIsModerator] = useState(false);
|
||||
const [commentCid, setCommentCid] = useState(null);
|
||||
const [menuPosition, setMenuPosition] = useState({top: 0, left: 0});
|
||||
const [triggerPublishCommentEdit, setTriggerPublishCommentEdit] = useState(false);
|
||||
@@ -92,20 +91,20 @@ const Subscriptions = () => {
|
||||
const [deletePost, setDeletePost] = useState(false);
|
||||
const [moderatorPermissions, setModeratorPermissions] = useState({});
|
||||
|
||||
const { feed, hasMore, loadMore } = useFeed({subplebbitAddresses: account?.subscriptions, sortType: 'new'});
|
||||
const { feed, hasMore, loadMore } = useFeed({subplebbitAddresses: account?.subscriptions, sortType: 'active'});
|
||||
const [selectedFeed, setSelectedFeed] = useState(feed.sort((a, b) => b.timestamp - a.timestamp));
|
||||
const {subplebbits} = useSubplebbits({subplebbitAddresses: account?.subscriptions, sortType: 'new'});
|
||||
const {subplebbits} = useSubplebbits({subplebbitAddresses: account?.subscriptions, sortType: 'active'});
|
||||
|
||||
const stateString = useFeedStateString(subplebbits);
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
let permissions = {};
|
||||
|
||||
|
||||
selectedFeed.forEach(thread => {
|
||||
const subplebbit = subplebbits.find(s => s.address === thread.subplebbitAddress);
|
||||
|
||||
if (subplebbit && subplebbit.roles !== undefined) {
|
||||
const subplebbit = subplebbits.find(s => s && s.address === thread.subplebbitAddress);
|
||||
|
||||
if (subplebbit && subplebbit.roles) {
|
||||
const role = subplebbit.roles[account?.author.address]?.role;
|
||||
|
||||
if (role === 'moderator' || role === 'admin' || role === 'owner') {
|
||||
@@ -115,9 +114,9 @@ const Subscriptions = () => {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
setModeratorPermissions(permissions);
|
||||
}, [account?.author.address, selectedFeed, subplebbits]);
|
||||
}, [account?.author.address, selectedFeed, subplebbits]);
|
||||
|
||||
|
||||
const handleOptionClick = () => {
|
||||
@@ -159,10 +158,10 @@ const Subscriptions = () => {
|
||||
}, [subplebbits])
|
||||
|
||||
useEffect(() => {
|
||||
if (errorString && errorString !== errorMessage) {
|
||||
setErrorMessage(errorString);
|
||||
if (errorString) {
|
||||
setNewErrorMessage(errorString);
|
||||
}
|
||||
}, [errorString, setErrorMessage, errorMessage]);
|
||||
}, [errorString, setNewErrorMessage]);
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
@@ -247,10 +246,10 @@ const Subscriptions = () => {
|
||||
|
||||
const onChallengeVerification = (challengeVerification) => {
|
||||
if (challengeVerification.challengeSuccess === true) {
|
||||
setSuccessMessage('Challenge Success');
|
||||
setNewSuccessMessage('Challenge Success');
|
||||
}
|
||||
else if (challengeVerification.challengeSuccess === false) {
|
||||
setErrorMessage('Challenge Failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
setNewErrorMessage('Challenge Failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -261,7 +260,7 @@ const Subscriptions = () => {
|
||||
challengeAnswers = await getChallengeAnswersFromUser(challenges)
|
||||
}
|
||||
catch (error) {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
}
|
||||
if (challengeAnswers) {
|
||||
await comment.publishChallengeAnswers(challengeAnswers)
|
||||
@@ -298,7 +297,7 @@ const Subscriptions = () => {
|
||||
};
|
||||
|
||||
challengeImg.onerror = () => {
|
||||
reject(setErrorMessage('Could not load challenges'));
|
||||
reject(setNewErrorMessage('Could not load challenges'));
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -311,18 +310,12 @@ const Subscriptions = () => {
|
||||
onChallenge,
|
||||
onChallengeVerification,
|
||||
onError: (error) => {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const {error, publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
useEffect(() => {
|
||||
if (error && error !== errorMessage) {
|
||||
setErrorMessage(error);
|
||||
}
|
||||
}, [error, setErrorMessage, errorMessage]);
|
||||
const { publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
|
||||
const handleAuthorDeleteClick = (commentCid) => {
|
||||
@@ -579,7 +572,7 @@ const Subscriptions = () => {
|
||||
const { displayedReplies, omittedCount } = filteredRepliesByThread[thread.cid] || {};
|
||||
const commentMediaInfo = getCommentMediaInfo(thread);
|
||||
const fallbackImgUrl = "assets/filedeleted-res.gif";
|
||||
setIsModerator(moderatorPermissions[thread.subplebbitAddress]);
|
||||
const isModerator = moderatorPermissions[thread.subplebbitAddress];
|
||||
return (
|
||||
<Fragment key={`fr-${index}`}>
|
||||
<div key={`t-${index}`} className="thread">
|
||||
|
||||
@@ -68,8 +68,8 @@ const Thread = () => {
|
||||
const navigate = useNavigate();
|
||||
const handleClickForm = useClickForm();
|
||||
|
||||
const [errorMessage, setErrorMessage] = useError();
|
||||
const [, setSuccessMessage] = useSuccess();
|
||||
const [, setNewErrorMessage] = useError();
|
||||
const [, setNewSuccessMessage] = useSuccess();
|
||||
|
||||
const nameRef = useRef();
|
||||
const commentRef = useRef();
|
||||
@@ -173,10 +173,10 @@ const Thread = () => {
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
if (errorString && errorString !== errorMessage) {
|
||||
setErrorMessage(errorString);
|
||||
if (errorString) {
|
||||
setNewErrorMessage(errorString);
|
||||
}
|
||||
}, [errorString, setErrorMessage, errorMessage]);
|
||||
}, [errorString, setNewErrorMessage]);
|
||||
|
||||
|
||||
const flattenedReplies = useMemo(() =>
|
||||
@@ -232,12 +232,12 @@ const Thread = () => {
|
||||
const onChallengeVerification = (challengeVerification) => {
|
||||
if (challengeVerification.challengeSuccess === true) {
|
||||
if (challengeVerification.publication?.cid !== undefined) {
|
||||
console.log('challenge success');
|
||||
return;
|
||||
} else {
|
||||
setSuccessMessage('Challenge Success');
|
||||
setNewSuccessMessage('Challenge Success');
|
||||
}
|
||||
} else if (challengeVerification.challengeSuccess === false) {
|
||||
setErrorMessage('challenge failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
setNewErrorMessage('challenge failed', {reason: challengeVerification.reason, errors: challengeVerification.errors});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -250,7 +250,7 @@ const Thread = () => {
|
||||
challengeAnswers = await getChallengeAnswersFromUser(challenges)
|
||||
}
|
||||
catch (error) {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
}
|
||||
if (challengeAnswers) {
|
||||
await comment.publishChallengeAnswers(challengeAnswers)
|
||||
@@ -271,7 +271,7 @@ const Thread = () => {
|
||||
onChallenge,
|
||||
onChallengeVerification,
|
||||
onError: (error) => {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -306,7 +306,7 @@ const Thread = () => {
|
||||
commentRef.current.value === "" &&
|
||||
linkRef.current.value === ""
|
||||
) {
|
||||
setErrorMessage("Please enter a comment or link.");
|
||||
setNewErrorMessage("Please enter a comment or link.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -365,7 +365,7 @@ const Thread = () => {
|
||||
};
|
||||
|
||||
challengeImg.onerror = () => {
|
||||
reject(setErrorMessage('Could not load challenges'));
|
||||
reject(setNewErrorMessage('Could not load challenges'));
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -374,23 +374,16 @@ const Thread = () => {
|
||||
const [publishCommentEditOptions, setPublishCommentEditOptions] = useState({
|
||||
commentCid: commentCid,
|
||||
content: editedComment || undefined,
|
||||
subplebbitAddress: selectedAddress || subplebbitAddress,
|
||||
subplebbitAddress: selectedAddress,
|
||||
onChallenge,
|
||||
onChallengeVerification,
|
||||
onError: (error) => {
|
||||
setErrorMessage(error);
|
||||
setNewErrorMessage(error);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const {error, publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
useEffect(() => {
|
||||
if (error && error !== errorMessage) {
|
||||
setErrorMessage(error);
|
||||
}
|
||||
}, [error, setErrorMessage, errorMessage]);
|
||||
|
||||
const { publishCommentEdit } = usePublishCommentEdit(publishCommentEditOptions);
|
||||
|
||||
|
||||
const handleAuthorDeleteClick = (commentCid) => {
|
||||
@@ -462,7 +455,6 @@ const Thread = () => {
|
||||
}
|
||||
}, [publishCommentEditOptions, triggerPublishCommentEdit, publishCommentEdit]);
|
||||
|
||||
|
||||
// mobile navbar board select functionality
|
||||
const handleSelectChange = (event) => {
|
||||
const selected = event.target.value;
|
||||
|
||||
+11
-1
@@ -32,10 +32,20 @@ const useError = () => {
|
||||
}
|
||||
}, [errorMessage, renderCount]);
|
||||
|
||||
const setNewErrorMessage = (message) => {
|
||||
const setNewErrorMessage = (error) => {
|
||||
let message;
|
||||
if (typeof error === 'string') {
|
||||
message = error;
|
||||
} else if (error instanceof Error) {
|
||||
message = error.message;
|
||||
} else {
|
||||
message = JSON.stringify(error);
|
||||
}
|
||||
|
||||
setErrorMessage(message);
|
||||
setRenderCount(prevCount => prevCount + 1);
|
||||
};
|
||||
|
||||
|
||||
return [errorMessage, setNewErrorMessage];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user