summaryrefslogtreecommitdiffhomepage
path: root/gui/src
diff options
context:
space:
mode:
Diffstat (limited to 'gui/src')
-rw-r--r--gui/src/renderer/components/MainView.tsx11
1 files changed, 8 insertions, 3 deletions
diff --git a/gui/src/renderer/components/MainView.tsx b/gui/src/renderer/components/MainView.tsx
index cc2419ddfd..983a33d376 100644
--- a/gui/src/renderer/components/MainView.tsx
+++ b/gui/src/renderer/components/MainView.tsx
@@ -1,6 +1,7 @@
import { useEffect, useState } from 'react';
import { hasExpired } from '../../shared/account-expiry';
+import { AuthFailedError, ErrorStateCause } from '../../shared/daemon-rpc-types';
import Connect from '../components/Connect';
import { useHistory } from '../lib/history';
import { RoutePath } from '../lib/routes';
@@ -16,6 +17,7 @@ export default function MainView() {
const isNewAccount = useSelector(
(state) => state.account.status.type === 'ok' && state.account.status.method === 'new_account',
);
+ const tunnelState = useSelector((state) => state.connection.status);
const [showAccountExpired, setShowAccountExpired] = useState<ExpiryData>(() =>
isNewAccount || accountHasExpired ? { show: true, expiry: accountExpiry } : { show: false },
@@ -23,8 +25,11 @@ export default function MainView() {
useEffect(() => {
if (
- accountHasExpired &&
- (!showAccountExpired.show || showAccountExpired.expiry !== accountExpiry)
+ (!showAccountExpired.show || showAccountExpired.expiry !== accountExpiry) &&
+ (accountHasExpired ||
+ (tunnelState.state === 'error' &&
+ tunnelState.details.cause === ErrorStateCause.authFailed &&
+ tunnelState.details.authFailedError === AuthFailedError.expiredAccount))
) {
setShowAccountExpired({ show: true, expiry: accountExpiry });
} else if (
@@ -34,7 +39,7 @@ export default function MainView() {
) {
history.push(RoutePath.timeAdded);
}
- }, [showAccountExpired, accountHasExpired]);
+ }, [showAccountExpired, accountHasExpired, tunnelState.state]);
if (showAccountExpired.show) {
return <ExpiredAccountErrorView />;