@ -1,8 +1,9 @@
import * as React from 'react' ;
import * as React from 'react' ;
import { persistor } from '../store' ;
import { store , persistor } from '../store' ;
import { resetKey } from '../store/actions' ;
import { IntegrityError } from '../api/EteSync' ;
import { EncryptionPasswordError, IntegrityError } from '../api/EteSync' ;
import PrettyError from '../widgets/PrettyError' ;
import PrettyError from '../widgets/PrettyError' ;
class ErrorBoundary extends React . Component {
class ErrorBoundary extends React . Component {
@ -16,7 +17,9 @@ class ErrorBoundary extends React.Component {
}
}
public componentDidCatch ( error : Error , info : any ) {
public componentDidCatch ( error : Error , info : any ) {
if ( error instanceof IntegrityError ) {
if ( error instanceof EncryptionPasswordError ) {
store . dispatch ( resetKey ( ) ) ;
} else if ( error instanceof IntegrityError ) {
persistor . purge ( ) ;
persistor . purge ( ) ;
}
}
@ -25,21 +28,29 @@ class ErrorBoundary extends React.Component {
public render() {
public render() {
const { error } = this . state ;
const { error } = this . state ;
if ( error && error instanceof IntegrityError ) {
if ( error ) {
return (
if ( error instanceof EncryptionPasswordError ) {
< div >
return (
< h2 > Integrity Error < / h2 >
< div >
< p >
< h2 > Wrong Encryption Password < / h2 >
This probably means you put in the wrong encryption password .
< p >
< / p >
It looks like you ' ve entered the wrong encryption password , please refresh the page and try again .
< p >
< / p >
Please log out from the menu , refresh the page and try again .
< / div >
< / p >
) ;
< pre >
} else if ( error instanceof IntegrityError ) {
{ error . message }
return (
< / pre >
< div >
< / div >
< h2 > Integrity Error < / h2 >
) ;
< p >
Please log out from the menu , refresh the page and try again , and if the problem persists , contact support .
< / p >
< pre >
{ error . message }
< / pre >
< / div >
) ;
}
}
}
if ( error ) {
if ( error ) {