// Copyright 2020 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import * as React from 'react'; import { ContactName, PropsType as ContactNameProps } from './ContactName'; import { ConfirmationModal } from '../ConfirmationModal'; import { Intl } from '../Intl'; import { LocalizerType } from '../../types/Util'; export enum MessageRequestState { blocking, deleting, unblocking, default, } export type Props = { i18n: LocalizerType; conversationType: 'group' | 'direct'; isBlocked?: boolean; onBlock(): unknown; onBlockAndDelete(): unknown; onUnblock(): unknown; onDelete(): unknown; state: MessageRequestState; onChangeState(state: MessageRequestState): unknown; } & Omit; export const MessageRequestActionsConfirmation = ({ conversationType, i18n, name, onBlock, onBlockAndDelete, onChangeState, onDelete, onUnblock, phoneNumber, profileName, state, title, }: Props): JSX.Element | null => { if (state === MessageRequestState.blocking) { return ( { onChangeState(MessageRequestState.default); }} title={ , ]} /> } actions={[ { text: i18n('MessageRequests--block'), action: onBlock, style: 'negative', }, { text: i18n('MessageRequests--block-and-delete'), action: onBlockAndDelete, style: 'negative', }, ]} > {i18n(`MessageRequests--block-${conversationType}-confirm-body`)} ); } if (state === MessageRequestState.unblocking) { return ( { onChangeState(MessageRequestState.default); }} title={ , ]} /> } actions={[ { text: i18n('MessageRequests--unblock'), action: onUnblock, style: 'affirmative', }, ]} > {i18n(`MessageRequests--unblock-${conversationType}-confirm-body`)} ); } if (state === MessageRequestState.deleting) { return ( { onChangeState(MessageRequestState.default); }} title={ , ]} /> } actions={[ { text: i18n(`MessageRequests--delete-${conversationType}`), action: onDelete, style: 'negative', }, ]} > {i18n(`MessageRequests--delete-${conversationType}-confirm-body`)} ); } return null; };