// Copyright 2021 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import React, { FunctionComponent, useState } from 'react'; import { LocalizerType } from '../../types/Util'; import { ConversationType } from '../../state/ducks/conversations'; import { MessageRequestActionsConfirmation, MessageRequestState, } from './MessageRequestActionsConfirmation'; import { Modal } from '../Modal'; import { ContactSpoofingReviewDialogPerson } from './ContactSpoofingReviewDialogPerson'; import { Button, ButtonVariant } from '../Button'; import { assert } from '../../util/assert'; type PropsType = { i18n: LocalizerType; onBlock: () => unknown; onBlockAndReportSpam: () => unknown; onClose: () => void; onDelete: () => unknown; onShowContactModal: (contactId: string) => unknown; onUnblock: () => unknown; possiblyUnsafeConversation: ConversationType; safeConversation: ConversationType; }; export const ContactSpoofingReviewDialog: FunctionComponent = ({ i18n, onBlock, onBlockAndReportSpam, onClose, onDelete, onShowContactModal, onUnblock, possiblyUnsafeConversation, safeConversation, }) => { assert( possiblyUnsafeConversation.type === 'direct', ' expected a direct conversation for the "possibly unsafe" conversation' ); assert( safeConversation.type === 'direct', ' expected a direct conversation for the "safe" conversation' ); const [messageRequestState, setMessageRequestState] = useState( MessageRequestState.default ); if (messageRequestState !== MessageRequestState.default) { return ( ); } return (

{i18n('ContactSpoofingReviewDialog__description')}

{i18n('ContactSpoofingReviewDialog__possibly-unsafe-title')}


{i18n('ContactSpoofingReviewDialog__safe-title')}

{ onShowContactModal(safeConversation.id); }} />
); };