/* * Wire * Copyright (C) 2023 Wire Swiss GmbH * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/. * */ import {TabIndex} from '@wireapp/react-ui-kit/lib/types/enums'; import {Button, ButtonVariant} from '@wireapp/react-ui-kit'; import {VerificationBadges} from 'Components/Badge'; import {E2EIHandler, MLSStatuses, WireIdentity} from 'src/script/E2EIdentity'; import {useCertificateStatus} from 'src/script/hooks/useCertificateStatus'; import {t} from 'Util/LocalizerUtil'; import {getLogger} from 'Util/Logger'; import {styles} from './E2EICertificateDetails.styles'; import {useCertificateDetailsModal} from './useCertificateDetailsModal'; const logger = getLogger('E2EICertificateDetails'); interface E2EICertificateDetailsProps { identity?: WireIdentity; isCurrentDevice?: boolean; } export const E2EICertificateDetails = ({identity, isCurrentDevice}: E2EICertificateDetailsProps) => { const [certificate, status] = useCertificateStatus(identity, isCurrentDevice); const isActivated = status !== MLSStatuses.NOT_ACTIVATED; const isValid = status === MLSStatuses.VALID; const expiresSoon = status === MLSStatuses.EXPIRES_SOON; const showModal = useCertificateDetailsModal(certificate ?? ''); const getCertificate = async () => { try { await E2EIHandler.getInstance().enroll({resetTimers: true}); } catch (error) { logger.error('Cannot get E2EI instance: ', error); } }; return (
{t('E2EI.status')} {t(`E2EI.${status}`)}