diff options
author | Stefan Malzner <stefan@adlk.io> | 2019-07-04 15:54:27 +0200 |
---|---|---|
committer | Stefan Malzner <stefan@adlk.io> | 2019-07-04 15:54:27 +0200 |
commit | 268db27162e8d2cd0252b1be9bf69006cf6323ca (patch) | |
tree | 6ca47ee4159ba79f88d8848ac2ba9a8a8a7700da /src/stores | |
parent | Merge branch 'release/5.2.0-beta.4' into feature/new-pricing (diff) | |
download | ferdium-app-268db27162e8d2cd0252b1be9bf69006cf6323ca.tar.gz ferdium-app-268db27162e8d2cd0252b1be9bf69006cf6323ca.tar.zst ferdium-app-268db27162e8d2cd0252b1be9bf69006cf6323ca.zip |
Add trial onboarding during signup
Diffstat (limited to 'src/stores')
-rw-r--r-- | src/stores/UserStore.js | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index b5423af3b..6d746254e 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js | |||
@@ -37,6 +37,8 @@ export default class UserStore extends Store { | |||
37 | 37 | ||
38 | @observable passwordRequest = new Request(this.api.user, 'password'); | 38 | @observable passwordRequest = new Request(this.api.user, 'password'); |
39 | 39 | ||
40 | @observable activateTrialRequest = new Request(this.api.user, 'activateTrial'); | ||
41 | |||
40 | @observable inviteRequest = new Request(this.api.user, 'invite'); | 42 | @observable inviteRequest = new Request(this.api.user, 'invite'); |
41 | 43 | ||
42 | @observable getUserInfoRequest = new CachedRequest(this.api.user, 'getInfo'); | 44 | @observable getUserInfoRequest = new CachedRequest(this.api.user, 'getInfo'); |
@@ -57,7 +59,7 @@ export default class UserStore extends Store { | |||
57 | 59 | ||
58 | @observable accountType; | 60 | @observable accountType; |
59 | 61 | ||
60 | @observable hasCompletedSignup = null; | 62 | @observable hasCompletedSignup = false; |
61 | 63 | ||
62 | @observable userData = {}; | 64 | @observable userData = {}; |
63 | 65 | ||
@@ -77,6 +79,7 @@ export default class UserStore extends Store { | |||
77 | this.actions.user.retrievePassword.listen(this._retrievePassword.bind(this)); | 79 | this.actions.user.retrievePassword.listen(this._retrievePassword.bind(this)); |
78 | this.actions.user.logout.listen(this._logout.bind(this)); | 80 | this.actions.user.logout.listen(this._logout.bind(this)); |
79 | this.actions.user.signup.listen(this._signup.bind(this)); | 81 | this.actions.user.signup.listen(this._signup.bind(this)); |
82 | this.actions.user.activateTrial.listen(this._activateTrial.bind(this)); | ||
80 | this.actions.user.invite.listen(this._invite.bind(this)); | 83 | this.actions.user.invite.listen(this._invite.bind(this)); |
81 | this.actions.user.update.listen(this._update.bind(this)); | 84 | this.actions.user.update.listen(this._update.bind(this)); |
82 | this.actions.user.resetStatus.listen(this._resetStatus.bind(this)); | 85 | this.actions.user.resetStatus.listen(this._resetStatus.bind(this)); |
@@ -199,6 +202,20 @@ export default class UserStore extends Store { | |||
199 | gaEvent('User', 'retrievePassword'); | 202 | gaEvent('User', 'retrievePassword'); |
200 | } | 203 | } |
201 | 204 | ||
205 | @action async _activateTrial({ planId }) { | ||
206 | debug('activate trial', planId); | ||
207 | |||
208 | this.activateTrialRequest.execute({ | ||
209 | plan: planId, | ||
210 | }); | ||
211 | |||
212 | await this.activateTrialRequest._promise; | ||
213 | |||
214 | this.stores.features.featuresRequest.invalidate({ immediately: true }); | ||
215 | |||
216 | gaEvent('User', 'activateTrial'); | ||
217 | } | ||
218 | |||
202 | @action async _invite({ invites }) { | 219 | @action async _invite({ invites }) { |
203 | const data = invites.filter(invite => invite.email !== ''); | 220 | const data = invites.filter(invite => invite.email !== ''); |
204 | 221 | ||