From 00b0a40fd90c274174ddd7c22aaebc00ec93eeb1 Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Sat, 23 May 2020 10:47:59 +0200 Subject: [PATCH] Fixed setState in constructor react warning --- shared/js/ui/tree/Client.tsx | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/shared/js/ui/tree/Client.tsx b/shared/js/ui/tree/Client.tsx index 07150411..1cdb7e59 100644 --- a/shared/js/ui/tree/Client.tsx +++ b/shared/js/ui/tree/Client.tsx @@ -255,8 +255,9 @@ interface ClientNameState { @ReactEventHandler(e => e.props.client.events) class ClientName extends ReactComponentBase { protected initialize() { - this.updateGroups(); - this.updateAwayMessage(); + this.state = {} as any; + this.updateGroups(this.state); + this.updateAwayMessage(this.state); } protected defaultState(): ClientNameState { @@ -273,7 +274,7 @@ class ClientName extends ReactComponentBase } - private updateGroups() { + private updateGroups(state: ClientNameState) { let prefix_groups: string[] = []; let suffix_groups: string[] = []; for(const group_id of this.props.client.assignedServerGroupIds()) { @@ -294,27 +295,27 @@ class ClientName extends ReactComponentBase "[" + e + "]").join(""), - group_prefix: prefix_groups.map(e => "[" + e + "]").join("") - }); + state.group_prefix = suffix_groups.map(e => "[" + e + "]").join(""); + state.group_suffix = prefix_groups.map(e => "[" + e + "]").join(""); } - private updateAwayMessage() { - this.setState({ - away_message: this.props.client.properties.client_away_message && " [" + this.props.client.properties.client_away_message + "]" - }); + private updateAwayMessage(state: ClientNameState) { + state.away_message = this.props.client.properties.client_away_message && " [" + this.props.client.properties.client_away_message + "]"; } @EventHandler("notify_properties_updated") private handlePropertiesChanged(event: ClientEvents["notify_properties_updated"]) { + const updatedState: ClientNameState = {} as any; if(typeof event.updated_properties.client_away !== "undefined" || typeof event.updated_properties.client_away_message !== "undefined") { - this.updateAwayMessage(); + this.updateAwayMessage(updatedState); } if(typeof event.updated_properties.client_servergroups !== "undefined" || typeof event.updated_properties.client_channel_group_id !== "undefined") { - this.updateGroups(); + this.updateGroups(updatedState); } - if(typeof event.updated_properties.client_nickname !== "undefined") { + + if(Object.keys(updatedState).length > 0) + this.setState(updatedState); + else if(typeof event.updated_properties.client_nickname !== "undefined") { this.forceUpdate(); } }