Show sender and device number in decryption error toast

This commit is contained in:
Scott Nonnenberg 2021-12-06 16:21:30 -08:00 committed by GitHub
parent 01549b11d1
commit b1ebc0f483
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 52 additions and 12 deletions

View file

@ -12,7 +12,9 @@ import enMessages from '../../_locales/en/messages.json';
const i18n = setupI18n('en', enMessages);
const defaultProps = {
deviceId: 3,
i18n,
name: 'Someone Somewhere',
onClose: action('onClose'),
onShowDebugLog: action('onShowDebugLog'),
};

View file

@ -6,6 +6,8 @@ import type { LocalizerType } from '../types/Util';
import { Toast } from './Toast';
export type ToastPropsType = {
deviceId: number;
name: string;
onShowDebugLog: () => unknown;
};
@ -15,7 +17,9 @@ type PropsType = {
} & ToastPropsType;
export const ToastDecryptionError = ({
deviceId,
i18n,
name,
onClose,
onShowDebugLog,
}: PropsType): JSX.Element => {
@ -24,12 +28,16 @@ export const ToastDecryptionError = ({
autoDismissDisabled
className="decryption-error"
onClose={onClose}
style={{ maxWidth: '500px' }}
toastAction={{
label: i18n('decryptionErrorToastAction'),
onClick: onShowDebugLog,
}}
>
{i18n('decryptionErrorToast')}
{i18n('decryptionErrorToast', {
name,
deviceId,
})}
</Toast>
);
};

View file

@ -151,13 +151,19 @@ export async function onRetryRequest(event: RetryRequestEvent): Promise<void> {
log.info(`onRetryRequest/${logId}: Resend complete.`);
}
function maybeShowDecryptionToast(logId: string) {
function maybeShowDecryptionToast(
logId: string,
name: string,
deviceId: number
) {
if (isProduction(window.getVersion())) {
return;
}
log.info(`maybeShowDecryptionToast/${logId}: Showing decryption error toast`);
showToast(ToastDecryptionError, {
deviceId,
name,
onShowDebugLog: () => window.showDebugLog(),
});
}
@ -189,7 +195,8 @@ export async function onDecryptionError(
await conversation.getProfiles();
}
maybeShowDecryptionToast(logId);
const name = conversation.getTitle();
maybeShowDecryptionToast(logId, name, senderDevice);
if (
conversation.get('capabilities')?.senderKey &&