Add UI for revoking quote posts (#35689)

This commit is contained in:
Claire 2025-08-06 13:52:56 +02:00 committed by GitHub
commit 55a98580aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 131 additions and 9 deletions

View file

@ -10,3 +10,4 @@ export { ConfirmClearNotificationsModal } from './clear_notifications';
export { ConfirmLogOutModal } from './log_out';
export { ConfirmFollowToListModal } from './follow_to_list';
export { ConfirmMissingAltTextModal } from './missing_alt_text';
export { ConfirmRevokeQuoteModal } from './revoke_quote';

View file

@ -0,0 +1,48 @@
import { useCallback } from 'react';
import { defineMessages, useIntl } from 'react-intl';
import { revokeQuote } from 'mastodon/actions/interactions_typed';
import { useAppDispatch } from 'mastodon/store';
import type { BaseConfirmationModalProps } from './confirmation_modal';
import { ConfirmationModal } from './confirmation_modal';
const messages = defineMessages({
revokeQuoteTitle: {
id: 'confirmations.revoke_quote.title',
defaultMessage: 'Remove post?',
},
revokeQuoteMessage: {
id: 'confirmations.revoke_quote.message',
defaultMessage: 'This action cannot be undone.',
},
revokeQuoteConfirm: {
id: 'confirmations.revoke_quote.confirm',
defaultMessage: 'Remove post',
},
});
export const ConfirmRevokeQuoteModal: React.FC<
{
statusId: string;
quotedStatusId: string;
} & BaseConfirmationModalProps
> = ({ statusId, quotedStatusId, onClose }) => {
const intl = useIntl();
const dispatch = useAppDispatch();
const onConfirm = useCallback(() => {
void dispatch(revokeQuote({ quotedStatusId, statusId }));
}, [dispatch, statusId, quotedStatusId]);
return (
<ConfirmationModal
title={intl.formatMessage(messages.revokeQuoteTitle)}
message={intl.formatMessage(messages.revokeQuoteMessage)}
confirm={intl.formatMessage(messages.revokeQuoteConfirm)}
onConfirm={onConfirm}
onClose={onClose}
/>
);
};