summaryrefslogtreecommitdiffhomepage
path: root/gui/src/renderer/components
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2020-09-24 12:02:08 +0200
committerOskar Nyberg <oskar@mullvad.net>2020-09-25 11:10:37 +0200
commitf8b9216b957d6cfef01088a4f450e3dcadcfccb7 (patch)
treea10caf64cfe9d21c07bec35cc0560af16fb384a3 /gui/src/renderer/components
parent49aab4d4ee473315901ea255758783c05d68cb15 (diff)
downloadmullvadvpn-f8b9216b957d6cfef01088a4f450e3dcadcfccb7.tar.xz
mullvadvpn-f8b9216b957d6cfef01088a4f450e3dcadcfccb7.zip
Reload duration since key was generated every minute and when the app is opened
Diffstat (limited to 'gui/src/renderer/components')
-rw-r--r--gui/src/renderer/components/WireguardKeys.tsx30
1 files changed, 26 insertions, 4 deletions
diff --git a/gui/src/renderer/components/WireguardKeys.tsx b/gui/src/renderer/components/WireguardKeys.tsx
index 3f3e8521d7..d5b0dc1833 100644
--- a/gui/src/renderer/components/WireguardKeys.tsx
+++ b/gui/src/renderer/components/WireguardKeys.tsx
@@ -37,6 +37,7 @@ export interface IProps {
isOffline: boolean;
locale: string;
tunnelState: TunnelState;
+ windowFocused: boolean;
onClose: () => void;
onGenerateKey: () => void;
@@ -48,16 +49,31 @@ export interface IProps {
export interface IState {
recentlyGeneratedKey: boolean;
userHasInitiatedVerification: boolean;
+ ageOfKeyString: string;
}
export default class WireguardKeys extends React.Component<IProps, IState> {
+ private keyAgeUpdateInterval?: number;
+
public state = {
recentlyGeneratedKey: false,
userHasInitiatedVerification: false,
+ ageOfKeyString: WireguardKeys.ageOfKeyString(this.props.keyState, this.props.locale),
};
+ public static getDerivedStateFromProps(props: IProps) {
+ return {
+ ageOfKeyString: WireguardKeys.ageOfKeyString(props.keyState, props.locale),
+ };
+ }
+
public componentDidMount() {
this.verifyKey();
+ this.keyAgeUpdateInterval = setInterval(this.setAgeOfKeyStringState, 60 * 1000);
+ }
+
+ public componentWillUnmount() {
+ clearInterval(this.keyAgeUpdateInterval);
}
public componentDidUpdate(prevProps: IProps) {
@@ -121,7 +137,7 @@ export default class WireguardKeys extends React.Component<IProps, IState> {
<StyledRowLabel>
{messages.pgettext('wireguard-key-view', 'Key generated')}
</StyledRowLabel>
- <StyledRowValue>{this.ageOfKeyString()}</StyledRowValue>
+ <StyledRowValue>{this.state.ageOfKeyString}</StyledRowValue>
</StyledRow>
<StyledMessages>
@@ -279,16 +295,22 @@ export default class WireguardKeys extends React.Component<IProps, IState> {
}
}
- private ageOfKeyString(): string {
- switch (this.props.keyState.type) {
+ private static ageOfKeyString(keyState: WgKeyState, locale: string): string {
+ switch (keyState.type) {
case 'key-set':
case 'being-verified':
- return moment(this.props.keyState.key.created).locale(this.props.locale).fromNow();
+ return moment(keyState.key.created).locale(locale).fromNow();
default:
return '-';
}
}
+ private setAgeOfKeyStringState = () => {
+ this.setState({
+ ageOfKeyString: WireguardKeys.ageOfKeyString(this.props.keyState, this.props.locale),
+ });
+ };
+
private getStatusMessage(): string {
switch (this.props.keyState.type) {
case 'key-set': {