/* * Wire * Copyright (C) 2021 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 React, {useState} from 'react'; import * as Icon from 'Components/Icon'; import {Config} from 'src/script/Config'; import {MotionDuration} from 'src/script/motion/MotionDuration'; import {t} from 'Util/LocalizerUtil'; import {splitFingerprint} from 'Util/StringUtil'; import {messageBodyWrapper} from './ContentMessage/ContentMessage.styles'; import {DecryptErrorMessage as DecryptErrorMessageEntity} from '../../../entity/message/DecryptErrorMessage'; import {FormattedId} from '../../../page/MainContent/panels/preferences/DevicesPreferences/components/FormattedId'; export interface DecryptErrorMessageProps { message: DecryptErrorMessageEntity; onClickResetSession: (message: DecryptErrorMessageEntity) => void; } const DecryptErrorMessage: React.FC = ({message, onClickResetSession}) => { const [isResettingSession, setIsResettingSession] = useState(false); const link = Config.getConfig().URL.SUPPORT.DECRYPT_ERROR; const caption = message.isIdentityChanged ? t('conversationUnableToDecrypt2', message.user().name(), { '/highlight': '', highlight: '', }) : t('conversationUnableToDecrypt1', message.user().name(), { '/highlight': '', highlight: '', }); return (

  {t('conversationUnableToDecryptLink')}

{message.code && ( <> {`${t('conversationUnableToDecryptErrorMessage')} `} {message.code}{' '} )} {message.clientId && ( <> {'ID: '} )}

{message.isRecoverable && (
{isResettingSession ? ( ) : ( )}
)}
); }; export {DecryptErrorMessage};