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