// Copyright 2025 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import * as React from 'react'; import type { LocalizerType } from '../types/Util'; import { missingCaseError } from '../util/missingCaseError'; import { Modal } from './Modal'; import { Button, ButtonVariant } from './Button'; export enum BackfillFailureKind { Timeout = 'Timeout', NotFound = 'NotFound', } export type DataPropsType = Readonly<{ kind: BackfillFailureKind; }>; export type HousekeepingPropsType = Readonly<{ i18n: LocalizerType; onClose: () => void; }>; export type PropsType = DataPropsType & HousekeepingPropsType; function focusRef(el: HTMLElement | null) { if (el) { el.focus(); } } export function BackfillFailureModal(props: PropsType): JSX.Element { const { i18n, kind, onClose } = props; const footer = ( ); let body: string; if (kind === BackfillFailureKind.Timeout) { body = i18n('icu:BackfillFailureModal__body--timeout'); } else if (kind === BackfillFailureKind.NotFound) { body = i18n('icu:BackfillFailureModal__body--not-found'); } else { throw missingCaseError(kind); } return (
{body}
); }