// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React, { type JSX, useState } from 'react';
import type { LocalizerType } from '../../types/I18N.std.ts';
import { SystemMessage } from './SystemMessage.dom.tsx';
import { Button, ButtonSize, ButtonVariant } from '../Button.dom.tsx';
import { MessageRequestState } from './MessageRequestActionsConfirmation.dom.tsx';
import { SafetyTipsModal } from '../SafetyTipsModal.dom.tsx';
import { MessageRequestResponseEvent } from '../../types/MessageRequestResponseEvent.std.ts';
import { I18n } from '../I18n.dom.tsx';
export type MessageRequestResponseNotificationData = {
messageRequestResponseEvent: MessageRequestResponseEvent;
};
export type MessageRequestResponseNotificationProps =
MessageRequestResponseNotificationData & {
i18n: LocalizerType;
isBlocked: boolean;
isGroup: boolean;
onOpenMessageRequestActionsConfirmation(state: MessageRequestState): void;
renderedContact: JSX.Element | null;
};
export function MessageRequestResponseNotification({
i18n,
isBlocked,
isGroup,
messageRequestResponseEvent: event,
onOpenMessageRequestActionsConfirmation,
renderedContact,
}: MessageRequestResponseNotificationProps): React.JSX.Element | null {
const [isSafetyTipsModalOpen, setIsSafetyTipsModalOpen] = useState(false);
return (
<>
{event === MessageRequestResponseEvent.ACCEPT && (
)
}
button={
isBlocked ? null : (
)
}
/>
)}
{event === MessageRequestResponseEvent.BLOCK && (
)}
{event === MessageRequestResponseEvent.UNBLOCK && (
)}
{event === MessageRequestResponseEvent.SPAM && (
{
setIsSafetyTipsModalOpen(true);
}}
>
{i18n(
'icu:MessageRequestResponseNotification__Button--LearnMore'
)}
}
/>
)}
{isSafetyTipsModalOpen && (
{
setIsSafetyTipsModalOpen(false);
}}
/>
)}
>
);
}