diff --git a/ts/components/CompositionArea.stories.tsx b/ts/components/CompositionArea.stories.tsx index ad3a426456..e8154754ce 100644 --- a/ts/components/CompositionArea.stories.tsx +++ b/ts/components/CompositionArea.stories.tsx @@ -96,11 +96,10 @@ const useProps = (overrideProps: Partial = {}): Props => ({ clearShowPickerHint: action('clearShowPickerHint'), // Message Requests conversationType: 'direct', - onAccept: action('onAccept'), - onBlock: action('onBlock'), - onBlockAndReportSpam: action('onBlockAndReportSpam'), - onDelete: action('onDelete'), - onUnblock: action('onUnblock'), + acceptConversation: action('acceptConversation'), + blockConversation: action('blockConversation'), + blockAndReportSpam: action('blockAndReportSpam'), + deleteConversation: action('deleteConversation'), messageRequestsEnabled: boolean( 'messageRequestsEnabled', overrideProps.messageRequestsEnabled || false diff --git a/ts/components/CompositionArea.tsx b/ts/components/CompositionArea.tsx index 4af92417b8..9a35707e0f 100644 --- a/ts/components/CompositionArea.tsx +++ b/ts/components/CompositionArea.tsx @@ -240,11 +240,10 @@ export function CompositionArea({ isMissingMandatoryProfileSharing, left, messageRequestsEnabled, - onAccept, - onBlock, - onBlockAndReportSpam, - onDelete, - onUnblock, + acceptConversation, + blockConversation, + blockAndReportSpam, + deleteConversation, title, // GroupV1 Disabled Actions isGroupV1AndDisabled, @@ -497,14 +496,14 @@ export function CompositionArea({ ) { return ( ); @@ -549,12 +548,13 @@ export function CompositionArea({ ) { return ( ); diff --git a/ts/components/ToastManager.stories.tsx b/ts/components/ToastManager.stories.tsx index 538847de41..939e257361 100644 --- a/ts/components/ToastManager.stories.tsx +++ b/ts/components/ToastManager.stories.tsx @@ -80,3 +80,10 @@ StoryVideoError.args = { toastType: ToastType.StoryVideoError, }, }; + +export const ReportedSpamAndBlocked = Template.bind({}); +ReportedSpamAndBlocked.args = { + toast: { + toastType: ToastType.ReportedSpamAndBlocked, + }, +}; diff --git a/ts/components/ToastManager.tsx b/ts/components/ToastManager.tsx index b9f8abbe2c..12b39c7fcd 100644 --- a/ts/components/ToastManager.tsx +++ b/ts/components/ToastManager.tsx @@ -97,6 +97,14 @@ export function ToastManager({ return ; } + if (toastType === ToastType.ReportedSpamAndBlocked) { + return ( + + {i18n('MessageRequests--block-and-report-spam-success-toast')} + + ); + } + if (toastType === ToastType.StoryMuted) { return ( diff --git a/ts/components/ToastReportedSpamAndBlocked.stories.tsx b/ts/components/ToastReportedSpamAndBlocked.stories.tsx deleted file mode 100644 index 93c9b429a3..0000000000 --- a/ts/components/ToastReportedSpamAndBlocked.stories.tsx +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2021 Signal Messenger, LLC -// SPDX-License-Identifier: AGPL-3.0-only - -import React from 'react'; -import { action } from '@storybook/addon-actions'; -import { ToastReportedSpamAndBlocked } from './ToastReportedSpamAndBlocked'; - -import { setupI18n } from '../util/setupI18n'; -import enMessages from '../../_locales/en/messages.json'; - -const i18n = setupI18n('en', enMessages); - -const defaultProps = { - i18n, - onClose: action('onClose'), -}; - -export default { - title: 'Components/ToastReportedSpamAndBlocked', -}; - -export const _ToastReportedSpamAndBlocked = (): JSX.Element => ( - -); - -_ToastReportedSpamAndBlocked.story = { - name: 'ToastReportedSpamAndBlocked', -}; diff --git a/ts/components/ToastReportedSpamAndBlocked.tsx b/ts/components/ToastReportedSpamAndBlocked.tsx deleted file mode 100644 index 56c13fda60..0000000000 --- a/ts/components/ToastReportedSpamAndBlocked.tsx +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2021 Signal Messenger, LLC -// SPDX-License-Identifier: AGPL-3.0-only - -import React from 'react'; -import type { LocalizerType } from '../types/Util'; -import { Toast } from './Toast'; - -type PropsType = { - i18n: LocalizerType; - onClose: () => unknown; -}; - -export function ToastReportedSpamAndBlocked({ - i18n, - onClose, -}: PropsType): JSX.Element { - return ( - - {i18n('MessageRequests--block-and-report-spam-success-toast')} - - ); -} diff --git a/ts/components/conversation/ContactSpoofingReviewDialog.stories.tsx b/ts/components/conversation/ContactSpoofingReviewDialog.stories.tsx index f3bec3c05b..397ae7624d 100644 --- a/ts/components/conversation/ContactSpoofingReviewDialog.stories.tsx +++ b/ts/components/conversation/ContactSpoofingReviewDialog.stories.tsx @@ -19,15 +19,15 @@ export default { }; const getCommonProps = () => ({ + acceptConversation: action('acceptConversation'), + blockAndReportSpam: action('blockAndReportSpam'), + blockConversation: action('blockConversation'), + deleteConversation: action('deleteConversation'), getPreferredBadge: () => undefined, - i18n, groupConversationId: 'convo-id', - onBlock: action('onBlock'), - onBlockAndReportSpam: action('onBlockAndReportSpam'), + i18n, onClose: action('onClose'), - onDelete: action('onDelete'), onShowContactModal: action('onShowContactModal'), - onUnblock: action('onUnblock'), removeMember: action('removeMember'), theme: ThemeType.light, }); diff --git a/ts/components/conversation/ContactSpoofingReviewDialog.tsx b/ts/components/conversation/ContactSpoofingReviewDialog.tsx index 9ce006a8d8..20f7dac99c 100644 --- a/ts/components/conversation/ContactSpoofingReviewDialog.tsx +++ b/ts/components/conversation/ContactSpoofingReviewDialog.tsx @@ -25,14 +25,14 @@ import { missingCaseError } from '../../util/missingCaseError'; import { isInSystemContacts } from '../../util/isInSystemContacts'; export type PropsType = { + acceptConversation: (conversationId: string) => unknown; + blockAndReportSpam: (conversationId: string) => unknown; + blockConversation: (conversationId: string) => unknown; + deleteConversation: (conversationId: string) => unknown; getPreferredBadge: PreferredBadgeSelectorType; i18n: LocalizerType; - onBlock: (conversationId: string) => unknown; - onBlockAndReportSpam: (conversationId: string) => unknown; onClose: () => void; - onDelete: (conversationId: string) => unknown; onShowContactModal: (contactId: string, conversationId?: string) => unknown; - onUnblock: (conversationId: string) => unknown; removeMember: (conversationId: string) => unknown; theme: ThemeType; } & ( @@ -62,14 +62,14 @@ enum ConfirmationStateType { export function ContactSpoofingReviewDialog(props: PropsType): JSX.Element { const { + acceptConversation, + blockAndReportSpam, + blockConversation, + deleteConversation, getPreferredBadge, i18n, - onBlock, - onBlockAndReportSpam, onClose, - onDelete, onShowContactModal, - onUnblock, removeMember, theme, } = props; @@ -96,21 +96,14 @@ export function ContactSpoofingReviewDialog(props: PropsType): JSX.Element { case ConfirmationStateType.ConfirmingBlock: return ( { - onBlock(affectedConversation.id); - }} - onBlockAndReportSpam={() => { - onBlockAndReportSpam(affectedConversation.id); - }} - onUnblock={() => { - onUnblock(affectedConversation.id); - }} - onDelete={() => { - onDelete(affectedConversation.id); - }} - title={affectedConversation.title} + acceptConversation={acceptConversation} + blockAndReportSpam={blockAndReportSpam} + blockConversation={blockConversation} + conversationId={affectedConversation.id} conversationType="direct" + deleteConversation={deleteConversation} + i18n={i18n} + title={affectedConversation.title} state={ type === ConfirmationStateType.ConfirmingDelete ? MessageRequestState.deleting @@ -279,7 +272,7 @@ export function ContactSpoofingReviewDialog(props: PropsType): JSX.Element {