diff options
Diffstat (limited to 'src/features/delayApp/index.js')
-rw-r--r-- | src/features/delayApp/index.js | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/features/delayApp/index.js b/src/features/delayApp/index.js index d5c544b78..28aa50eb2 100644 --- a/src/features/delayApp/index.js +++ b/src/features/delayApp/index.js | |||
@@ -3,6 +3,7 @@ import moment from 'moment'; | |||
3 | import DelayAppComponent from './Component'; | 3 | import DelayAppComponent from './Component'; |
4 | 4 | ||
5 | import { DEFAULT_FEATURES_CONFIG } from '../../config'; | 5 | import { DEFAULT_FEATURES_CONFIG } from '../../config'; |
6 | import { gaEvent } from '../../lib/analytics'; | ||
6 | 7 | ||
7 | const debug = require('debug')('Franz:feature:delayApp'); | 8 | const debug = require('debug')('Franz:feature:delayApp'); |
8 | 9 | ||
@@ -22,19 +23,18 @@ function setVisibility(value) { | |||
22 | } | 23 | } |
23 | 24 | ||
24 | export default function init(stores) { | 25 | export default function init(stores) { |
25 | reaction( | 26 | debug('Initializing `delayApp` feature'); |
26 | () => stores.features.features.needToWaitToProceed, | ||
27 | (enabled, r) => { | ||
28 | if (enabled) { | ||
29 | debug('Initializing `delayApp` feature'); | ||
30 | 27 | ||
31 | // Dispose the reaction to run this only once | 28 | let shownAfterLaunch = false; |
32 | r.dispose(); | 29 | let timeLastDelay = moment(); |
33 | 30 | ||
34 | const { needToWaitToProceedConfig: globalConfig } = stores.features.features; | 31 | reaction( |
32 | () => stores.features.features.needToWaitToProceed && !stores.user.data.isPremium, | ||
33 | (isEnabled) => { | ||
34 | if (isEnabled) { | ||
35 | debug('Enabling `delayApp` feature'); | ||
35 | 36 | ||
36 | let shownAfterLaunch = false; | 37 | const { needToWaitToProceedConfig: globalConfig } = stores.features.features; |
37 | let timeLastDelay = moment(); | ||
38 | 38 | ||
39 | config.delayOffset = globalConfig.delayOffset !== undefined ? globalConfig.delayOffset : DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.delayOffset; | 39 | config.delayOffset = globalConfig.delayOffset !== undefined ? globalConfig.delayOffset : DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.delayOffset; |
40 | config.delayDuration = globalConfig.wait !== undefined ? globalConfig.wait : DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.wait; | 40 | config.delayDuration = globalConfig.wait !== undefined ? globalConfig.wait : DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.wait; |
@@ -50,6 +50,7 @@ export default function init(stores) { | |||
50 | debug(`App will be delayed for ${config.delayDuration / 1000}s`); | 50 | debug(`App will be delayed for ${config.delayDuration / 1000}s`); |
51 | 51 | ||
52 | setVisibility(true); | 52 | setVisibility(true); |
53 | gaEvent('delayApp', 'show', 'Delay App Feature'); | ||
53 | 54 | ||
54 | timeLastDelay = moment(); | 55 | timeLastDelay = moment(); |
55 | shownAfterLaunch = true; | 56 | shownAfterLaunch = true; |
@@ -61,6 +62,8 @@ export default function init(stores) { | |||
61 | }, DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.wait + 1000); // timer needs to be able to hit 0 | 62 | }, DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.wait + 1000); // timer needs to be able to hit 0 |
62 | } | 63 | } |
63 | }); | 64 | }); |
65 | } else { | ||
66 | setVisibility(false); | ||
64 | } | 67 | } |
65 | }, | 68 | }, |
66 | ); | 69 | ); |