From c872f22014d4009a90c8264865edde75f1a753f8 Mon Sep 17 00:00:00 2001 From: koray-eren Date: Thu, 14 Apr 2022 14:06:48 +1000 Subject: [PATCH] password screen spinner implemented --- debug_log_preload.js | 1 + ts/components/SessionPasswordPrompt.tsx | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/debug_log_preload.js b/debug_log_preload.js index 4fa7f0fc8..992c831c3 100644 --- a/debug_log_preload.js +++ b/debug_log_preload.js @@ -3,6 +3,7 @@ const { ipcRenderer } = require('electron'); const url = require('url'); const i18n = require('./ts/util/i18n'); + const config = url.parse(window.location.toString(), true).query; const { locale } = config; const localeMessages = ipcRenderer.sendSync('locale-data'); diff --git a/ts/components/SessionPasswordPrompt.tsx b/ts/components/SessionPasswordPrompt.tsx index 5b5333e44..5c84f42b9 100644 --- a/ts/components/SessionPasswordPrompt.tsx +++ b/ts/components/SessionPasswordPrompt.tsx @@ -6,11 +6,14 @@ import { withTheme } from 'styled-components'; import autoBind from 'auto-bind'; import { SessionButton, SessionButtonColor, SessionButtonType } from './basic/SessionButton'; import { Constants } from '../session'; +import { SessionSpinner } from './basic/SessionSpinner'; +import { sleepFor } from '../session/utils/Promise'; interface State { error: string; errorCount: number; clearDataView: boolean; + loading: boolean; } export const MAX_LOGIN_TRIES = 3; @@ -25,6 +28,7 @@ class SessionPasswordPromptInner extends React.PureComponent<{}, State> { error: '', errorCount: 0, clearDataView: false, + loading: false, }; autoBind(this); @@ -84,6 +88,7 @@ class SessionPasswordPromptInner extends React.PureComponent<{}, State> { )} ); + const spinner = this.state.loading ? : null; return (
@@ -94,7 +99,7 @@ class SessionPasswordPromptInner extends React.PureComponent<{}, State> {

{infoTitle}

- {featureElement} + {spinner || featureElement} {errorSection} {buttonGroup} @@ -125,9 +130,15 @@ class SessionPasswordPromptInner extends React.PureComponent<{}, State> { this.setState({ error }); } + this.setState({ + loading: false, + }); } private async initLogin() { + this.setState({ + loading: true, + }); const passPhrase = String((this.inputRef as HTMLInputElement).value); await this.onLogin(passPhrase); }