summaryrefslogtreecommitdiffhomepage
path: root/gui/src/renderer/components
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2022-04-01 09:46:53 +0200
committerOskar Nyberg <oskar@mullvad.net>2022-04-05 16:05:32 +0200
commit096b5e5c3ce65214be615e135fde9320fa2c1437 (patch)
treea6b6782f63157553d9f8d25179f84be5a0955ff4 /gui/src/renderer/components
parent3640e7731c8855de871c7d1af97a8d07414a4913 (diff)
downloadmullvadvpn-096b5e5c3ce65214be615e135fde9320fa2c1437.tar.xz
mullvadvpn-096b5e5c3ce65214be615e135fde9320fa2c1437.zip
Add information about post upgrade tasks in UI
Diffstat (limited to 'gui/src/renderer/components')
-rw-r--r--gui/src/renderer/components/Login.tsx18
1 files changed, 17 insertions, 1 deletions
diff --git a/gui/src/renderer/components/Login.tsx b/gui/src/renderer/components/Login.tsx
index d9ae7f105f..282f49d01c 100644
--- a/gui/src/renderer/components/Login.tsx
+++ b/gui/src/renderer/components/Login.tsx
@@ -51,6 +51,7 @@ interface IProps {
updateAccountToken: (accountToken: AccountToken) => void;
clearAccountHistory: () => Promise<void>;
createNewAccount: () => void;
+ isPerformingPostUpgrade?: boolean;
}
interface IState {
@@ -149,6 +150,10 @@ export default class Login extends React.Component<IProps, IState> {
};
private formTitle() {
+ if (this.props.isPerformingPostUpgrade) {
+ return messages.pgettext('login-view', 'Upgrading...');
+ }
+
switch (this.props.loginState.type) {
case 'logging in':
case 'too many devices':
@@ -169,6 +174,10 @@ export default class Login extends React.Component<IProps, IState> {
}
private formSubtitle() {
+ if (this.props.isPerformingPostUpgrade) {
+ return messages.pgettext('login-view', 'Finishing upgrade.');
+ }
+
switch (this.props.loginState.type) {
case 'failed':
return this.props.loginState.method === 'existing_account'
@@ -199,6 +208,10 @@ export default class Login extends React.Component<IProps, IState> {
}
private getStatusIconPath(): string | undefined {
+ if (this.props.isPerformingPostUpgrade) {
+ return 'icon-spinner';
+ }
+
switch (this.props.loginState.type) {
case 'logging in':
return 'icon-spinner';
@@ -213,6 +226,7 @@ export default class Login extends React.Component<IProps, IState> {
private allowInteraction() {
return (
+ !this.props.isPerformingPostUpgrade &&
this.props.loginState.type !== 'logging in' &&
this.props.loginState.type !== 'ok' &&
this.props.loginState.type !== 'too many devices'
@@ -291,7 +305,9 @@ export default class Login extends React.Component<IProps, IState> {
messages.pgettext('accessibility', 'Login')
}>
<StyledInputSubmitIcon
- visible={this.props.loginState.type !== 'logging in'}
+ visible={
+ this.props.loginState.type !== 'logging in' && !this.props.isPerformingPostUpgrade
+ }
source="icon-arrow"
height={16}
width={24}