1
0
Fork 0

Fix toasts showing for unauthenticated interactions

This commit is contained in:
Lim Chee Aun 2024-02-26 11:58:22 +08:00
parent 89f34d7942
commit c595b0ee31

View file

@ -559,12 +559,11 @@ function Status({
if (reblogged) { if (reblogged) {
const newStatus = await masto.v1.statuses.$select(id).unreblog(); const newStatus = await masto.v1.statuses.$select(id).unreblog();
saveStatus(newStatus, instance); saveStatus(newStatus, instance);
return true;
} else { } else {
const newStatus = await masto.v1.statuses.$select(id).reblog(); const newStatus = await masto.v1.statuses.$select(id).reblog();
saveStatus(newStatus, instance); saveStatus(newStatus, instance);
return true;
} }
return true;
} catch (e) { } catch (e) {
console.error(e); console.error(e);
// Revert optimistism // Revert optimistism
@ -575,7 +574,8 @@ function Status({
const favouriteStatus = async () => { const favouriteStatus = async () => {
if (!sameInstance || !authenticated) { if (!sameInstance || !authenticated) {
return alert(unauthInteractionErrorMessage); alert(unauthInteractionErrorMessage);
return false;
} }
try { try {
// Optimistic // Optimistic
@ -591,16 +591,31 @@ function Status({
const newStatus = await masto.v1.statuses.$select(id).favourite(); const newStatus = await masto.v1.statuses.$select(id).favourite();
saveStatus(newStatus, instance); saveStatus(newStatus, instance);
} }
return true;
} catch (e) { } catch (e) {
console.error(e); console.error(e);
// Revert optimistism // Revert optimistism
states.statuses[sKey] = status; states.statuses[sKey] = status;
return false;
} }
}; };
const favouriteStatusNotify = async () => {
try {
const done = await favouriteStatus();
if (!isSizeLarge && done) {
showToast(
favourited
? `Unliked @${username || acct}'s post`
: `Liked @${username || acct}'s post`,
);
}
} catch (e) {}
};
const bookmarkStatus = async () => { const bookmarkStatus = async () => {
if (!sameInstance || !authenticated) { if (!sameInstance || !authenticated) {
return alert(unauthInteractionErrorMessage); alert(unauthInteractionErrorMessage);
return false;
} }
try { try {
// Optimistic // Optimistic
@ -615,12 +630,26 @@ function Status({
const newStatus = await masto.v1.statuses.$select(id).bookmark(); const newStatus = await masto.v1.statuses.$select(id).bookmark();
saveStatus(newStatus, instance); saveStatus(newStatus, instance);
} }
return true;
} catch (e) { } catch (e) {
console.error(e); console.error(e);
// Revert optimistism // Revert optimistism
states.statuses[sKey] = status; states.statuses[sKey] = status;
return false;
} }
}; };
const bookmarkStatusNotify = async () => {
try {
const done = await bookmarkStatus();
if (!isSizeLarge && done) {
showToast(
bookmarked
? `Unbookmarked @${username || acct}'s post`
: `Bookmarked @${username || acct}'s post`,
);
}
} catch (e) {}
};
const differentLanguage = const differentLanguage =
!!language && !!language &&
@ -752,18 +781,7 @@ function Status({
</span> </span>
</MenuConfirm> </MenuConfirm>
<MenuItem <MenuItem
onClick={() => { onClick={favouriteStatusNotify}
try {
favouriteStatus();
if (!isSizeLarge) {
showToast(
favourited
? `Unliked @${username || acct}'s post`
: `Liked @${username || acct}'s post`,
);
}
} catch (e) {}
}}
className={`menu-favourite ${favourited ? 'checked' : ''}`} className={`menu-favourite ${favourited ? 'checked' : ''}`}
> >
<Icon icon="heart" /> <Icon icon="heart" />
@ -776,18 +794,7 @@ function Status({
</span> </span>
</MenuItem> </MenuItem>
<MenuItem <MenuItem
onClick={() => { onClick={bookmarkStatusNotify}
try {
bookmarkStatus();
if (!isSizeLarge) {
showToast(
bookmarked
? `Unbookmarked @${username || acct}'s post`
: `Bookmarked @${username || acct}'s post`,
);
}
} catch (e) {}
}}
className={`menu-bookmark ${bookmarked ? 'checked' : ''}`} className={`menu-bookmark ${bookmarked ? 'checked' : ''}`}
> >
<Icon icon="bookmark" /> <Icon icon="bookmark" />
@ -1040,6 +1047,23 @@ function Status({
)} )}
</div> </div>
)} )}
{!isSelf && isSizeLarge && (
<>
<MenuDivider />
<MenuItem
className="danger"
onClick={() => {
states.showReportModal = {
account: status.account,
post: status,
};
}}
>
<Icon icon="flag" />
<span>Report post</span>
</MenuItem>
</>
)}
</> </>
); );
@ -1085,42 +1109,12 @@ function Status({
const rRef = useHotkeys('r, shift+r', replyStatus, { const rRef = useHotkeys('r, shift+r', replyStatus, {
enabled: hotkeysEnabled, enabled: hotkeysEnabled,
}); });
const fRef = useHotkeys( const fRef = useHotkeys('f, l', favouriteStatusNotify, {
'f, l',
() => {
try {
favouriteStatus();
if (!isSizeLarge) {
showToast(
favourited
? `Unliked @${username || acct}'s post`
: `Liked @${username || acct}'s post`,
);
}
} catch (e) {}
},
{
enabled: hotkeysEnabled, enabled: hotkeysEnabled,
}, });
); const dRef = useHotkeys('d', bookmarkStatusNotify, {
const dRef = useHotkeys(
'd',
() => {
try {
bookmarkStatus();
if (!isSizeLarge) {
showToast(
bookmarked
? `Unbookmarked @${username || acct}'s post`
: `Bookmarked @${username || acct}'s post`,
);
}
} catch (e) {}
},
{
enabled: hotkeysEnabled, enabled: hotkeysEnabled,
}, });
);
const bRef = useHotkeys( const bRef = useHotkeys(
'shift+b', 'shift+b',
() => { () => {
@ -1420,16 +1414,7 @@ function Status({
icon="heart" icon="heart"
iconSize="m" iconSize="m"
count={favouritesCount} count={favouritesCount}
onClick={() => { onClick={favouriteStatusNotify}
try {
favouriteStatus();
showToast(
favourited
? `Unliked @${username || acct}'s post`
: `Liked @${username || acct}'s post`,
);
} catch (e) {}
}}
/> />
<button <button
type="button" type="button"