Skip to content

Commit ad7fb84

Browse files
authored
feat(Workspaces): Only load workspace related services
Only load workspace related services
2 parents 9e539a8 + d3009b9 commit ad7fb84

File tree

5 files changed

+20
-5
lines changed

5 files changed

+20
-5
lines changed

src/components/ui/PremiumFeatureContainer/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import UserStore from '../../../stores/UserStore';
1010

1111
import styles from './styles';
1212
import { gaEvent } from '../../../lib/analytics';
13-
import { FeatureStore } from '../../../features/utils/FeatureStore';
13+
import FeaturesStore from '../../../stores/FeaturesStore';
1414

1515
const messages = defineMessages({
1616
action: {
@@ -96,7 +96,7 @@ PremiumFeatureContainer.wrappedComponent.propTypes = {
9696
children: oneOrManyChildElements.isRequired,
9797
stores: PropTypes.shape({
9898
user: PropTypes.instanceOf(UserStore).isRequired,
99-
features: PropTypes.instanceOf(FeatureStore).isRequired,
99+
features: PropTypes.instanceOf(FeaturesStore).isRequired,
100100
}).isRequired,
101101
actions: PropTypes.shape({
102102
ui: PropTypes.shape({

src/containers/layout/AppLayoutContainer.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { state as delayAppState } from '../../features/delayApp';
2424
import { workspaceActions } from '../../features/workspaces/actions';
2525
import WorkspaceDrawer from '../../features/workspaces/components/WorkspaceDrawer';
2626
import { workspaceStore } from '../../features/workspaces';
27+
import WorkspacesStore from '../../features/workspaces/store';
2728

2829
export default @inject('stores', 'actions') @observer class AppLayoutContainer extends Component {
2930
static defaultProps = {
@@ -41,6 +42,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e
4142
globalError,
4243
requests,
4344
user,
45+
workspaces,
4446
} = this.props.stores;
4547

4648
const {
@@ -79,7 +81,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e
7981
const isLoadingServices = services.allServicesRequest.isExecuting
8082
&& services.allServicesRequest.isExecutingFirstTime;
8183

82-
if (isLoadingFeatures || isLoadingServices) {
84+
if (isLoadingFeatures || isLoadingServices || workspaces.isLoadingWorkspaces) {
8385
return (
8486
<ThemeProvider theme={ui.theme}>
8587
<AppLoader />
@@ -174,6 +176,7 @@ AppLayoutContainer.wrappedComponent.propTypes = {
174176
user: PropTypes.instanceOf(UserStore).isRequired,
175177
requests: PropTypes.instanceOf(RequestStore).isRequired,
176178
globalError: PropTypes.instanceOf(GlobalErrorStore).isRequired,
179+
workspaces: PropTypes.instanceOf(WorkspacesStore).isRequired,
177180
}).isRequired,
178181
actions: PropTypes.shape({
179182
service: PropTypes.shape({

src/containers/settings/EditSettingsScreen.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ EditSettingsScreen.wrappedComponent.propTypes = {
313313
toggleTodosFeatureVisibility: PropTypes.func.isRequired,
314314
}).isRequired,
315315
workspaces: PropTypes.shape({
316-
toggleAllWorkspacesLoadedSetting: PropTypes.func.isRequired,
316+
toggleKeepAllWorkspacesLoadedSetting: PropTypes.func.isRequired,
317317
}).isRequired,
318318
}).isRequired,
319319
};

src/features/delayApp/index.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import DelayAppComponent from './Component';
44

55
import { DEFAULT_FEATURES_CONFIG } from '../../config';
66
import { gaEvent, gaPage } from '../../lib/analytics';
7+
import { getUserWorkspacesRequest } from '../workspaces/api';
78

89
const debug = require('debug')('Franz:feature:delayApp');
910

@@ -33,7 +34,13 @@ export default function init(stores) {
3334
};
3435

3536
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+
),
3744
(isEnabled) => {
3845
if (isEnabled) {
3946
debug('Enabling `delayApp` feature');

src/features/workspaces/store.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ export default class WorkspacesStore extends FeatureStore {
4545
return getUserWorkspacesRequest.result || [];
4646
}
4747

48+
@computed get isLoadingWorkspaces() {
49+
if (!this.isFeatureActive) return false;
50+
return getUserWorkspacesRequest.isExecutingFirstTime;
51+
}
52+
4853
@computed get settings() {
4954
return localStorage.getItem('workspaces') || {};
5055
}

0 commit comments

Comments
 (0)