RocketChat/Rocket.Chat

View on GitHub
apps/meteor/client/views/room/E2EESetup/RoomE2EENotAllowed.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import {
    Box,
    Button,
    States,
    StatesAction,
    StatesActions,
    StatesIcon,
    StatesLink,
    StatesSubtitle,
    StatesTitle,
} from '@rocket.chat/fuselage';
import type { Keys as IconName } from '@rocket.chat/icons';
import { useRouter, useTranslation } from '@rocket.chat/ui-contexts';
import type { ReactElement } from 'react';
import React from 'react';

const DOCS_URL = 'https://go.rocket.chat/i/e2ee-guide';

type RoomE2EENotAllowedProps = {
    title: string;
    subTitle: string;
    action?: () => void;
    btnText?: string;
    icon: IconName;
};

const RoomE2EENotAllowed = ({ title, subTitle, action, btnText, icon }: RoomE2EENotAllowedProps): ReactElement => {
    const router = useRouter();
    const t = useTranslation();
    const handleGoHomeClick = () => {
        router.navigate('/home');
    };

    return (
        <Box display='flex' justifyContent='center' height='full'>
            <States>
                <StatesIcon name={icon} variation='primary' />
                <StatesTitle>{title}</StatesTitle>
                <StatesSubtitle>{subTitle}</StatesSubtitle>
                {action && (
                    <StatesActions>
                        <Button secondary={true} role='link' onClick={handleGoHomeClick}>
                            {t('Back_to_home')}
                        </Button>
                        <StatesAction primary onClick={action} role='button'>
                            {btnText}
                        </StatesAction>
                    </StatesActions>
                )}
                <StatesLink target='_blank' href={DOCS_URL}>
                    {t('Learn_more_about_E2EE')}
                </StatesLink>
            </States>
        </Box>
    );
};

export default RoomE2EENotAllowed;