diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2022-04-01 09:46:53 +0200 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2022-04-05 16:05:32 +0200 |
| commit | 096b5e5c3ce65214be615e135fde9320fa2c1437 (patch) | |
| tree | a6b6782f63157553d9f8d25179f84be5a0955ff4 /gui/src/renderer/components | |
| parent | 3640e7731c8855de871c7d1af97a8d07414a4913 (diff) | |
| download | mullvadvpn-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.tsx | 18 |
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} |
