diff options
author | Stefan Malzner <stefan@adlk.io> | 2019-10-08 19:51:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-08 19:51:08 +0200 |
commit | ad7fb84e5a193c2db1a8a1a59edf17374a3615d0 (patch) | |
tree | 739eb684c3c227ca121df2df445ed352a32c8129 | |
parent | remove external url event (diff) | |
parent | Merge branch 'release/5.4.0-beta.3' into fix/only-load-workspace-related-serv... (diff) | |
download | ferdium-app-ad7fb84e5a193c2db1a8a1a59edf17374a3615d0.tar.gz ferdium-app-ad7fb84e5a193c2db1a8a1a59edf17374a3615d0.tar.zst ferdium-app-ad7fb84e5a193c2db1a8a1a59edf17374a3615d0.zip |
feat(Workspaces): Only load workspace related services
Only load workspace related services
-rw-r--r-- | src/components/ui/PremiumFeatureContainer/index.js | 4 | ||||
-rw-r--r-- | src/containers/layout/AppLayoutContainer.js | 5 | ||||
-rw-r--r-- | src/containers/settings/EditSettingsScreen.js | 2 | ||||
-rw-r--r-- | src/features/delayApp/index.js | 9 | ||||
-rw-r--r-- | src/features/workspaces/store.js | 5 |
5 files changed, 20 insertions, 5 deletions
diff --git a/src/components/ui/PremiumFeatureContainer/index.js b/src/components/ui/PremiumFeatureContainer/index.js index 8d2746e22..f1e526560 100644 --- a/src/components/ui/PremiumFeatureContainer/index.js +++ b/src/components/ui/PremiumFeatureContainer/index.js | |||
@@ -10,7 +10,7 @@ import UserStore from '../../../stores/UserStore'; | |||
10 | 10 | ||
11 | import styles from './styles'; | 11 | import styles from './styles'; |
12 | import { gaEvent } from '../../../lib/analytics'; | 12 | import { gaEvent } from '../../../lib/analytics'; |
13 | import { FeatureStore } from '../../../features/utils/FeatureStore'; | 13 | import FeaturesStore from '../../../stores/FeaturesStore'; |
14 | 14 | ||
15 | const messages = defineMessages({ | 15 | const messages = defineMessages({ |
16 | action: { | 16 | action: { |
@@ -96,7 +96,7 @@ PremiumFeatureContainer.wrappedComponent.propTypes = { | |||
96 | children: oneOrManyChildElements.isRequired, | 96 | children: oneOrManyChildElements.isRequired, |
97 | stores: PropTypes.shape({ | 97 | stores: PropTypes.shape({ |
98 | user: PropTypes.instanceOf(UserStore).isRequired, | 98 | user: PropTypes.instanceOf(UserStore).isRequired, |
99 | features: PropTypes.instanceOf(FeatureStore).isRequired, | 99 | features: PropTypes.instanceOf(FeaturesStore).isRequired, |
100 | }).isRequired, | 100 | }).isRequired, |
101 | actions: PropTypes.shape({ | 101 | actions: PropTypes.shape({ |
102 | ui: PropTypes.shape({ | 102 | ui: PropTypes.shape({ |
diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js index a14a98554..5563c48bc 100644 --- a/src/containers/layout/AppLayoutContainer.js +++ b/src/containers/layout/AppLayoutContainer.js | |||
@@ -24,6 +24,7 @@ import { state as delayAppState } from '../../features/delayApp'; | |||
24 | import { workspaceActions } from '../../features/workspaces/actions'; | 24 | import { workspaceActions } from '../../features/workspaces/actions'; |
25 | import WorkspaceDrawer from '../../features/workspaces/components/WorkspaceDrawer'; | 25 | import WorkspaceDrawer from '../../features/workspaces/components/WorkspaceDrawer'; |
26 | import { workspaceStore } from '../../features/workspaces'; | 26 | import { workspaceStore } from '../../features/workspaces'; |
27 | import WorkspacesStore from '../../features/workspaces/store'; | ||
27 | 28 | ||
28 | export default @inject('stores', 'actions') @observer class AppLayoutContainer extends Component { | 29 | export default @inject('stores', 'actions') @observer class AppLayoutContainer extends Component { |
29 | static defaultProps = { | 30 | static defaultProps = { |
@@ -41,6 +42,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e | |||
41 | globalError, | 42 | globalError, |
42 | requests, | 43 | requests, |
43 | user, | 44 | user, |
45 | workspaces, | ||
44 | } = this.props.stores; | 46 | } = this.props.stores; |
45 | 47 | ||
46 | const { | 48 | const { |
@@ -79,7 +81,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e | |||
79 | const isLoadingServices = services.allServicesRequest.isExecuting | 81 | const isLoadingServices = services.allServicesRequest.isExecuting |
80 | && services.allServicesRequest.isExecutingFirstTime; | 82 | && services.allServicesRequest.isExecutingFirstTime; |
81 | 83 | ||
82 | if (isLoadingFeatures || isLoadingServices) { | 84 | if (isLoadingFeatures || isLoadingServices || workspaces.isLoadingWorkspaces) { |
83 | return ( | 85 | return ( |
84 | <ThemeProvider theme={ui.theme}> | 86 | <ThemeProvider theme={ui.theme}> |
85 | <AppLoader /> | 87 | <AppLoader /> |
@@ -174,6 +176,7 @@ AppLayoutContainer.wrappedComponent.propTypes = { | |||
174 | user: PropTypes.instanceOf(UserStore).isRequired, | 176 | user: PropTypes.instanceOf(UserStore).isRequired, |
175 | requests: PropTypes.instanceOf(RequestStore).isRequired, | 177 | requests: PropTypes.instanceOf(RequestStore).isRequired, |
176 | globalError: PropTypes.instanceOf(GlobalErrorStore).isRequired, | 178 | globalError: PropTypes.instanceOf(GlobalErrorStore).isRequired, |
179 | workspaces: PropTypes.instanceOf(WorkspacesStore).isRequired, | ||
177 | }).isRequired, | 180 | }).isRequired, |
178 | actions: PropTypes.shape({ | 181 | actions: PropTypes.shape({ |
179 | service: PropTypes.shape({ | 182 | service: PropTypes.shape({ |
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 9aba212be..698b5a3d9 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js | |||
@@ -313,7 +313,7 @@ EditSettingsScreen.wrappedComponent.propTypes = { | |||
313 | toggleTodosFeatureVisibility: PropTypes.func.isRequired, | 313 | toggleTodosFeatureVisibility: PropTypes.func.isRequired, |
314 | }).isRequired, | 314 | }).isRequired, |
315 | workspaces: PropTypes.shape({ | 315 | workspaces: PropTypes.shape({ |
316 | toggleAllWorkspacesLoadedSetting: PropTypes.func.isRequired, | 316 | toggleKeepAllWorkspacesLoadedSetting: PropTypes.func.isRequired, |
317 | }).isRequired, | 317 | }).isRequired, |
318 | }).isRequired, | 318 | }).isRequired, |
319 | }; | 319 | }; |
diff --git a/src/features/delayApp/index.js b/src/features/delayApp/index.js index bd0395376..5b28fb7c8 100644 --- a/src/features/delayApp/index.js +++ b/src/features/delayApp/index.js | |||
@@ -4,6 +4,7 @@ import DelayAppComponent from './Component'; | |||
4 | 4 | ||
5 | import { DEFAULT_FEATURES_CONFIG } from '../../config'; | 5 | import { DEFAULT_FEATURES_CONFIG } from '../../config'; |
6 | import { gaEvent, gaPage } from '../../lib/analytics'; | 6 | import { gaEvent, gaPage } from '../../lib/analytics'; |
7 | import { getUserWorkspacesRequest } from '../workspaces/api'; | ||
7 | 8 | ||
8 | const debug = require('debug')('Franz:feature:delayApp'); | 9 | const debug = require('debug')('Franz:feature:delayApp'); |
9 | 10 | ||
@@ -33,7 +34,13 @@ export default function init(stores) { | |||
33 | }; | 34 | }; |
34 | 35 | ||
35 | reaction( | 36 | reaction( |
36 | () => stores.user.isLoggedIn && stores.services.allServicesRequest.wasExecuted && stores.features.features.needToWaitToProceed && !stores.user.data.isPremium, | 37 | () => ( |
38 | stores.user.isLoggedIn | ||
39 | && stores.services.allServicesRequest.wasExecuted | ||
40 | && getUserWorkspacesRequest.wasExecuted | ||
41 | && stores.features.features.needToWaitToProceed | ||
42 | && !stores.user.data.isPremium | ||
43 | ), | ||
37 | (isEnabled) => { | 44 | (isEnabled) => { |
38 | if (isEnabled) { | 45 | if (isEnabled) { |
39 | debug('Enabling `delayApp` feature'); | 46 | debug('Enabling `delayApp` feature'); |
diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index 7f41cfc88..13227e033 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js | |||
@@ -45,6 +45,11 @@ export default class WorkspacesStore extends FeatureStore { | |||
45 | return getUserWorkspacesRequest.result || []; | 45 | return getUserWorkspacesRequest.result || []; |
46 | } | 46 | } |
47 | 47 | ||
48 | @computed get isLoadingWorkspaces() { | ||
49 | if (!this.isFeatureActive) return false; | ||
50 | return getUserWorkspacesRequest.isExecutingFirstTime; | ||
51 | } | ||
52 | |||
48 | @computed get settings() { | 53 | @computed get settings() { |
49 | return localStorage.getItem('workspaces') || {}; | 54 | return localStorage.getItem('workspaces') || {}; |
50 | } | 55 | } |