aboutsummaryrefslogtreecommitdiffstats
path: root/src/stores
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2019-07-04 15:54:27 +0200
committerLibravatar Stefan Malzner <stefan@adlk.io>2019-07-04 15:54:27 +0200
commit268db27162e8d2cd0252b1be9bf69006cf6323ca (patch)
tree6ca47ee4159ba79f88d8848ac2ba9a8a8a7700da /src/stores
parentMerge branch 'release/5.2.0-beta.4' into feature/new-pricing (diff)
downloadferdium-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.js19
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