Remove account.donor as a concept, use 'badge:donor' custom tag instead
This commit is contained in:
parent
2fc9b215a9
commit
1f0b4d01b5
|
@ -442,14 +442,6 @@ const unverifyUser = (accountId: string) =>
|
|||
(dispatch: AppDispatch) =>
|
||||
dispatch(untagUsers([accountId], ['verified']));
|
||||
|
||||
const setDonor = (accountId: string) =>
|
||||
(dispatch: AppDispatch) =>
|
||||
dispatch(tagUsers([accountId], ['donor']));
|
||||
|
||||
const removeDonor = (accountId: string) =>
|
||||
(dispatch: AppDispatch) =>
|
||||
dispatch(untagUsers([accountId], ['donor']));
|
||||
|
||||
const addPermission = (accountIds: string[], permissionGroup: string) =>
|
||||
(dispatch: AppDispatch, getState: () => RootState) => {
|
||||
const nicknames = nicknamesFromIds(getState, accountIds);
|
||||
|
@ -604,8 +596,6 @@ export {
|
|||
setBadges,
|
||||
verifyUser,
|
||||
unverifyUser,
|
||||
setDonor,
|
||||
removeDonor,
|
||||
addPermission,
|
||||
removePermission,
|
||||
promoteToAdmin,
|
||||
|
|
|
@ -7,14 +7,14 @@ interface IBadge {
|
|||
}
|
||||
/** Badge to display on a user's profile. */
|
||||
const Badge: React.FC<IBadge> = ({ title, slug }) => {
|
||||
const fallback = !['patron', 'admin', 'moderator', 'opaque', 'donor', 'badge:donor'].includes(slug);
|
||||
const fallback = !['patron', 'admin', 'moderator', 'opaque', 'badge:donor'].includes(slug);
|
||||
|
||||
return (
|
||||
<span
|
||||
data-testid='badge'
|
||||
className={classNames('inline-flex items-center px-2 py-0.5 rounded text-xs font-medium', {
|
||||
'bg-fuchsia-700 text-white': slug === 'patron',
|
||||
'bg-yellow-500 text-white': ['donor', 'badge:donor'].includes(slug),
|
||||
'bg-emerald-800 text-white': slug === 'badge:donor',
|
||||
'bg-black text-white': slug === 'admin',
|
||||
'bg-cyan-600 text-white': slug === 'moderator',
|
||||
'bg-gray-100 dark:bg-gray-800 text-gray-900 dark:text-gray-100': fallback,
|
||||
|
|
|
@ -37,10 +37,6 @@ const getBadges = (account: Account): JSX.Element[] => {
|
|||
badges.push(<Badge key='patron' slug='patron' title='Patron' />);
|
||||
}
|
||||
|
||||
if (account.donor) {
|
||||
badges.push(<Badge key='donor' slug='donor' title='Donor' />);
|
||||
}
|
||||
|
||||
return badges;
|
||||
};
|
||||
|
||||
|
|
|
@ -4,8 +4,6 @@ import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
|
|||
import {
|
||||
verifyUser,
|
||||
unverifyUser,
|
||||
setDonor,
|
||||
removeDonor,
|
||||
suggestUsers,
|
||||
unsuggestUsers,
|
||||
setBadges as saveBadges,
|
||||
|
@ -80,17 +78,6 @@ const AccountModerationModal: React.FC<IAccountModerationModal> = ({ onClose, ac
|
|||
.catch(() => {});
|
||||
};
|
||||
|
||||
const handleDonorChange: ChangeEventHandler<HTMLInputElement> = (e) => {
|
||||
const { checked } = e.target;
|
||||
|
||||
const message = checked ? messages.setDonorSuccess : messages.removeDonorSuccess;
|
||||
const action = checked ? setDonor : removeDonor;
|
||||
|
||||
dispatch(action(account.id))
|
||||
.then(() => dispatch(snackbar.success(intl.formatMessage(message, { acct: account.acct }))))
|
||||
.catch(() => {});
|
||||
};
|
||||
|
||||
const handleSuggestedChange: ChangeEventHandler<HTMLInputElement> = (e) => {
|
||||
const { checked } = e.target;
|
||||
|
||||
|
@ -147,13 +134,6 @@ const AccountModerationModal: React.FC<IAccountModerationModal> = ({ onClose, ac
|
|||
/>
|
||||
</ListItem>
|
||||
|
||||
<ListItem label={<FormattedMessage id='account_moderation_modal.fields.donor' defaultMessage='Donor' />}>
|
||||
<Toggle
|
||||
checked={account.donor}
|
||||
onChange={handleDonorChange}
|
||||
/>
|
||||
</ListItem>
|
||||
|
||||
{features.suggestionsV2 && (
|
||||
<ListItem label={<FormattedMessage id='account_moderation_modal.fields.suggested' defaultMessage='Suggested in people to follow' />}>
|
||||
<Toggle
|
||||
|
|
|
@ -56,7 +56,6 @@ export const AccountRecord = ImmutableRecord({
|
|||
admin: false,
|
||||
display_name_html: '',
|
||||
domain: '',
|
||||
donor: false,
|
||||
moderator: false,
|
||||
note_emojified: '',
|
||||
note_plain: '',
|
||||
|
@ -155,9 +154,11 @@ const normalizeVerified = (account: ImmutableMap<string, any>) => {
|
|||
});
|
||||
};
|
||||
|
||||
/** Get donor status from tags. */
|
||||
/** Upgrade legacy donor tag to a badge. */
|
||||
const normalizeDonor = (account: ImmutableMap<string, any>) => {
|
||||
return account.set('donor', getTags(account).includes('donor'));
|
||||
const tags = getTags(account);
|
||||
const updated = tags.includes('donor') ? tags.push('badge:donor') : tags;
|
||||
return account.setIn(['pleroma', 'tags'], updated);
|
||||
};
|
||||
|
||||
/** Normalize Fedibird/Truth Social/Pleroma location */
|
||||
|
|
Loading…
Reference in New Issue