// Copyright 2020 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import * as React from 'react'; import { LocalizerType } from '../../types/Util'; import { ConversationType } from '../../state/ducks/conversations'; import { Intl } from '../Intl'; import { ContactName } from './ContactName'; import { GroupV1MigrationDialog } from '../GroupV1MigrationDialog'; export type PropsDataType = { areWeInvited: boolean; droppedMembers: Array; invitedMembers: Array; }; export type PropsHousekeepingType = { i18n: LocalizerType; }; export type PropsType = PropsDataType & PropsHousekeepingType; export function GroupV1Migration(props: PropsType): React.ReactElement { const { areWeInvited, droppedMembers, i18n, invitedMembers } = props; const [showingDialog, setShowingDialog] = React.useState(false); const showDialog = React.useCallback(() => { setShowingDialog(true); }, [setShowingDialog]); const dismissDialog = React.useCallback(() => { setShowingDialog(false); }, [setShowingDialog]); return (
{i18n('GroupV1--Migration--was-upgraded')}
{areWeInvited ? (
{i18n('GroupV1--Migration--invited--you')}
) : ( <> {renderUsers(invitedMembers, i18n, 'GroupV1--Migration--invited')} {renderUsers(droppedMembers, i18n, 'GroupV1--Migration--removed')} )} {showingDialog ? ( window.log.warn('GroupV1Migration: Modal called migrate()') } onClose={dismissDialog} /> ) : null}
); } function renderUsers( members: Array, i18n: LocalizerType, keyPrefix: string ): React.ReactElement | null { if (!members || members.length === 0) { return null; } const className = 'module-group-v1-migration--text'; if (members.length === 1) { return (
]} />
); } return (
{i18n(`${keyPrefix}--many`, [members.length.toString()])}
); }