aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/components/ui/PremiumFeatureContainer/index.js4
-rw-r--r--src/containers/layout/AppLayoutContainer.js5
-rw-r--r--src/containers/settings/EditSettingsScreen.js2
-rw-r--r--src/features/delayApp/index.js9
-rw-r--r--src/features/workspaces/store.js5
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
11import styles from './styles'; 11import styles from './styles';
12import { gaEvent } from '../../../lib/analytics'; 12import { gaEvent } from '../../../lib/analytics';
13import { FeatureStore } from '../../../features/utils/FeatureStore'; 13import FeaturesStore from '../../../stores/FeaturesStore';
14 14
15const messages = defineMessages({ 15const 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';
24import { workspaceActions } from '../../features/workspaces/actions'; 24import { workspaceActions } from '../../features/workspaces/actions';
25import WorkspaceDrawer from '../../features/workspaces/components/WorkspaceDrawer'; 25import WorkspaceDrawer from '../../features/workspaces/components/WorkspaceDrawer';
26import { workspaceStore } from '../../features/workspaces'; 26import { workspaceStore } from '../../features/workspaces';
27import WorkspacesStore from '../../features/workspaces/store';
27 28
28export default @inject('stores', 'actions') @observer class AppLayoutContainer extends Component { 29export 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
5import { DEFAULT_FEATURES_CONFIG } from '../../config'; 5import { DEFAULT_FEATURES_CONFIG } from '../../config';
6import { gaEvent, gaPage } from '../../lib/analytics'; 6import { gaEvent, gaPage } from '../../lib/analytics';
7import { getUserWorkspacesRequest } from '../workspaces/api';
7 8
8const debug = require('debug')('Franz:feature:delayApp'); 9const 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 }