From 268db27162e8d2cd0252b1be9bf69006cf6323ca Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 4 Jul 2019 15:54:27 +0200 Subject: Add trial onboarding during signup --- src/stores/UserStore.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/stores/UserStore.js') 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 { @observable passwordRequest = new Request(this.api.user, 'password'); + @observable activateTrialRequest = new Request(this.api.user, 'activateTrial'); + @observable inviteRequest = new Request(this.api.user, 'invite'); @observable getUserInfoRequest = new CachedRequest(this.api.user, 'getInfo'); @@ -57,7 +59,7 @@ export default class UserStore extends Store { @observable accountType; - @observable hasCompletedSignup = null; + @observable hasCompletedSignup = false; @observable userData = {}; @@ -77,6 +79,7 @@ export default class UserStore extends Store { this.actions.user.retrievePassword.listen(this._retrievePassword.bind(this)); this.actions.user.logout.listen(this._logout.bind(this)); this.actions.user.signup.listen(this._signup.bind(this)); + this.actions.user.activateTrial.listen(this._activateTrial.bind(this)); this.actions.user.invite.listen(this._invite.bind(this)); this.actions.user.update.listen(this._update.bind(this)); this.actions.user.resetStatus.listen(this._resetStatus.bind(this)); @@ -199,6 +202,20 @@ export default class UserStore extends Store { gaEvent('User', 'retrievePassword'); } + @action async _activateTrial({ planId }) { + debug('activate trial', planId); + + this.activateTrialRequest.execute({ + plan: planId, + }); + + await this.activateTrialRequest._promise; + + this.stores.features.featuresRequest.invalidate({ immediately: true }); + + gaEvent('User', 'activateTrial'); + } + @action async _invite({ invites }) { const data = invites.filter(invite => invite.email !== ''); -- cgit v1.2.3-54-g00ecf