From b620baf5ed7f15e48d39e02cebae9141a95e109b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joel=20Elias=20M=C3=A9ndez?= <67445275+joelmendez1@users.noreply.github.com> Date: Mon, 30 May 2022 16:04:32 -0300 Subject: [PATCH] [DEV-268] Fix long loading time in homepage (#1206) --- .../main/main-signup/main-signup-widget.js | 22 ++++++++++++++----- client/src/lib-app/session-store.js | 10 +++++++-- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/client/src/app/main/main-signup/main-signup-widget.js b/client/src/app/main/main-signup/main-signup-widget.js index 3497df03..4a5916fa 100644 --- a/client/src/app/main/main-signup/main-signup-widget.js +++ b/client/src/app/main/main-signup/main-signup-widget.js @@ -5,6 +5,7 @@ import classNames from 'classnames'; import i18n from 'lib-app/i18n'; import API from 'lib-app/api-call'; import history from 'lib-app/history'; +import SessionStore from 'lib-app/session-store'; import Captcha from 'app/main/captcha'; import SubmitButton from 'core-components/submit-button'; @@ -33,11 +34,22 @@ class MainSignUpWidget extends React.Component { } componentDidMount() { - API.call({ - path: '/system/get-custom-fields', - data: {} - }) - .then(result => this.setState({customFields: result.data})); + if(!SessionStore.getItem('customFields')) { + API.call({ + path: '/system/get-custom-fields', + data: {} + }) + .then(result => { + SessionStore.storeCustomField(result.data); + this.setState({ + customFields: result.data + }); + }) + } else { + this.setState({ + customFields: SessionStore.getCustomFields() + }); + } } render() { diff --git a/client/src/lib-app/session-store.js b/client/src/lib-app/session-store.js index 8b731b22..e3b269d4 100644 --- a/client/src/lib-app/session-store.js +++ b/client/src/lib-app/session-store.js @@ -48,6 +48,10 @@ class SessionStore { return JSON.parse(this.getItem('departments')); } + getCustomFields() { + return JSON.parse(this.getItem('customFields')); + } + storeRememberData({token, userId, expiration, isStaff}) { this.setItem('rememberData-token', token); this.setItem('rememberData-userId', userId); @@ -55,6 +59,10 @@ class SessionStore { this.setItem('rememberData-expiration', expiration); } + storeCustomField(customFields) { + this.setItem('customFields', JSON.stringify(customFields)); + } + storeConfigs(configs) { this.setItem('session-prefix', configs['session-prefix']); this.setItem('language', configs.language); @@ -70,8 +78,6 @@ class SessionStore { this.setItem('maintenance-mode', configs['maintenance-mode']); this.setItem('max-size', configs['max-size']); this.setItem('tags', JSON.stringify(configs['tags'])); - this.setItem('max-size', configs['max-size']); - this.setItem('tags', JSON.stringify(configs['tags'])); this.setItem('default-is-locked', configs['default-is-locked']); this.setItem('default-department-id', configs['default-department-id']); }