@frontegg/redux-store 4.16.1 → 4.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,10 @@ function createModuleCaseReducers() {
18
18
  prepare: function (payload) { return ({ payload: payload }); },
19
19
  reducer: function (state, action) { return (tslib.__assign(tslib.__assign({}, state), { error: action.payload, loading: false })); },
20
20
  },
21
+ setState: {
22
+ prepare: function (payload) { return ({ payload: payload }); },
23
+ reducer: function (state, action) { return (tslib.__assign(tslib.__assign({}, state), action.payload)); },
24
+ },
21
25
  };
22
26
  }
23
27
  function createKeyCaseReducer(key, setState) {
@@ -48,7 +52,7 @@ var _a$6 = toolkit.createSlice({
48
52
  prepare: function (payload) { return ({ payload: payload }); },
49
53
  reducer: function (state, action) { return (tslib.__assign(tslib.__assign({}, state), { plans: action.payload })); },
50
54
  } }),
51
- }), sliceActions$1 = _a$6.actions, reducer$6 = _a$6.reducer, name$6 = _a$6.name;
55
+ }), sliceActions$1 = _a$6.actions, reducer$7 = _a$6.reducer, name$6 = _a$6.name;
52
56
  var actions$7 = tslib.__assign({ loadPlans: toolkit.createAction(name$6 + "/loadPlans") }, sliceActions$1);
53
57
 
54
58
  exports.PaymentProvider = void 0;
@@ -88,7 +92,7 @@ var _a$5 = toolkit.createSlice({
88
92
  name: constants.subscriptionsStoreName + "/config",
89
93
  initialState: configInitialState,
90
94
  reducers: reducers$5,
91
- }), configActions = _a$5.actions, reducer$5 = _a$5.reducer, name$5 = _a$5.name;
95
+ }), configActions = _a$5.actions, reducer$6 = _a$5.reducer, name$5 = _a$5.name;
92
96
  var actions$6 = tslib.__assign({ loadPaymentConfiguration: toolkit.createAction(name$5 + "/loadPaymentConfiguration") }, configActions);
93
97
 
94
98
  var initialBillingInformationState = {
@@ -112,38 +116,45 @@ var _a$4 = toolkit.createSlice({
112
116
  name: constants.subscriptionsStoreName + "/billing/information",
113
117
  initialState: initialBillingInformationState,
114
118
  reducers: reducers$4,
115
- }), reducer$4 = _a$4.reducer, overviewActions = _a$4.actions, name$4 = _a$4.name;
119
+ }), reducer$5 = _a$4.reducer, overviewActions = _a$4.actions, name$4 = _a$4.name;
116
120
  var actions$5 = tslib.__assign({ loadBillingInformation: toolkit.createAction(name$4 + "/loadBillingInformation"), cancelSubscription: toolkit.createAction(name$4 + "/cancelSubscription"), renewSubscription: toolkit.createAction(name$4 + "/renewSubscription") }, overviewActions);
117
121
 
118
122
  var initialPaymentMethodState = {
119
123
  loading: false,
120
124
  error: null,
121
125
  };
122
- var reducers$3 = tslib.__assign(tslib.__assign({}, createModuleCaseReducers()), { setPaymentMethod: {
126
+ var reducers$3 = tslib.__assign(tslib.__assign({}, createModuleCaseReducers()), { setState: {
123
127
  prepare: function (payload) { return ({ payload: payload }); },
124
- reducer: function (state, action) { return (tslib.__assign(tslib.__assign({}, state), { paymentMethod: action.payload })); },
128
+ reducer: function (state, action) { return (tslib.__assign(tslib.__assign({}, state), action.payload)); },
125
129
  } });
126
130
  var _a$3 = toolkit.createSlice({
127
131
  name: constants.subscriptionsStoreName + "/billing/payment",
128
132
  initialState: initialPaymentMethodState,
129
133
  reducers: reducers$3,
130
- }), reducer$3 = _a$3.reducer, paymentActions = _a$3.actions, name$3 = _a$3.name;
131
- var actions$4 = tslib.__assign({ loadPaymentMethod: toolkit.createAction(name$3 + "/loadPaymentMethod"), updatePaymentMethodBillingDetails: toolkit.createAction(name$3 + "/updatePaymentMethodBillingDetails", function (payload) { return ({ payload: payload }); }) }, paymentActions);
134
+ }), reducer$4 = _a$3.reducer, paymentActions = _a$3.actions, name$3 = _a$3.name;
135
+ var actions$4 = tslib.__assign({ loadPaymentMethod: toolkit.createAction(name$3 + "/loadPaymentMethod"), submitPaymentMethod: toolkit.createAction(name$3 + "/submitPaymentMethod"), submitPaymentMethodError: toolkit.createAction(name$3 + "/submitPaymentMethodError"), submitPaymentMethodSuccess: toolkit.createAction(name$3 + "/submitPaymentMethodSuccess"), updatePaymentMethodBillingDetails: toolkit.createAction(name$3 + "/updateBillingDetails", function (payload) { return ({ payload: payload }); }) }, paymentActions);
132
136
 
133
137
  var initialInvoicesState = {
134
138
  loading: false,
135
139
  error: null,
136
140
  invoices: [],
141
+ invoiceDownload: {
142
+ loading: false,
143
+ error: null
144
+ }
137
145
  };
138
146
  var reducers$2 = tslib.__assign(tslib.__assign({}, createModuleCaseReducers()), { setInvoices: {
139
147
  prepare: function (payload) { return ({ payload: payload }); },
140
148
  reducer: function (state, action) { return (tslib.__assign(tslib.__assign({}, state), { invoices: action.payload })); },
149
+ }, setInvoiceDownloadState: {
150
+ prepare: function (payload) { return ({ payload: payload }); },
151
+ reducer: function (state, action) { return (tslib.__assign(tslib.__assign({}, state), { invoiceDownload: tslib.__assign(tslib.__assign({}, state.invoiceDownload), action.payload) })); },
141
152
  } });
142
153
  var _a$2 = toolkit.createSlice({
143
154
  name: constants.subscriptionsStoreName + "/billing/invoices",
144
155
  initialState: initialInvoicesState,
145
156
  reducers: reducers$2,
146
- }), reducer$2 = _a$2.reducer, sliceActions = _a$2.actions, name$2 = _a$2.name;
157
+ }), reducer$3 = _a$2.reducer, sliceActions = _a$2.actions, name$2 = _a$2.name;
147
158
  var actions$3 = tslib.__assign({ loadInvoices: toolkit.createAction(name$2 + "/loadInvoices"), downloadInvoice: toolkit.createAction(name$2 + "/downloadInvoice", function (payload) { return ({ payload: payload }); }) }, sliceActions);
148
159
 
149
160
  var billingInitialState = {
@@ -157,9 +168,9 @@ var billingActions = {
157
168
  paymentMethod: actions$4,
158
169
  };
159
170
  var billingReducer = toolkit.combineReducers({
160
- invoices: reducer$2,
161
- information: reducer$4,
162
- paymentMethod: reducer$3,
171
+ invoices: reducer$3,
172
+ information: reducer$5,
173
+ paymentMethod: reducer$4,
163
174
  });
164
175
 
165
176
  exports.CheckoutStatus = void 0;
@@ -184,7 +195,6 @@ var checkoutInitialState = {
184
195
  error: null,
185
196
  status: exports.CheckoutStatus.SELECTION,
186
197
  checkoutPlanId: null,
187
- checkoutClientSecret: null,
188
198
  };
189
199
  var reducers$1 = tslib.__assign(tslib.__assign({}, createModuleCaseReducers()), { setStatus: {
190
200
  prepare: function (payload) { return ({ payload: payload }); },
@@ -192,53 +202,65 @@ var reducers$1 = tslib.__assign(tslib.__assign({}, createModuleCaseReducers()),
192
202
  }, selectPlan: {
193
203
  prepare: function (payload) { return ({ payload: payload }); },
194
204
  reducer: function (state, action) { return (tslib.__assign(tslib.__assign({}, state), { checkoutPlanId: action.payload })); },
195
- }, setStripeClientSecret: {
196
- prepare: function (payload) { return ({ payload: payload }); },
197
- reducer: function (state, action) {
198
- state.checkoutClientSecret = action.payload;
199
- },
200
205
  } });
201
206
  var _a$1 = toolkit.createSlice({
202
207
  name: constants.subscriptionsStoreName + "/checkout",
203
208
  initialState: checkoutInitialState,
204
209
  reducers: reducers$1,
205
- }), checkoutActions = _a$1.actions, reducer$1 = _a$1.reducer, name$1 = _a$1.name;
206
- var actions$2 = tslib.__assign({ loadCheckoutSecret: toolkit.createAction(name$1 + "/loadCheckoutSecret"), checkoutPlan: toolkit.createAction(name$1 + "/checkoutPlan", function (payload) { return ({ payload: payload }); }), resetCheckout: toolkit.createAction(name$1 + "/resetCheckout"), confirmCheckout: toolkit.createAction(name$1 + "/confirmCheckout"), cancelCheckout: toolkit.createAction(name$1 + "/cancelCheckout"), submitCheckout: toolkit.createAction(name$1 + "/submitCheckout"), errorCheckout: toolkit.createAction(name$1 + "/errorCheckout", function (payload) { return ({ payload: payload, }); }), checkoutEvent: toolkit.createAction(name$1 + "/checkoutEvent", function (payload) { return ({ payload: payload, }); }) }, checkoutActions);
210
+ }), checkoutActions = _a$1.actions, reducer$2 = _a$1.reducer, name$1 = _a$1.name;
211
+ var actions$2 = tslib.__assign({ checkoutPlan: toolkit.createAction(name$1 + "/checkoutPlan", function (payload) { return ({ payload: payload }); }), resetCheckout: toolkit.createAction(name$1 + "/resetCheckout"), confirmCheckout: toolkit.createAction(name$1 + "/confirmCheckout", function (payload) { return ({ payload: payload, }); }), cancelCheckout: toolkit.createAction(name$1 + "/cancelCheckout"), submitCheckout: toolkit.createAction(name$1 + "/submitCheckout"), errorCheckout: toolkit.createAction(name$1 + "/errorCheckout", function (payload) { return ({ payload: payload, }); }), checkoutEvent: toolkit.createAction(name$1 + "/checkoutEvent", function (payload) { return ({ payload: payload, }); }) }, checkoutActions);
212
+
213
+ var initialSubscriptionStripeState = {
214
+ loading: false,
215
+ error: null,
216
+ cardSetupIntentSecret: null,
217
+ };
218
+ var reducers = tslib.__assign(tslib.__assign({}, createModuleCaseReducers()), { setStripeState: {
219
+ prepare: function (payload) { return ({ payload: payload }); },
220
+ reducer: function (state, action) { return (tslib.__assign(tslib.__assign({}, state), action.payload)); },
221
+ } });
222
+ var _a = toolkit.createSlice({
223
+ name: constants.subscriptionsStoreName + "/stripe",
224
+ initialState: initialSubscriptionStripeState,
225
+ reducers: reducers,
226
+ }), reducer$1 = _a.reducer, reducerActions = _a.actions, name = _a.name;
227
+ var actions$1 = tslib.__assign({ loadCustomer: toolkit.createAction(name + "/loadCustomer"), createCardSetupIntentSecret: toolkit.createAction(name + "/createCardSetupIntentSecret") }, reducerActions);
207
228
 
208
229
  var initialState = {
209
230
  config: configInitialState,
210
231
  plans: plansInitialState,
211
232
  checkout: checkoutInitialState,
212
233
  billing: billingInitialState,
234
+ stripe: initialSubscriptionStripeState,
213
235
  };
214
- var actions$1 = {
236
+ var actions = {
215
237
  config: actions$6,
216
238
  billing: billingActions,
217
239
  plans: actions$7,
218
240
  checkout: actions$2,
241
+ stripe: actions$1,
219
242
  };
220
243
  var reducer = toolkit.combineReducers({
221
- config: reducer$5,
244
+ config: reducer$6,
222
245
  billing: billingReducer,
223
- plans: reducer$6,
224
- checkout: reducer$1,
246
+ plans: reducer$7,
247
+ checkout: reducer$2,
248
+ stripe: reducer$1,
225
249
  });
226
250
 
227
- var initialSubscriptionStripeState = {
228
- loading: false,
229
- error: null,
230
- };
231
- var reducers = tslib.__assign(tslib.__assign({}, createModuleCaseReducers()), { setStripeState: {
232
- prepare: function (payload) { return ({ payload: payload }); },
233
- reducer: function (state, action) { return (tslib.__assign(tslib.__assign({}, state), action.payload)); },
234
- } });
235
- var _a = toolkit.createSlice({
236
- name: constants.subscriptionsStoreName + "/stripe",
237
- initialState: initialSubscriptionStripeState,
238
- reducers: reducers,
239
- }); _a.reducer; var reducerActions = _a.actions, name = _a.name;
240
- var actions = tslib.__assign({ loadCustomer: toolkit.createAction(name + "/loadCustomer") }, reducerActions);
241
-
251
+ function subscriptionStripeSagas() {
252
+ return tslib.__generator(this, function (_a) {
253
+ switch (_a.label) {
254
+ case 0: return [4 /*yield*/, effects.takeEvery(actions$1.loadCustomer, loadStripeCustomer)];
255
+ case 1:
256
+ _a.sent();
257
+ return [4 /*yield*/, effects.takeEvery(actions$1.createCardSetupIntentSecret, createCardSetupIntentSecret)];
258
+ case 2:
259
+ _a.sent();
260
+ return [2 /*return*/];
261
+ }
262
+ });
263
+ }
242
264
  function loadStripeCustomer() {
243
265
  var profile, response, e_1;
244
266
  return tslib.__generator(this, function (_a) {
@@ -250,11 +272,11 @@ function loadStripeCustomer() {
250
272
  case 1:
251
273
  profile = _a.sent();
252
274
  if (!(!profile || !profile.id)) return [3 /*break*/, 3];
253
- return [4 /*yield*/, effects.put(actions.setError('Not authorized'))];
275
+ return [4 /*yield*/, effects.put(actions$1.setError('Not authorized'))];
254
276
  case 2:
255
277
  _a.sent();
256
278
  return [2 /*return*/];
257
- case 3: return [4 /*yield*/, effects.put(actions.setLoading(true))];
279
+ case 3: return [4 /*yield*/, effects.put(actions$1.setLoading(true))];
258
280
  case 4:
259
281
  _a.sent();
260
282
  _a.label = 5;
@@ -268,7 +290,7 @@ function loadStripeCustomer() {
268
290
  case 7:
269
291
  _a.sent();
270
292
  _a.label = 8;
271
- case 8: return [4 /*yield*/, effects.put(actions.setLoading(false))];
293
+ case 8: return [4 /*yield*/, effects.put(actions$1.setLoading(false))];
272
294
  case 9:
273
295
  _a.sent();
274
296
  return [3 /*break*/, 15];
@@ -279,7 +301,7 @@ function loadStripeCustomer() {
279
301
  case 11:
280
302
  _a.sent();
281
303
  return [3 /*break*/, 14];
282
- case 12: return [4 /*yield*/, effects.put(actions.setError(e_1.message))];
304
+ case 12: return [4 /*yield*/, effects.put(actions$1.setError(e_1.message))];
283
305
  case 13:
284
306
  _a.sent();
285
307
  _a.label = 14;
@@ -303,13 +325,50 @@ function createCustomer(profile) {
303
325
  return [3 /*break*/, 4];
304
326
  case 2:
305
327
  e_2 = _a.sent();
306
- return [4 /*yield*/, effects.put(actions.setError(e_2.message))];
328
+ return [4 /*yield*/, effects.put(actions$1.setError(e_2.message))];
307
329
  case 3:
308
330
  _a.sent();
309
331
  return [3 /*break*/, 4];
310
332
  case 4: return [2 /*return*/];
311
333
  }
312
334
  });
335
+ }
336
+ function createCardSetupIntentSecret(_a) {
337
+ var setupIntentSecret, e_3;
338
+ var payload = _a.payload;
339
+ return tslib.__generator(this, function (_b) {
340
+ switch (_b.label) {
341
+ case 0: return [4 /*yield*/, effects.put(actions$1.setStripeState({
342
+ loading: true,
343
+ error: null,
344
+ cardSetupIntentSecret: null
345
+ }))];
346
+ case 1:
347
+ _b.sent();
348
+ _b.label = 2;
349
+ case 2:
350
+ _b.trys.push([2, 5, , 7]);
351
+ return [4 /*yield*/, effects.call(restApi.api.subscriptions.createStripePaymentMethodSetupIntentSecret, {
352
+ paymentMethodId: payload || undefined
353
+ })];
354
+ case 3:
355
+ setupIntentSecret = (_b.sent()).setupIntentSecret;
356
+ return [4 /*yield*/, effects.put(actions$1.setStripeState({
357
+ cardSetupIntentSecret: setupIntentSecret,
358
+ loading: false
359
+ }))];
360
+ case 4:
361
+ _b.sent();
362
+ return [3 /*break*/, 7];
363
+ case 5:
364
+ e_3 = _b.sent();
365
+ return [4 /*yield*/, effects.put(actions$1.setError(e_3.message))];
366
+ case 6:
367
+ _b.sent();
368
+ return [3 /*break*/, 7];
369
+ case 7: return [2 /*return*/];
370
+ }
371
+ });
313
372
  }
314
373
 
315
374
  function toPrice(amount) {
@@ -472,7 +531,7 @@ function cancelSubscription() {
472
531
  _b.sent();
473
532
  return [2 /*return*/];
474
533
  case 3:
475
- _a = overview.subscription, subscriptionId = _a.id, cancellation = _a.cancellation, status = _a.status;
534
+ _a = overview.subscription || {}, subscriptionId = _a.id, cancellation = _a.cancellation, status = _a.status;
476
535
  isCancellable = !cancellation && status === exports.SubscriptionStatus.ACTIVE;
477
536
  if (!isCancellable) return [3 /*break*/, 11];
478
537
  _b.label = 4;
@@ -509,7 +568,7 @@ function renewSubscription() {
509
568
  var overview, _a, subscriptionId, cancellation, renewable, e_5;
510
569
  return tslib.__generator(this, function (_b) {
511
570
  switch (_b.label) {
512
- case 0: return [4 /*yield*/, effects.select(function (state) { return state.subscriptions.billing.overview; })];
571
+ case 0: return [4 /*yield*/, effects.select(function (state) { return state.subscriptions.billing.information; })];
513
572
  case 1:
514
573
  overview = _b.sent();
515
574
  if (!overview.subscription) {
@@ -521,8 +580,8 @@ function renewSubscription() {
521
580
  _b.sent();
522
581
  return [2 /*return*/];
523
582
  case 3:
524
- _a = overview.subscription, subscriptionId = _a.id, cancellation = _a.cancellation;
525
- renewable = cancellation && cancellation.policy === exports.SubscriptionCancellationPolicy.AT_PERIOD_END;
583
+ _a = overview.subscription || {}, subscriptionId = _a.id, cancellation = _a.cancellation;
584
+ renewable = (cancellation === null || cancellation === void 0 ? void 0 : cancellation.policy) === exports.SubscriptionCancellationPolicy.AT_PERIOD_END;
526
585
  if (!renewable) return [3 /*break*/, 11];
527
586
  _b.label = 4;
528
587
  case 4:
@@ -573,11 +632,20 @@ function subscriptionsPaymentMethodSagas() {
573
632
  case 0: return [4 /*yield*/, effects.takeEvery(actions$4.loadPaymentMethod, loadPaymentMethod)];
574
633
  case 1:
575
634
  _a.sent();
576
- return [4 /*yield*/, effects.takeEvery(actions$4.updatePaymentMethodBillingDetails, updatePaymentMethodBillingDetails)];
635
+ return [4 /*yield*/, effects.takeEvery(actions$4.submitPaymentMethod, submitPaymentMethod)];
577
636
  case 2:
578
637
  _a.sent();
579
- return [4 /*yield*/, effects.takeEvery(actions$2.checkoutEvent, checkoutEvent$1)];
638
+ return [4 /*yield*/, effects.takeEvery(actions$4.submitPaymentMethodError, submitPaymentMethodError)];
580
639
  case 3:
640
+ _a.sent();
641
+ return [4 /*yield*/, effects.takeEvery(actions$4.submitPaymentMethodSuccess, submitPaymentMethodSuccess)];
642
+ case 4:
643
+ _a.sent();
644
+ return [4 /*yield*/, effects.takeEvery(actions$4.updatePaymentMethodBillingDetails, updateBillingDetails)];
645
+ case 5:
646
+ _a.sent();
647
+ return [4 /*yield*/, effects.takeEvery(actions$2.checkoutEvent, checkoutEvent$1)];
648
+ case 6:
581
649
  _a.sent();
582
650
  return [2 /*return*/];
583
651
  }
@@ -592,27 +660,31 @@ function loadPaymentMethod() {
592
660
  _a.sent();
593
661
  _a.label = 2;
594
662
  case 2:
595
- _a.trys.push([2, 6, , 8]);
663
+ _a.trys.push([2, 8, , 10]);
596
664
  return [4 /*yield*/, effects.call(restApi.api.subscriptions.getPaymentMethods)];
597
665
  case 3:
598
666
  paymentMethods = _a.sent();
599
667
  paymentMethod = paymentMethods[0];
600
668
  if (!paymentMethod) return [3 /*break*/, 5];
601
- return [4 /*yield*/, effects.put(actions$4.setPaymentMethod(tslib.__assign({}, paymentMethod)))];
669
+ return [4 /*yield*/, effects.put(actions$4.setState({
670
+ paymentMethod: paymentMethod,
671
+ loading: false,
672
+ }))];
602
673
  case 4:
603
674
  _a.sent();
604
- _a.label = 5;
605
- case 5: return [3 /*break*/, 8];
675
+ return [3 /*break*/, 7];
676
+ case 5: return [4 /*yield*/, effects.put(actions$4.setLoading(false))];
606
677
  case 6:
678
+ _a.sent();
679
+ _a.label = 7;
680
+ case 7: return [3 /*break*/, 10];
681
+ case 8:
607
682
  e_1 = _a.sent();
608
683
  return [4 /*yield*/, effects.put(actions$4.setError(e_1.message))];
609
- case 7:
610
- _a.sent();
611
- return [3 /*break*/, 8];
612
- case 8: return [4 /*yield*/, effects.put(actions$4.setLoading(false))];
613
684
  case 9:
614
685
  _a.sent();
615
- return [2 /*return*/];
686
+ return [3 /*break*/, 10];
687
+ case 10: return [2 /*return*/];
616
688
  }
617
689
  });
618
690
  }
@@ -630,7 +702,7 @@ function checkoutEvent$1(_a) {
630
702
  }
631
703
  });
632
704
  }
633
- function updatePaymentMethodBillingDetails(_a) {
705
+ function updateBillingDetails(_a) {
634
706
  var id, email, address, callback, e_2;
635
707
  var payload = _a.payload;
636
708
  return tslib.__generator(this, function (_b) {
@@ -663,6 +735,37 @@ function updatePaymentMethodBillingDetails(_a) {
663
735
  return [2 /*return*/];
664
736
  }
665
737
  });
738
+ }
739
+ function submitPaymentMethod() {
740
+ return tslib.__generator(this, function (_a) {
741
+ switch (_a.label) {
742
+ case 0: return [4 /*yield*/, effects.put(actions$4.setLoading(true))];
743
+ case 1:
744
+ _a.sent();
745
+ return [2 /*return*/];
746
+ }
747
+ });
748
+ }
749
+ function submitPaymentMethodError(_a) {
750
+ var error = _a.payload;
751
+ return tslib.__generator(this, function (_b) {
752
+ switch (_b.label) {
753
+ case 0: return [4 /*yield*/, effects.put(actions$4.setError(error))];
754
+ case 1:
755
+ _b.sent();
756
+ return [2 /*return*/];
757
+ }
758
+ });
759
+ }
760
+ function submitPaymentMethodSuccess() {
761
+ return tslib.__generator(this, function (_a) {
762
+ switch (_a.label) {
763
+ case 0: return [4 /*yield*/, effects.put(actions$4.loadPaymentMethod())];
764
+ case 1:
765
+ _a.sent();
766
+ return [2 /*return*/];
767
+ }
768
+ });
666
769
  }
667
770
 
668
771
  function subscriptionInvoicesSagas() {
@@ -761,7 +864,7 @@ function downloadInvoice(_a) {
761
864
  var payload = _a.payload;
762
865
  return tslib.__generator(this, function (_b) {
763
866
  switch (_b.label) {
764
- case 0: return [4 /*yield*/, effects.put(actions$3.setLoading(true))];
867
+ case 0: return [4 /*yield*/, effects.put(actions$3.setInvoiceDownloadState({ loading: true, error: null }))];
765
868
  case 1:
766
869
  _b.sent();
767
870
  _b.label = 2;
@@ -770,13 +873,13 @@ function downloadInvoice(_a) {
770
873
  return [4 /*yield*/, effects.call(restApi.api.subscriptions.getSubscriptionInvoicePdf, payload.invoiceId, payload.filename)];
771
874
  case 3:
772
875
  _b.sent();
773
- return [4 /*yield*/, effects.put(actions$3.setLoading(false))];
876
+ return [4 /*yield*/, effects.put(actions$3.setInvoiceDownloadState({ loading: false, error: null }))];
774
877
  case 4:
775
878
  _b.sent();
776
879
  return [3 /*break*/, 7];
777
880
  case 5:
778
881
  e_2 = _b.sent();
779
- return [4 /*yield*/, effects.put(actions$3.setError(e_2.message))];
882
+ return [4 /*yield*/, effects.put(actions$3.setInvoiceDownloadState({ loading: false, error: e_2.message || null }))];
780
883
  case 6:
781
884
  _b.sent();
782
885
  return [3 /*break*/, 7];
@@ -817,26 +920,23 @@ function billingSagas() {
817
920
  function checkoutSagas() {
818
921
  return tslib.__generator(this, function (_a) {
819
922
  switch (_a.label) {
820
- case 0: return [4 /*yield*/, effects.takeEvery(actions$2.loadCheckoutSecret, loadCheckoutSecret)];
923
+ case 0: return [4 /*yield*/, effects.takeEvery(actions$2.checkoutPlan, checkoutPlan)];
821
924
  case 1:
822
- _a.sent();
823
- return [4 /*yield*/, effects.takeEvery(actions$2.checkoutPlan, checkoutPlan)];
824
- case 2:
825
925
  _a.sent();
826
926
  return [4 /*yield*/, effects.takeEvery(actions$2.resetCheckout, resetCheckout)];
827
- case 3:
927
+ case 2:
828
928
  _a.sent();
829
929
  return [4 /*yield*/, effects.takeEvery(actions$2.confirmCheckout, confirmPlan)];
830
- case 4:
930
+ case 3:
831
931
  _a.sent();
832
932
  return [4 /*yield*/, effects.takeEvery(actions$2.cancelCheckout, cancelPlan)];
833
- case 5:
933
+ case 4:
834
934
  _a.sent();
835
935
  return [4 /*yield*/, effects.takeEvery(actions$2.submitCheckout, submitCheckout)];
836
- case 6:
936
+ case 5:
837
937
  _a.sent();
838
938
  return [4 /*yield*/, effects.takeEvery(actions$2.errorCheckout, errorCheckout)];
839
- case 7:
939
+ case 6:
840
940
  _a.sent();
841
941
  return [2 /*return*/];
842
942
  }
@@ -846,20 +946,13 @@ function checkoutPlan(_a) {
846
946
  var planId = _a.payload;
847
947
  return tslib.__generator(this, function (_b) {
848
948
  switch (_b.label) {
849
- case 0: return [4 /*yield*/, effects.put(actions$2.setError(null))];
949
+ case 0: return [4 /*yield*/, effects.put(actions$2.setState({
950
+ checkoutPlanId: planId,
951
+ loading: false,
952
+ error: null,
953
+ status: exports.CheckoutStatus.CHECKOUT,
954
+ }))];
850
955
  case 1:
851
- _b.sent();
852
- return [4 /*yield*/, effects.put(actions$2.setLoading(true))];
853
- case 2:
854
- _b.sent();
855
- return [4 /*yield*/, effects.put(actions$2.selectPlan(planId))];
856
- case 3:
857
- _b.sent();
858
- return [4 /*yield*/, effects.put(actions$2.setStatus(exports.CheckoutStatus.CHECKOUT))];
859
- case 4:
860
- _b.sent();
861
- return [4 /*yield*/, effects.put(actions$2.setLoading(false))];
862
- case 5:
863
956
  _b.sent();
864
957
  return [2 /*return*/];
865
958
  }
@@ -868,115 +961,114 @@ function checkoutPlan(_a) {
868
961
  function resetCheckout() {
869
962
  return tslib.__generator(this, function (_a) {
870
963
  switch (_a.label) {
871
- case 0: return [4 /*yield*/, effects.put(actions$2.selectPlan(null))];
964
+ case 0: return [4 /*yield*/, effects.put(actions$2.setState({
965
+ checkoutPlanId: null,
966
+ loading: false,
967
+ status: exports.CheckoutStatus.SELECTION,
968
+ }))];
872
969
  case 1:
873
- _a.sent();
874
- return [4 /*yield*/, effects.put(actions$2.setStatus(exports.CheckoutStatus.SELECTION))];
875
- case 2:
876
970
  _a.sent();
877
971
  return [2 /*return*/];
878
972
  }
879
973
  });
880
974
  }
881
- function confirmPlan() {
882
- var checkout;
883
- return tslib.__generator(this, function (_a) {
884
- switch (_a.label) {
885
- case 0: return [4 /*yield*/, effects.select(function (state) { return state.subscriptions.checkout; })];
975
+ function confirmPlan(_a) {
976
+ var _b, subscription, status, checkoutPlanId, subscriptionId, subscriptionItemId, e_1;
977
+ var _c;
978
+ var paymentMethodId = _a.payload;
979
+ return tslib.__generator(this, function (_d) {
980
+ switch (_d.label) {
981
+ case 0: return [4 /*yield*/, effects.select(function (_a) {
982
+ var _b = _a.subscriptions, information = _b.billing.information, checkout = _b.checkout;
983
+ return ({
984
+ subscription: information.subscription,
985
+ status: checkout.status,
986
+ checkoutPlanId: checkout.checkoutPlanId,
987
+ });
988
+ })];
886
989
  case 1:
887
- checkout = _a.sent();
888
- if (!(checkout.status === exports.CheckoutStatus.CHECKOUT)) return [3 /*break*/, 8];
889
- return [4 /*yield*/, effects.put(actions$2.setError(null))];
990
+ _b = _d.sent(), subscription = _b.subscription, status = _b.status, checkoutPlanId = _b.checkoutPlanId;
991
+ subscriptionId = subscription === null || subscription === void 0 ? void 0 : subscription.id;
992
+ subscriptionItemId = (_c = subscription === null || subscription === void 0 ? void 0 : subscription.items[0]) === null || _c === void 0 ? void 0 : _c.id;
993
+ if (!(!checkoutPlanId || !subscriptionId || !subscriptionItemId)) return [3 /*break*/, 3];
994
+ return [4 /*yield*/, effects.put(actions$2.setState({
995
+ loading: false,
996
+ status: exports.CheckoutStatus.ERROR,
997
+ }))];
890
998
  case 2:
891
- _a.sent();
892
- return [4 /*yield*/, effects.put(actions$2.setLoading(true))];
999
+ _d.sent();
1000
+ return [2 /*return*/];
893
1001
  case 3:
894
- _a.sent();
895
- return [4 /*yield*/, effects.put(actions$2.selectPlan(null))];
1002
+ if (!(status === exports.CheckoutStatus.CHECKOUT)) return [3 /*break*/, 12];
1003
+ return [4 /*yield*/, effects.put(actions$2.setState({
1004
+ loading: true,
1005
+ error: null,
1006
+ }))];
896
1007
  case 4:
897
- _a.sent();
898
- return [4 /*yield*/, effects.put(actions$2.setStatus(exports.CheckoutStatus.CONFIRM))];
1008
+ _d.sent();
1009
+ _d.label = 5;
899
1010
  case 5:
900
- _a.sent();
901
- return [4 /*yield*/, effects.put(actions$2.setLoading(false))];
1011
+ _d.trys.push([5, 9, , 12]);
1012
+ return [4 /*yield*/, effects.call(restApi.api.subscriptions.updateSubscription, subscriptionId, {
1013
+ paymentMethodId: paymentMethodId,
1014
+ items: [
1015
+ {
1016
+ id: subscriptionItemId,
1017
+ planId: checkoutPlanId,
1018
+ },
1019
+ ],
1020
+ })];
902
1021
  case 6:
903
- _a.sent();
904
- return [4 /*yield*/, effects.put(actions$2.checkoutEvent(exports.CheckoutEvent.CONFIRMED))];
1022
+ _d.sent();
1023
+ return [4 /*yield*/, effects.put(actions$2.setState({
1024
+ checkoutPlanId: null,
1025
+ loading: false,
1026
+ status: exports.CheckoutStatus.CONFIRM,
1027
+ }))];
905
1028
  case 7:
906
- _a.sent();
907
- _a.label = 8;
908
- case 8: return [2 /*return*/];
1029
+ _d.sent();
1030
+ return [4 /*yield*/, effects.put(actions$2.checkoutEvent(exports.CheckoutEvent.CONFIRMED))];
1031
+ case 8:
1032
+ _d.sent();
1033
+ return [3 /*break*/, 12];
1034
+ case 9:
1035
+ e_1 = _d.sent();
1036
+ return [4 /*yield*/, effects.put(actions$2.setState({
1037
+ loading: false,
1038
+ error: e_1.message,
1039
+ status: exports.CheckoutStatus.ERROR,
1040
+ }))];
1041
+ case 10:
1042
+ _d.sent();
1043
+ return [4 /*yield*/, effects.put(actions$2.checkoutEvent(exports.CheckoutEvent.ERROR))];
1044
+ case 11:
1045
+ _d.sent();
1046
+ return [3 /*break*/, 12];
1047
+ case 12: return [2 /*return*/];
909
1048
  }
910
1049
  });
911
1050
  }
912
1051
  function cancelPlan() {
913
- var checkout;
1052
+ var status;
914
1053
  return tslib.__generator(this, function (_a) {
915
1054
  switch (_a.label) {
916
1055
  case 0: return [4 /*yield*/, effects.select(function (state) { return state.subscriptions.checkout; })];
917
1056
  case 1:
918
- checkout = _a.sent();
919
- if (!(checkout.status === exports.CheckoutStatus.CHECKOUT)) return [3 /*break*/, 8];
920
- return [4 /*yield*/, effects.put(actions$2.setError(null))];
1057
+ status = (_a.sent()).status;
1058
+ if (!(status === exports.CheckoutStatus.CHECKOUT)) return [3 /*break*/, 4];
1059
+ return [4 /*yield*/, effects.put(actions$2.setState({
1060
+ checkoutPlanId: null,
1061
+ loading: false,
1062
+ error: null,
1063
+ status: exports.CheckoutStatus.CANCEL,
1064
+ }))];
921
1065
  case 2:
922
- _a.sent();
923
- return [4 /*yield*/, effects.put(actions$2.setLoading(true))];
924
- case 3:
925
- _a.sent();
926
- return [4 /*yield*/, effects.put(actions$2.selectPlan(null))];
927
- case 4:
928
- _a.sent();
929
- return [4 /*yield*/, effects.put(actions$2.setStatus(exports.CheckoutStatus.CANCEL))];
930
- case 5:
931
- _a.sent();
932
- return [4 /*yield*/, effects.put(actions$2.setLoading(false))];
933
- case 6:
934
1066
  _a.sent();
935
1067
  return [4 /*yield*/, effects.put(actions$2.checkoutEvent(exports.CheckoutEvent.CANCEL))];
936
- case 7:
937
- _a.sent();
938
- _a.label = 8;
939
- case 8: return [2 /*return*/];
940
- }
941
- });
942
- }
943
- function loadCheckoutSecret() {
944
- var config, checkoutPlanId, response, e_1;
945
- return tslib.__generator(this, function (_a) {
946
- switch (_a.label) {
947
- case 0: return [4 /*yield*/, effects.select(function (state) { return state.subscriptions.config; })];
948
- case 1:
949
- config = (_a.sent()).config;
950
- if (!(config.paymentProvider === exports.PaymentProvider.STRIPE)) return [3 /*break*/, 10];
951
- return [4 /*yield*/, effects.put(actions$2.setLoading(true))];
952
- case 2:
953
- _a.sent();
954
- return [4 /*yield*/, effects.select(function (state) { return state.subscriptions.checkout; })];
955
1068
  case 3:
956
- checkoutPlanId = (_a.sent()).checkoutPlanId;
957
- if (!checkoutPlanId) return [3 /*break*/, 10];
958
- _a.label = 4;
959
- case 4:
960
- _a.trys.push([4, 8, , 10]);
961
- return [4 /*yield*/, effects.call(restApi.api.subscriptions.createSubscription, {
962
- stripePlanId: checkoutPlanId,
963
- })];
964
- case 5:
965
- response = _a.sent();
966
- return [4 /*yield*/, effects.put(actions$2.setStripeClientSecret(response.subscriptionSecret))];
967
- case 6:
968
- _a.sent();
969
- return [4 /*yield*/, effects.put(actions$2.setLoading(false))];
970
- case 7:
971
1069
  _a.sent();
972
- return [3 /*break*/, 10];
973
- case 8:
974
- e_1 = _a.sent();
975
- return [4 /*yield*/, effects.put(actions$2.setError(e_1.message))];
976
- case 9:
977
- _a.sent();
978
- return [3 /*break*/, 10];
979
- case 10: return [2 /*return*/];
1070
+ _a.label = 4;
1071
+ case 4: return [2 /*return*/];
980
1072
  }
981
1073
  });
982
1074
  }
@@ -984,24 +1076,24 @@ function loadCheckoutSecret() {
984
1076
  * Based on payment provider type
985
1077
  */
986
1078
  function submitCheckout() {
987
- var config;
1079
+ var paymentProvider;
988
1080
  return tslib.__generator(this, function (_a) {
989
1081
  switch (_a.label) {
990
- case 0: return [4 /*yield*/, effects.select(function (state) { return state.subscriptions.config; })];
1082
+ case 0: return [4 /*yield*/, effects.select(function (state) { return state.subscriptions.config.config; })];
991
1083
  case 1:
992
- config = (_a.sent()).config;
993
- if (!(config.paymentProvider === exports.PaymentProvider.STRIPE)) return [3 /*break*/, 5];
994
- return [4 /*yield*/, effects.put(actions$2.setError(null))];
1084
+ paymentProvider = (_a.sent()).paymentProvider;
1085
+ if (!(paymentProvider === exports.PaymentProvider.STRIPE)) return [3 /*break*/, 4];
1086
+ return [4 /*yield*/, effects.put(actions$2.setState({
1087
+ loading: true,
1088
+ error: null,
1089
+ }))];
995
1090
  case 2:
996
- _a.sent();
997
- return [4 /*yield*/, effects.put(actions$2.setLoading(true))];
998
- case 3:
999
1091
  _a.sent();
1000
1092
  return [4 /*yield*/, effects.put(actions$2.checkoutEvent(exports.CheckoutEvent.SUBMITTED))];
1001
- case 4:
1093
+ case 3:
1002
1094
  _a.sent();
1003
- _a.label = 5;
1004
- case 5: return [2 /*return*/];
1095
+ _a.label = 4;
1096
+ case 4: return [2 /*return*/];
1005
1097
  }
1006
1098
  });
1007
1099
  }
@@ -1009,14 +1101,15 @@ function errorCheckout(_a) {
1009
1101
  var payload = _a.payload;
1010
1102
  return tslib.__generator(this, function (_b) {
1011
1103
  switch (_b.label) {
1012
- case 0: return [4 /*yield*/, effects.put(actions$2.setStatus(exports.CheckoutStatus.ERROR))];
1104
+ case 0: return [4 /*yield*/, effects.put(actions$2.setState({
1105
+ loading: false,
1106
+ error: payload,
1107
+ status: exports.CheckoutStatus.ERROR,
1108
+ }))];
1013
1109
  case 1:
1014
- _b.sent();
1015
- return [4 /*yield*/, effects.put(actions$2.setError(payload))];
1016
- case 2:
1017
1110
  _b.sent();
1018
1111
  return [4 /*yield*/, effects.put(actions$2.checkoutEvent(exports.CheckoutEvent.ERROR))];
1019
- case 3:
1112
+ case 2:
1020
1113
  _b.sent();
1021
1114
  return [2 /*return*/];
1022
1115
  }
@@ -1152,7 +1245,7 @@ function loadStripePaymentConfiguration() {
1152
1245
  function sagas() {
1153
1246
  return tslib.__generator(this, function (_a) {
1154
1247
  switch (_a.label) {
1155
- case 0: return [4 /*yield*/, effects.all([effects.call(billingSagas), effects.call(checkoutSagas), effects.call(plansSagas), effects.call(configSagas)])];
1248
+ case 0: return [4 /*yield*/, effects.all([effects.call(billingSagas), effects.call(checkoutSagas), effects.call(plansSagas), effects.call(configSagas), effects.call(subscriptionStripeSagas)])];
1156
1249
  case 1:
1157
1250
  _a.sent();
1158
1251
  return [2 /*return*/];
@@ -1171,14 +1264,14 @@ exports.PaymentMethodType = void 0;
1171
1264
  var subscriptionsStore = {
1172
1265
  sagas: sagas,
1173
1266
  reducer: reducer,
1174
- actions: actions$1,
1267
+ actions: actions,
1175
1268
  initialState: initialState,
1176
1269
  storeName: constants.subscriptionsStoreName,
1177
1270
  };
1178
1271
 
1179
1272
  exports.subscriptionsStoreName = constants.subscriptionsStoreName;
1180
1273
  exports['default'] = subscriptionsStore;
1181
- exports.subscriptionActions = actions$1;
1274
+ exports.subscriptionActions = actions;
1182
1275
  exports.subscriptionInitialState = initialState;
1183
1276
  exports.subscriptionReducers = reducer;
1184
1277
  exports.subscriptionSagas = sagas;