makerspace-react-rails 0.4.9 → 0.5.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.
@@ -93249,8 +93249,8 @@ function adminListBillingPlanDiscounts(params) {
93249
93249
  return exports.makeRequest("GET", "/admin/billing/plans/discounts", params, "discounts");
93250
93250
  }
93251
93251
  exports.adminListBillingPlanDiscounts = adminListBillingPlanDiscounts;
93252
- function adminListSubscriptions() {
93253
- return exports.makeRequest("GET", "/admin/billing/subscriptions", undefined, "subscriptions");
93252
+ function adminListSubscriptions(params) {
93253
+ return exports.makeRequest("GET", "/admin/billing/subscriptions", params, "subscriptions");
93254
93254
  }
93255
93255
  exports.adminListSubscriptions = adminListSubscriptions;
93256
93256
  function adminCancelSubscription(id) {
@@ -93369,6 +93369,10 @@ function createPaymentMethod(createPaymentMethodDetails) {
93369
93369
  return exports.makeRequest("POST", "/billing/payment_methods", { payment_method: createPaymentMethodDetails }, "paymentMethod");
93370
93370
  }
93371
93371
  exports.createPaymentMethod = createPaymentMethod;
93372
+ function getPaymentMethod(id) {
93373
+ return exports.makeRequest("GET", "/billing/payment_methods/{id}".replace("{id}", id), undefined, "paymentMethod");
93374
+ }
93375
+ exports.getPaymentMethod = getPaymentMethod;
93372
93376
  function deletePaymentMethod(id) {
93373
93377
  return exports.makeRequest("DELETE", "/billing/payment_methods/{id}".replace("{id}", id));
93374
93378
  }
@@ -93401,6 +93405,10 @@ function deleteTransaction(id) {
93401
93405
  return exports.makeRequest("DELETE", "/billing/transactions/{id}".replace("{id}", id));
93402
93406
  }
93403
93407
  exports.deleteTransaction = deleteTransaction;
93408
+ function getDocument(id) {
93409
+ return exports.makeRequest("GET", "/documents/{id}".replace("{id}", id));
93410
+ }
93411
+ exports.getDocument = getDocument;
93404
93412
  function listEarnedMembershipReports(id, params) {
93405
93413
  return exports.makeRequest("GET", "/earned_memberships/{id}/reports".replace("{id}", id), params, "reports");
93406
93414
  }
@@ -176863,7 +176871,7 @@ __webpack_require__.r(__webpack_exports__);
176863
176871
  /* harmony import */ var ui_member_MemberDetail__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/member/MemberDetail */ "./src/ui/member/MemberDetail.tsx");
176864
176872
  /* harmony import */ var ui_checkout_CheckoutPage__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ui/checkout/CheckoutPage */ "./src/ui/checkout/CheckoutPage.tsx");
176865
176873
  /* harmony import */ var ui_billing_BillingContainer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ui/billing/BillingContainer */ "./src/ui/billing/BillingContainer.tsx");
176866
- /* harmony import */ var ui_member_Settings__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ui/member/Settings */ "./src/ui/member/Settings.tsx");
176874
+ /* harmony import */ var ui_settings_SettingsContainer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ui/settings/SettingsContainer */ "./src/ui/settings/SettingsContainer.tsx");
176867
176875
  /* harmony import */ var ui_checkout_Receipt__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ui/checkout/Receipt */ "./src/ui/checkout/Receipt.tsx");
176868
176876
  /* harmony import */ var ui_auth_SendRegistrationComponent__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ui/auth/SendRegistrationComponent */ "./src/ui/auth/SendRegistrationComponent.tsx");
176869
176877
  /* harmony import */ var ui_documents_SignDocuments__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ui/documents/SignDocuments */ "./src/ui/documents/SignDocuments.tsx");
@@ -176900,7 +176908,7 @@ const PrivateRouting = ({
176900
176908
  }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_router_dom__WEBPACK_IMPORTED_MODULE_1__["Route"], {
176901
176909
  exact: true,
176902
176910
  path: app_constants__WEBPACK_IMPORTED_MODULE_2__["Routing"].Settings,
176903
- component: ui_member_Settings__WEBPACK_IMPORTED_MODULE_10__["default"]
176911
+ component: ui_settings_SettingsContainer__WEBPACK_IMPORTED_MODULE_10__["default"]
176904
176912
  }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_router_dom__WEBPACK_IMPORTED_MODULE_1__["Route"], {
176905
176913
  exact: true,
176906
176914
  path: `${app_constants__WEBPACK_IMPORTED_MODULE_2__["Routing"].Profile}/${app_constants__WEBPACK_IMPORTED_MODULE_2__["Routing"].PathPlaceholder.Resource}${app_constants__WEBPACK_IMPORTED_MODULE_2__["Routing"].PathPlaceholder.Optional}`,
@@ -178506,13 +178514,14 @@ const SignUpFormComponent = () => {
178506
178514
  /*!********************************!*\
178507
178515
  !*** ./src/ui/auth/actions.ts ***!
178508
178516
  \********************************/
178509
- /*! exports provided: loginUserAction, sessionLoginUserAction, logoutUserAction, submitSignUpAction, authReducer */
178517
+ /*! exports provided: loginUserAction, sessionLoginUserAction, refreshUserAction, logoutUserAction, submitSignUpAction, authReducer */
178510
178518
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
178511
178519
 
178512
178520
  "use strict";
178513
178521
  __webpack_require__.r(__webpack_exports__);
178514
178522
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loginUserAction", function() { return loginUserAction; });
178515
178523
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sessionLoginUserAction", function() { return sessionLoginUserAction; });
178524
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "refreshUserAction", function() { return refreshUserAction; });
178516
178525
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "logoutUserAction", function() { return logoutUserAction; });
178517
178526
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "submitSignUpAction", function() { return submitSignUpAction; });
178518
178527
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "authReducer", function() { return authReducer; });
@@ -178572,6 +178581,7 @@ const sessionLoginUserAction = () => async dispatch => {
178572
178581
  const response = await Object(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["signIn"])();
178573
178582
  await handleAuthWithPermissions(response, dispatch, true);
178574
178583
  };
178584
+ const refreshUserAction = sessionLoginUserAction;
178575
178585
  const logoutUserAction = () => async dispatch => {
178576
178586
  dispatch({
178577
178587
  type: ui_auth_constants__WEBPACK_IMPORTED_MODULE_0__["Action"].StartAuthRequest
@@ -178834,7 +178844,7 @@ const defaultContext = {
178834
178844
  loading: false,
178835
178845
  data: [],
178836
178846
  error: "",
178837
- refresh: () => {
178847
+ refresh: type => {
178838
178848
  return;
178839
178849
  }
178840
178850
  }
@@ -178873,7 +178883,7 @@ class BillingContextContainer extends react__WEBPACK_IMPORTED_MODULE_0__["Compon
178873
178883
  });
178874
178884
  });
178875
178885
 
178876
- _defineProperty(this, "getDiscounts", () => {
178886
+ _defineProperty(this, "getDiscounts", types => {
178877
178887
  this.setState(state => ({
178878
178888
  discounts: _objectSpread({}, state.discounts, {
178879
178889
  loading: true
@@ -178881,7 +178891,9 @@ class BillingContextContainer extends react__WEBPACK_IMPORTED_MODULE_0__["Compon
178881
178891
  }), async () => {
178882
178892
  let data;
178883
178893
  let error;
178884
- const result = await Object(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_1__["adminListBillingPlanDiscounts"])();
178894
+ const result = await Object(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_1__["adminListBillingPlanDiscounts"])({
178895
+ types
178896
+ });
178885
178897
 
178886
178898
  if (Object(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_1__["isApiErrorResponse"])(result)) {
178887
178899
  error = result.error.message;
@@ -179004,16 +179016,13 @@ class BillingFormComponent extends react__WEBPACK_IMPORTED_MODULE_0__["Component
179004
179016
  }
179005
179017
 
179006
179018
  if (!context.discounts.loading) {
179007
- context.discounts.refresh();
179019
+ context.discounts.refresh([this.state.type]);
179008
179020
  }
179009
179021
  });
179010
179022
 
179011
179023
  _defineProperty(this, "planToOptionMap", {
179012
179024
  [app_entities_billingPlan__WEBPACK_IMPORTED_MODULE_12__["Properties"].Name]: app_entities_invoice__WEBPACK_IMPORTED_MODULE_11__["Properties"].Name,
179013
- [app_entities_billingPlan__WEBPACK_IMPORTED_MODULE_12__["Properties"].Description]: app_entities_invoice__WEBPACK_IMPORTED_MODULE_11__["Properties"].Description
179014
- });
179015
-
179016
- _defineProperty(this, "planOverridesMap", {
179025
+ [app_entities_billingPlan__WEBPACK_IMPORTED_MODULE_12__["Properties"].Description]: app_entities_invoice__WEBPACK_IMPORTED_MODULE_11__["Properties"].Description,
179017
179026
  [app_entities_billingPlan__WEBPACK_IMPORTED_MODULE_12__["Properties"].Id]: app_entities_invoice__WEBPACK_IMPORTED_MODULE_11__["Properties"].PlanId,
179018
179027
  [app_entities_billingPlan__WEBPACK_IMPORTED_MODULE_12__["Properties"].BillingFrequency]: app_entities_invoice__WEBPACK_IMPORTED_MODULE_11__["Properties"].Quantity,
179019
179028
  [app_entities_billingPlan__WEBPACK_IMPORTED_MODULE_12__["Properties"].Amount]: app_entities_invoice__WEBPACK_IMPORTED_MODULE_11__["Properties"].Amount
@@ -179033,20 +179042,9 @@ class BillingFormComponent extends react__WEBPACK_IMPORTED_MODULE_0__["Component
179033
179042
 
179034
179043
  const planToValues = Object.entries(billingPlan).reduce((invoiceOptionForm, [key, val]) => {
179035
179044
  // Convert billing plan key to option key
179036
- const optionMap = this.planToOptionMap[key];
179037
- const overrideMap = this.planOverridesMap[key]; // Find related form field
179038
-
179039
- let field;
179045
+ const optionMap = this.planToOptionMap[key]; // Find related form field
179040
179046
 
179041
- if (optionMap) {
179042
- const tmpField = ui_billing_constants__WEBPACK_IMPORTED_MODULE_13__["fields"][optionMap]; // Only apply option map if no value
179043
-
179044
- if (tmpField && !this.formRef.getValues()[tmpField.name]) {
179045
- field = tmpField;
179046
- }
179047
- } else if (overrideMap) {
179048
- field = ui_billing_constants__WEBPACK_IMPORTED_MODULE_13__["fields"][overrideMap];
179049
- }
179047
+ const field = ui_billing_constants__WEBPACK_IMPORTED_MODULE_13__["fields"][optionMap];
179050
179048
 
179051
179049
  if (field) {
179052
179050
  // Apply to form values update object
@@ -179097,16 +179095,6 @@ class BillingFormComponent extends react__WEBPACK_IMPORTED_MODULE_0__["Component
179097
179095
  value: field.value
179098
179096
  }, field.name));
179099
179097
 
179100
- _defineProperty(this, "getActivePlanId", () => {
179101
- const {
179102
- option
179103
- } = this.props;
179104
- const {
179105
- planId
179106
- } = this.state;
179107
- return planId || option && option.planId;
179108
- });
179109
-
179110
179098
  _defineProperty(this, "renderDiscountOptions", () => {
179111
179099
  const {
179112
179100
  discounts
@@ -179188,6 +179176,7 @@ class BillingFormComponent extends react__WEBPACK_IMPORTED_MODULE_0__["Component
179188
179176
 
179189
179177
 
179190
179178
  if (type && type !== oldType) {
179179
+ this.formRef && this.formRef.resetForm();
179191
179180
  this.getBillingPlans();
179192
179181
  } // Update form type if option changed and is out of sync
179193
179182
 
@@ -180356,7 +180345,19 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
180356
180345
 
180357
180346
 
180358
180347
 
180359
- const getCartId = item => item.id;
180348
+ const getCartId = item => item.id; // TODO: this should use discount
180349
+ // Only display the discount amount if using invoice option
180350
+
180351
+
180352
+ const renderAmount = item => {
180353
+ let amt = Number(item.amount);
180354
+
180355
+ if (item.discountId && !Object(_cart__WEBPACK_IMPORTED_MODULE_13__["isInvoiceSelection"])(item)) {
180356
+ amt = amt * .9;
180357
+ }
180358
+
180359
+ return Object(ui_utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_9__["numberAsCurrency"])(amt);
180360
+ };
180360
180361
 
180361
180362
  const CartList = ({
180362
180363
  paymentMethodId
@@ -180422,15 +180423,7 @@ const CartList = ({
180422
180423
  }]), {
180423
180424
  id: "amount",
180424
180425
  label: "Amount",
180425
- cell: row => {
180426
- let amount = Number(row.amount); // TODO: this should use discount
180427
-
180428
- if (row.discountId) {
180429
- amount = amount * .90;
180430
- }
180431
-
180432
- return Object(ui_utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_9__["numberAsCurrency"])(amount);
180433
- }
180426
+ cell: row => renderAmount(row)
180434
180427
  }, ...(withError ? [{
180435
180428
  id: "error",
180436
180429
  label: "Error",
@@ -180486,7 +180479,7 @@ const CartList = ({
180486
180479
  id: "total",
180487
180480
  variant: "h6",
180488
180481
  color: "inherit"
180489
- }, "Total ", Object(ui_utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_9__["numberAsCurrency"])(item.amount))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
180482
+ }, "Total ", renderAmount(item))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
180490
180483
  item: true,
180491
180484
  xs: 12,
180492
180485
  style: {
@@ -181387,7 +181380,7 @@ class PaymentMethodsContainer extends react__WEBPACK_IMPORTED_MODULE_0__["Compon
181387
181380
  });
181388
181381
 
181389
181382
  const {
181390
- subscription
181383
+ paymentMethodToken
181391
181384
  } = props;
181392
181385
  this.state = {
181393
181386
  isRequesting: false,
@@ -181396,7 +181389,7 @@ class PaymentMethodsContainer extends react__WEBPACK_IMPORTED_MODULE_0__["Compon
181396
181389
  error: "",
181397
181390
  openAddPayment: false,
181398
181391
  openDeleteModal: false,
181399
- selectedPaymentMethodId: subscription && subscription.paymentMethodToken
181392
+ selectedPaymentMethodId: paymentMethodToken
181400
181393
  };
181401
181394
  }
181402
181395
 
@@ -183377,7 +183370,7 @@ const StatefulTable = ({
183377
183370
  updatedIds.push(id);
183378
183371
  }
183379
183372
 
183380
- return setSelectedIds(updatedIds);
183373
+ return setSelectedIds(updatedIds.filter(id => id !== undefined));
183381
183374
  } else {
183382
183375
  return setSelectedIds(selected ? id : undefined);
183383
183376
  }
@@ -185843,6 +185836,56 @@ const DeleteInvoiceModal = ({
185843
185836
 
185844
185837
  /***/ }),
185845
185838
 
185839
+ /***/ "./src/ui/invoice/InvoiceDetails.tsx":
185840
+ /*!*******************************************!*\
185841
+ !*** ./src/ui/invoice/InvoiceDetails.tsx ***!
185842
+ \*******************************************/
185843
+ /*! exports provided: default */
185844
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
185845
+
185846
+ "use strict";
185847
+ __webpack_require__.r(__webpack_exports__);
185848
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
185849
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
185850
+ /* harmony import */ var ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ui/common/KeyValueItem */ "./src/ui/common/KeyValueItem.tsx");
185851
+ /* harmony import */ var _utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/numberAsCurrency */ "./src/ui/utils/numberAsCurrency.ts");
185852
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/ui/invoice/utils.ts");
185853
+
185854
+
185855
+
185856
+
185857
+
185858
+ const InvoiceDetails = ({
185859
+ invoice,
185860
+ summaryOnly
185861
+ }) => {
185862
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_1__["default"], {
185863
+ label: "Member"
185864
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
185865
+ id: "view-invoice-member"
185866
+ }, invoice.memberName)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_1__["default"], {
185867
+ label: "Description"
185868
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
185869
+ id: "view-invoice-description"
185870
+ }, invoice.description)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_1__["default"], {
185871
+ label: "Amount"
185872
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
185873
+ id: "view-invoice-amount"
185874
+ }, Object(_utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_2__["numberAsCurrency"])(invoice.amount))), !summaryOnly && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_1__["default"], {
185875
+ label: "Due Date"
185876
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
185877
+ id: "view-invoice-due-date"
185878
+ }, Object(_utils__WEBPACK_IMPORTED_MODULE_3__["renderInvoiceDueDate"])(invoice))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_1__["default"], {
185879
+ label: "Status"
185880
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
185881
+ id: "view-invoice-status"
185882
+ }, Object(_utils__WEBPACK_IMPORTED_MODULE_3__["renderInvoiceStatus"])(invoice)))));
185883
+ };
185884
+
185885
+ /* harmony default export */ __webpack_exports__["default"] = (InvoiceDetails);
185886
+
185887
+ /***/ }),
185888
+
185846
185889
  /***/ "./src/ui/invoice/InvoiceForm.tsx":
185847
185890
  /*!****************************************!*\
185848
185891
  !*** ./src/ui/invoice/InvoiceForm.tsx ***!
@@ -186164,23 +186207,27 @@ __webpack_require__.r(__webpack_exports__);
186164
186207
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
186165
186208
  /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! use-react-router */ "./node_modules/use-react-router/use-react-router.js");
186166
186209
  /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(use_react_router__WEBPACK_IMPORTED_MODULE_1__);
186167
- /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
186168
- /* harmony import */ var _hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/useReadTransaction */ "./src/ui/hooks/useReadTransaction.ts");
186210
+ /* harmony import */ var _material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Checkbox */ "./node_modules/@material-ui/core/Checkbox/index.js");
186211
+ /* harmony import */ var _material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_2__);
186212
+ /* harmony import */ var _material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/FormControlLabel */ "./node_modules/@material-ui/core/FormControlLabel/index.js");
186213
+ /* harmony import */ var _material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_3__);
186169
186214
  /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
186170
186215
  /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__);
186171
- /* harmony import */ var _common_table_StatefulTable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/table/StatefulTable */ "./src/ui/common/table/StatefulTable.tsx");
186172
- /* harmony import */ var app_entities_invoice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! app/entities/invoice */ "./src/app/entities/invoice.ts");
186173
- /* harmony import */ var ui_common_table_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/common/table/constants */ "./src/ui/common/table/constants.ts");
186174
- /* harmony import */ var ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ui/utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
186175
- /* harmony import */ var ui_utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ui/utils/numberAsCurrency */ "./src/ui/utils/numberAsCurrency.ts");
186176
- /* harmony import */ var ui_common_StatusLabel__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ui/common/StatusLabel */ "./src/ui/common/StatusLabel.tsx");
186177
- /* harmony import */ var ui_constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ui/constants */ "./src/ui/constants.ts");
186178
- /* harmony import */ var _utils_extractTotalItems__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/extractTotalItems */ "./src/ui/utils/extractTotalItems.ts");
186179
- /* harmony import */ var _invoice_SettleInvoiceModal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../invoice/SettleInvoiceModal */ "./src/ui/invoice/SettleInvoiceModal.tsx");
186216
+ /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
186217
+ /* harmony import */ var _hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/useReadTransaction */ "./src/ui/hooks/useReadTransaction.ts");
186218
+ /* harmony import */ var _common_table_StatefulTable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../common/table/StatefulTable */ "./src/ui/common/table/StatefulTable.tsx");
186219
+ /* harmony import */ var app_entities_invoice__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! app/entities/invoice */ "./src/app/entities/invoice.ts");
186220
+ /* harmony import */ var ui_common_table_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ui/common/table/constants */ "./src/ui/common/table/constants.ts");
186221
+ /* harmony import */ var ui_utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ui/utils/numberAsCurrency */ "./src/ui/utils/numberAsCurrency.ts");
186222
+ /* harmony import */ var ui_common_StatusLabel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ui/common/StatusLabel */ "./src/ui/common/StatusLabel.tsx");
186223
+ /* harmony import */ var ui_constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ui/constants */ "./src/ui/constants.ts");
186224
+ /* harmony import */ var _utils_extractTotalItems__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/extractTotalItems */ "./src/ui/utils/extractTotalItems.ts");
186180
186225
  /* harmony import */ var _invoice_CreateInvoiceModal__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../invoice/CreateInvoiceModal */ "./src/ui/invoice/CreateInvoiceModal.tsx");
186181
186226
  /* harmony import */ var _invoice_DeleteInvoiceModal__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../invoice/DeleteInvoiceModal */ "./src/ui/invoice/DeleteInvoiceModal.tsx");
186182
186227
  /* harmony import */ var _common_ButtonRow__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../common/ButtonRow */ "./src/ui/common/ButtonRow.tsx");
186183
186228
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./utils */ "./src/ui/invoice/utils.ts");
186229
+ /* harmony import */ var _ViewInvoiceModal__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ViewInvoiceModal */ "./src/ui/invoice/ViewInvoiceModal.tsx");
186230
+ /* harmony import */ var _subscriptions_ViewSubscriptionModal__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../subscriptions/ViewSubscriptionModal */ "./src/ui/subscriptions/ViewSubscriptionModal.tsx");
186184
186231
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
186185
186232
 
186186
186233
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -186206,79 +186253,63 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
186206
186253
 
186207
186254
 
186208
186255
 
186209
- const getFields = (memberId, isAdmin, onSuccess) => [...(memberId ? [] : [{
186256
+
186257
+
186258
+ const getFields = memberId => [...(memberId ? [] : [{
186210
186259
  id: "member",
186211
186260
  label: "Member",
186212
186261
  cell: row => row.memberName,
186213
- defaultSortDirection: ui_common_table_constants__WEBPACK_IMPORTED_MODULE_7__["SortDirection"].Desc
186262
+ defaultSortDirection: ui_common_table_constants__WEBPACK_IMPORTED_MODULE_9__["SortDirection"].Desc
186214
186263
  }]), {
186215
186264
  id: "resourceClass",
186216
186265
  label: "Type",
186217
- cell: row => app_entities_invoice__WEBPACK_IMPORTED_MODULE_6__["InvoiceableResourceDisplay"][row.resourceClass]
186218
- }, {
186219
- id: "description",
186220
- label: "Description",
186221
- cell: row => row.description,
186222
- defaultSortDirection: ui_common_table_constants__WEBPACK_IMPORTED_MODULE_7__["SortDirection"].Desc
186266
+ cell: row => app_entities_invoice__WEBPACK_IMPORTED_MODULE_8__["InvoiceableResourceDisplay"][row.resourceClass],
186267
+ defaultSortDirection: ui_common_table_constants__WEBPACK_IMPORTED_MODULE_9__["SortDirection"].Desc
186223
186268
  }, {
186224
186269
  id: "dueDate",
186225
186270
  label: "Due Date",
186226
- cell: row => {
186227
- const dueDate = Object(ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_8__["timeToDate"])(row.dueDate);
186228
-
186229
- if (row.subscriptionId) {
186230
- return `Automatic Payment on ${dueDate}`;
186231
- } else {
186232
- if (row.settled) {
186233
- return "Paid";
186234
- } else {
186235
- return dueDate;
186236
- }
186237
- }
186238
- },
186239
- defaultSortDirection: ui_common_table_constants__WEBPACK_IMPORTED_MODULE_7__["SortDirection"].Desc
186271
+ cell: row => Object(_utils__WEBPACK_IMPORTED_MODULE_17__["renderInvoiceDueDate"])(row),
186272
+ defaultSortDirection: ui_common_table_constants__WEBPACK_IMPORTED_MODULE_9__["SortDirection"].Desc
186240
186273
  }, {
186241
186274
  id: "amount",
186242
186275
  label: "Amount",
186243
- cell: row => Object(ui_utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_9__["numberAsCurrency"])(row.amount),
186244
- defaultSortDirection: ui_common_table_constants__WEBPACK_IMPORTED_MODULE_7__["SortDirection"].Desc
186245
- }, ...(isAdmin ? [{
186246
- id: "settled",
186247
- label: "Paid?",
186248
- cell: row => {
186249
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_invoice_SettleInvoiceModal__WEBPACK_IMPORTED_MODULE_13__["default"], {
186250
- invoice: row,
186251
- onSuccess: onSuccess
186252
- });
186253
- },
186254
- defaultSortDirection: ui_common_table_constants__WEBPACK_IMPORTED_MODULE_7__["SortDirection"].Desc
186255
- }] : []), {
186276
+ cell: row => Object(ui_utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_10__["numberAsCurrency"])(row.amount),
186277
+ defaultSortDirection: ui_common_table_constants__WEBPACK_IMPORTED_MODULE_9__["SortDirection"].Desc
186278
+ }, {
186256
186279
  id: "status",
186257
186280
  label: "Status",
186258
186281
  cell: row => {
186259
- const statusColor = row.pastDue && !row.settled ? ui_constants__WEBPACK_IMPORTED_MODULE_11__["Status"].Danger : ui_constants__WEBPACK_IMPORTED_MODULE_11__["Status"].Success;
186260
- let label;
186261
-
186262
- if (row.refunded) {
186263
- label = "Refunded";
186264
- } else if (Object(_utils__WEBPACK_IMPORTED_MODULE_17__["isInvoiceSettled"])(row)) {
186265
- label = "Paid";
186266
- } else if (row.pastDue) {
186267
- label = "Past Due";
186268
- } else {
186269
- label = "Upcoming";
186270
- }
186271
-
186272
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_StatusLabel__WEBPACK_IMPORTED_MODULE_10__["default"], {
186282
+ const statusColor = row.pastDue && !row.settled ? ui_constants__WEBPACK_IMPORTED_MODULE_12__["Status"].Danger : ui_constants__WEBPACK_IMPORTED_MODULE_12__["Status"].Success;
186283
+ const label = Object(_utils__WEBPACK_IMPORTED_MODULE_17__["renderInvoiceStatus"])(row);
186284
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_StatusLabel__WEBPACK_IMPORTED_MODULE_11__["default"], {
186273
186285
  label: label,
186274
186286
  color: statusColor
186275
186287
  });
186276
186288
  }
186289
+ }, {
186290
+ id: "view",
186291
+ label: "View",
186292
+ cell: row => {
186293
+ if (row.subscriptionId) {
186294
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_subscriptions_ViewSubscriptionModal__WEBPACK_IMPORTED_MODULE_19__["default"], {
186295
+ subscriptionId: row.subscriptionId,
186296
+ memberId: row.memberId
186297
+ });
186298
+ }
186299
+
186300
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_ViewInvoiceModal__WEBPACK_IMPORTED_MODULE_18__["default"], {
186301
+ invoice: row
186302
+ });
186303
+ }
186277
186304
  }];
186278
186305
 
186279
186306
  const InvoicesTable = ({
186280
186307
  stageInvoice
186281
186308
  }) => {
186309
+ const [hideSettled, setHideSettled] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](true);
186310
+ const toggleHideSettled = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
186311
+ setHideSettled(settled => !settled);
186312
+ }, [setHideSettled]);
186282
186313
  const {
186283
186314
  match: {
186284
186315
  params: {
@@ -186291,21 +186322,24 @@ const InvoicesTable = ({
186291
186322
  isAdmin,
186292
186323
  id: currentUserId
186293
186324
  }
186294
- } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_2__["useAuthState"])();
186295
- const [queryParams, setQueryState] = Object(_common_table_StatefulTable__WEBPACK_IMPORTED_MODULE_5__["useQueryState"])();
186325
+ } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_5__["useAuthState"])();
186326
+ const [queryParams, setQueryState] = Object(_common_table_StatefulTable__WEBPACK_IMPORTED_MODULE_7__["useQueryState"])();
186296
186327
  const [selectedInvoice, setSelectedInvoice] = react__WEBPACK_IMPORTED_MODULE_0__["useState"]();
186328
+ const viewingOwnInvoices = memberId === currentUserId;
186297
186329
  const {
186298
186330
  refresh: refreshMember
186299
- } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_3__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["getMember"], memberId);
186331
+ } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_6__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["getMember"], memberId);
186300
186332
  const {
186301
186333
  isRequesting,
186302
186334
  error,
186303
186335
  data = [],
186304
186336
  response,
186305
186337
  refresh
186306
- } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_3__["default"])(isAdmin ? makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["adminListInvoices"] : makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["listInvoices"], _objectSpread({
186338
+ } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_6__["default"])(isAdmin && !viewingOwnInvoices ? makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["adminListInvoices"] : makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["listInvoices"], _objectSpread({}, queryParams, {
186339
+ hideSettled,
186307
186340
  resourceId: memberId
186308
- }, queryParams));
186341
+ })); // TODO: Need to fix these types of conditionals
186342
+
186309
186343
  react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
186310
186344
  if (Array.isArray(data) && data.length) {
186311
186345
  const newSelection = data.find(invoice => invoice.memberId === currentUserId && Object(_utils__WEBPACK_IMPORTED_MODULE_17__["isInvoicePayable"])(invoice));
@@ -186320,8 +186354,7 @@ const InvoicesTable = ({
186320
186354
  refresh();
186321
186355
  }, [refresh, refreshMember]);
186322
186356
  const rowId = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](invoice => invoice.id, []);
186323
- const fields = getFields(memberId, isAdmin, onSuccess);
186324
- const viewingOwnInvoices = memberId === currentUserId;
186357
+ const fields = getFields(memberId);
186325
186358
  const payNow = viewingOwnInvoices && Object(_utils__WEBPACK_IMPORTED_MODULE_17__["isInvoicePayable"])(selectedInvoice);
186326
186359
  const goToCheckout = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => stageInvoice(selectedInvoice), [selectedInvoice, stageInvoice]);
186327
186360
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, isAdmin && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_invoice_CreateInvoiceModal__WEBPACK_IMPORTED_MODULE_14__["default"], {
@@ -186330,6 +186363,16 @@ const InvoicesTable = ({
186330
186363
  }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_invoice_DeleteInvoiceModal__WEBPACK_IMPORTED_MODULE_15__["default"], {
186331
186364
  invoice: selectedInvoice,
186332
186365
  onSuccess: onSuccess
186366
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_3___default.a, {
186367
+ control: react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_2___default.a, {
186368
+ name: "hide-settled",
186369
+ value: "hide-settled",
186370
+ id: "hide-settled",
186371
+ checked: !!hideSettled,
186372
+ onChange: toggleHideSettled,
186373
+ color: "default"
186374
+ }),
186375
+ label: "Hide settled dues"
186333
186376
  })), viewingOwnInvoices && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ButtonRow__WEBPACK_IMPORTED_MODULE_16__["ActionButton"], {
186334
186377
  id: "invoices-list-payNow",
186335
186378
  style: {
@@ -186340,7 +186383,7 @@ const InvoicesTable = ({
186340
186383
  disabled: !payNow,
186341
186384
  onClick: goToCheckout,
186342
186385
  label: "Pay Selected Dues"
186343
- }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_table_StatefulTable__WEBPACK_IMPORTED_MODULE_5__["default"], {
186386
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_table_StatefulTable__WEBPACK_IMPORTED_MODULE_7__["default"], {
186344
186387
  id: "invoices-table",
186345
186388
  title: "Dues",
186346
186389
  loading: isRequesting,
@@ -186350,7 +186393,7 @@ const InvoicesTable = ({
186350
186393
  setQuery: setQueryState,
186351
186394
  columns: fields,
186352
186395
  rowId: rowId,
186353
- totalItems: Object(_utils_extractTotalItems__WEBPACK_IMPORTED_MODULE_12__["default"])(response),
186396
+ totalItems: Object(_utils_extractTotalItems__WEBPACK_IMPORTED_MODULE_13__["default"])(response),
186354
186397
  selectedIds: selectedInvoice && selectedInvoice.id,
186355
186398
  setSelectedIds: setSelected
186356
186399
  }));
@@ -186360,10 +186403,10 @@ const InvoicesTable = ({
186360
186403
 
186361
186404
  /***/ }),
186362
186405
 
186363
- /***/ "./src/ui/invoice/SettleInvoiceModal.tsx":
186364
- /*!***********************************************!*\
186365
- !*** ./src/ui/invoice/SettleInvoiceModal.tsx ***!
186366
- \***********************************************/
186406
+ /***/ "./src/ui/invoice/ViewInvoiceModal.tsx":
186407
+ /*!*********************************************!*\
186408
+ !*** ./src/ui/invoice/ViewInvoiceModal.tsx ***!
186409
+ \*********************************************/
186367
186410
  /*! exports provided: default */
186368
186411
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
186369
186412
 
@@ -186373,28 +186416,10 @@ __webpack_require__.r(__webpack_exports__);
186373
186416
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
186374
186417
  /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Typography */ "./node_modules/@material-ui/core/Typography/index.js");
186375
186418
  /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1__);
186376
- /* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Button */ "./node_modules/@material-ui/core/Button/index.js");
186377
- /* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_2__);
186378
- /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
186379
- /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__);
186380
- /* harmony import */ var app_entities_invoice__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! app/entities/invoice */ "./src/app/entities/invoice.ts");
186381
- /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
186382
- /* harmony import */ var ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui/common/KeyValueItem */ "./src/ui/common/KeyValueItem.tsx");
186383
- /* harmony import */ var ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
186384
- /* harmony import */ var _hooks_useModal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/useModal */ "./src/ui/hooks/useModal.ts");
186385
- /* harmony import */ var _hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../hooks/useWriteTransaction */ "./src/ui/hooks/useWriteTransaction.ts");
186386
- /* harmony import */ var _invoice_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../invoice/utils */ "./src/ui/invoice/utils.ts");
186387
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
186388
-
186389
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
186390
-
186391
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
186392
-
186393
-
186394
-
186395
-
186396
-
186397
-
186419
+ /* harmony import */ var _hooks_useModal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../hooks/useModal */ "./src/ui/hooks/useModal.ts");
186420
+ /* harmony import */ var _common_ButtonRow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/ButtonRow */ "./src/ui/common/ButtonRow.tsx");
186421
+ /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
186422
+ /* harmony import */ var _InvoiceDetails__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./InvoiceDetails */ "./src/ui/invoice/InvoiceDetails.tsx");
186398
186423
 
186399
186424
 
186400
186425
 
@@ -186402,68 +186427,34 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
186402
186427
 
186403
186428
 
186404
186429
 
186405
- const SettleInvoiceModal = ({
186406
- invoice,
186407
- onSuccess
186430
+ const ViewInvoiceModal = ({
186431
+ invoice
186408
186432
  }) => {
186409
186433
  const {
186410
186434
  isOpen,
186411
186435
  openModal,
186412
186436
  closeModal
186413
- } = Object(_hooks_useModal__WEBPACK_IMPORTED_MODULE_8__["default"])();
186414
- const onUpdate = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](({
186415
- reset
186416
- }) => {
186417
- closeModal();
186418
- onSuccess();
186419
- reset();
186420
- }, [closeModal, onSuccess]);
186421
- const {
186422
- call,
186423
- isRequesting,
186424
- error
186425
- } = Object(_hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_9__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__["adminUpdateInvoice"], onUpdate);
186426
- const onSubmit = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
186427
- call(invoice.id, _objectSpread({}, invoice, {
186428
- settled: true
186429
- }));
186430
- }, [invoice, call]);
186431
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, Object(_invoice_utils__WEBPACK_IMPORTED_MODULE_10__["isInvoiceSettled"])(invoice) ? "Settled" : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_2___default.a, {
186437
+ } = Object(_hooks_useModal__WEBPACK_IMPORTED_MODULE_2__["default"])();
186438
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ButtonRow__WEBPACK_IMPORTED_MODULE_3__["ActionButton"], {
186439
+ id: "view-invoice-button",
186440
+ color: "secondary",
186432
186441
  variant: "outlined",
186433
- color: "primary",
186434
- disabled: isRequesting,
186442
+ label: "View",
186435
186443
  onClick: openModal
186436
- }, "Mark as Paid"), isOpen && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_5__["default"], {
186437
- id: "settle-invoice",
186438
- loading: isRequesting,
186439
- isOpen: true,
186444
+ }), isOpen && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_4__["default"], {
186445
+ id: "select-membership",
186446
+ isOpen: isOpen,
186440
186447
  closeHandler: closeModal,
186441
- title: "Confirm Settlement",
186442
- onSubmit: onSubmit,
186443
- submitText: "Confirm",
186444
- error: error
186448
+ cancelText: "Close"
186445
186449
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1___default.a, {
186450
+ variant: "h4",
186446
186451
  gutterBottom: true
186447
- }, "Are you sure you want to manually mark this invoice as paid? This may trigger automatic renewals based on the invoice. This action cannot be reversed."), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
186448
- label: "Responsible Party"
186449
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
186450
- id: "settle-invoice-member"
186451
- }, invoice.memberName)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
186452
- label: "Type"
186453
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
186454
- id: "settle-invoice-amount"
186455
- }, app_entities_invoice__WEBPACK_IMPORTED_MODULE_4__["InvoiceableResourceDisplay"][invoice.resourceClass])), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
186456
- label: "Amount"
186457
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
186458
- id: "settle-invoice-amount"
186459
- }, `$${invoice.amount}`)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
186460
- label: "Due Date"
186461
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
186462
- id: "settle-invoice-due-date"
186463
- }, Object(ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_7__["timeToDate"])(invoice.dueDate)))));
186452
+ }, "Details"), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_InvoiceDetails__WEBPACK_IMPORTED_MODULE_5__["default"], {
186453
+ invoice: invoice
186454
+ })));
186464
186455
  };
186465
186456
 
186466
- /* harmony default export */ __webpack_exports__["default"] = (SettleInvoiceModal);
186457
+ /* harmony default export */ __webpack_exports__["default"] = (ViewInvoiceModal);
186467
186458
 
186468
186459
  /***/ }),
186469
186460
 
@@ -186542,16 +186533,44 @@ const fields = {
186542
186533
  /*!*********************************!*\
186543
186534
  !*** ./src/ui/invoice/utils.ts ***!
186544
186535
  \*********************************/
186545
- /*! exports provided: isInvoiceSettled, isInvoicePayable */
186536
+ /*! exports provided: isInvoiceSettled, isInvoicePayable, renderInvoiceDueDate, renderInvoiceStatus */
186546
186537
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
186547
186538
 
186548
186539
  "use strict";
186549
186540
  __webpack_require__.r(__webpack_exports__);
186550
186541
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInvoiceSettled", function() { return isInvoiceSettled; });
186551
186542
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInvoicePayable", function() { return isInvoicePayable; });
186552
- // export const isInvoiceSettled = (invoice: Invoice): boolean => invoice && (invoice.settled);
186543
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderInvoiceDueDate", function() { return renderInvoiceDueDate; });
186544
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderInvoiceStatus", function() { return renderInvoiceStatus; });
186545
+ /* harmony import */ var _utils_timeToDate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
186546
+ // export const isInvoiceSettled = (invoice: Invoice): boolean => invoice && (invoice.settled);
186547
+
186553
186548
  const isInvoiceSettled = invoice => invoice && (invoice.settled || !!invoice.transactionId);
186554
186549
  const isInvoicePayable = invoice => invoice && !isInvoiceSettled(invoice) && !invoice.subscriptionId;
186550
+ const renderInvoiceDueDate = invoice => {
186551
+ const dueDate = Object(_utils_timeToDate__WEBPACK_IMPORTED_MODULE_0__["timeToDate"])(invoice.dueDate);
186552
+
186553
+ if (invoice.subscriptionId) {
186554
+ return `Automatic Payment on ${dueDate}`;
186555
+ } else {
186556
+ if (invoice.settled) {
186557
+ return "Paid";
186558
+ } else {
186559
+ return dueDate;
186560
+ }
186561
+ }
186562
+ };
186563
+ const renderInvoiceStatus = invoice => {
186564
+ if (invoice.refunded) {
186565
+ return "Refunded";
186566
+ } else if (isInvoiceSettled(invoice)) {
186567
+ return "Paid";
186568
+ } else if (invoice.pastDue) {
186569
+ return "Past Due";
186570
+ } else {
186571
+ return "Upcoming";
186572
+ }
186573
+ };
186555
186574
 
186556
186575
  /***/ }),
186557
186576
 
@@ -186663,7 +186682,7 @@ __webpack_require__.r(__webpack_exports__);
186663
186682
  /* harmony import */ var ui_rentals_RentalsList__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ui/rentals/RentalsList */ "./src/ui/rentals/RentalsList.tsx");
186664
186683
  /* harmony import */ var ui_common_ButtonRow__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ui/common/ButtonRow */ "./src/ui/common/ButtonRow.tsx");
186665
186684
  /* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! app/constants */ "./src/app/constants.ts");
186666
- /* harmony import */ var ui_membership_constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ui/membership/constants */ "./src/ui/membership/constants.ts");
186685
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./constants */ "./src/ui/member/constants.ts");
186667
186686
  /* harmony import */ var ui_accessCards_AccessCardForm__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ui/accessCards/AccessCardForm */ "./src/ui/accessCards/AccessCardForm.tsx");
186668
186687
  /* harmony import */ var ui_reports_ReportList__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ui/reports/ReportList */ "./src/ui/reports/ReportList.tsx");
186669
186688
  /* harmony import */ var ui_transactions_TransactionsList__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ui/transactions/TransactionsList */ "./src/ui/transactions/TransactionsList.tsx");
@@ -186797,7 +186816,7 @@ const MemberProfile = () => {
186797
186816
  label: "Membership Type"
186798
186817
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
186799
186818
  id: "member-detail-type"
186800
- }, Object(ui_membership_constants__WEBPACK_IMPORTED_MODULE_12__["getDetailsForMember"])(member).type))),
186819
+ }, Object(_constants__WEBPACK_IMPORTED_MODULE_12__["getDetailsForMember"])(member).type))),
186801
186820
  activeResourceName: resource,
186802
186821
  resources: (isOwnProfile || isAdmin) && [...(isEarnedMember ? [{
186803
186822
  name: "membership",
@@ -187288,8 +187307,7 @@ const RenewMember = ({
187288
187307
  } = Object(_hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_6__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_5__["adminUpdateMember"], onSuccess);
187289
187308
  const onSubmit = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](async form => {
187290
187309
  const validUpdate = await formRef.current.validate(form);
187291
- if (!form.isValid()) return; // TODO: Renew isn't supported in update shape but it should be
187292
-
187310
+ if (!form.isValid()) return;
187293
187311
  renew(memberId, validUpdate);
187294
187312
  }, [formRef, renew]);
187295
187313
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ButtonRow__WEBPACK_IMPORTED_MODULE_7__["ActionButton"], {
@@ -187316,143 +187334,6 @@ const RenewMember = ({
187316
187334
 
187317
187335
  /***/ }),
187318
187336
 
187319
- /***/ "./src/ui/member/Settings.tsx":
187320
- /*!************************************!*\
187321
- !*** ./src/ui/member/Settings.tsx ***!
187322
- \************************************/
187323
- /*! exports provided: default */
187324
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
187325
-
187326
- "use strict";
187327
- __webpack_require__.r(__webpack_exports__);
187328
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
187329
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
187330
- /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Grid */ "./node_modules/@material-ui/core/Grid/index.js");
187331
- /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1__);
187332
- /* harmony import */ var _material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Card */ "./node_modules/@material-ui/core/Card/index.js");
187333
- /* harmony import */ var _material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2__);
187334
- /* harmony import */ var _material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/CardContent */ "./node_modules/@material-ui/core/CardContent/index.js");
187335
- /* harmony import */ var _material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3__);
187336
- /* harmony import */ var _material_ui_core_List__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/core/List */ "./node_modules/@material-ui/core/List/index.js");
187337
- /* harmony import */ var _material_ui_core_List__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_List__WEBPACK_IMPORTED_MODULE_4__);
187338
- /* harmony import */ var _material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core/ListItem */ "./node_modules/@material-ui/core/ListItem/index.js");
187339
- /* harmony import */ var _material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5__);
187340
- /* harmony import */ var _material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/core/ListItemText */ "./node_modules/@material-ui/core/ListItemText/index.js");
187341
- /* harmony import */ var _material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6__);
187342
- /* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! app/constants */ "./src/app/constants.ts");
187343
- /* harmony import */ var ui_member_UpdateMemberContainer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ui/member/UpdateMemberContainer */ "./src/ui/member/UpdateMemberContainer.tsx");
187344
- /* harmony import */ var ui_member_MemberForm__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ui/member/MemberForm */ "./src/ui/member/MemberForm.tsx");
187345
- /* harmony import */ var ui_checkout_PaymentMethodsContainer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ui/checkout/PaymentMethodsContainer */ "./src/ui/checkout/PaymentMethodsContainer.tsx");
187346
- /* harmony import */ var ui_membership_UpdateMembershipForm__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ui/membership/UpdateMembershipForm */ "./src/ui/membership/UpdateMembershipForm.tsx");
187347
- /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
187348
- /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_12__);
187349
- /* harmony import */ var _hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../hooks/useReadTransaction */ "./src/ui/hooks/useReadTransaction.ts");
187350
- /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
187351
-
187352
-
187353
-
187354
-
187355
-
187356
-
187357
-
187358
-
187359
-
187360
-
187361
-
187362
-
187363
-
187364
-
187365
-
187366
-
187367
-
187368
- const SettingsContainer = () => {
187369
- const {
187370
- currentUser: {
187371
- id: currentUserId
187372
- },
187373
- permissions
187374
- } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_14__["useAuthState"])();
187375
- const billingEnabled = !!permissions[app_constants__WEBPACK_IMPORTED_MODULE_7__["Whitelists"].billing];
187376
- const [selectedIndex, setIndex] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](0);
187377
- const {
187378
- isRequesting: loadingMember,
187379
- error: memberError,
187380
- data: member,
187381
- refresh: refreshMember
187382
- } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_13__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_12__["getMember"], currentUserId);
187383
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
187384
- container: true,
187385
- spacing: 16
187386
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
187387
- item: true,
187388
- md: 4,
187389
- sm: 5,
187390
- xs: 12
187391
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_List__WEBPACK_IMPORTED_MODULE_4___default.a, {
187392
- component: "nav"
187393
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5___default.a, {
187394
- button: true,
187395
- selected: selectedIndex === 0,
187396
- onClick: () => setIndex(0)
187397
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6___default.a, {
187398
- id: "settings-profile",
187399
- primary: "Profile Details"
187400
- })), billingEnabled && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5___default.a, {
187401
- button: true,
187402
- selected: selectedIndex === 1,
187403
- onClick: () => setIndex(1)
187404
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6___default.a, {
187405
- id: "settings-membership",
187406
- primary: "Membership"
187407
- })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5___default.a, {
187408
- button: true,
187409
- selected: selectedIndex === 2,
187410
- onClick: () => setIndex(2)
187411
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6___default.a, {
187412
- id: "settings-payment-methods",
187413
- primary: "Payment Methods"
187414
- }))))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
187415
- item: true,
187416
- md: 8,
187417
- sm: 7,
187418
- xs: 12
187419
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2___default.a, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3___default.a, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
187420
- container: true,
187421
- spacing: 16
187422
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
187423
- item: true,
187424
- xs: 12
187425
- }, selectedIndex == 0 && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_member_UpdateMemberContainer__WEBPACK_IMPORTED_MODULE_8__["default"], {
187426
- closeHandler: () => {},
187427
- operation: app_constants__WEBPACK_IMPORTED_MODULE_7__["CrudOperation"].Update,
187428
- isOpen: selectedIndex === 0,
187429
- member: member,
187430
- render: renderProps => react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_member_MemberForm__WEBPACK_IMPORTED_MODULE_9__["default"], {
187431
- ref: renderProps.setRef,
187432
- member: member || {},
187433
- isAdmin: false,
187434
- isOpen: renderProps.isOpen,
187435
- isRequesting: loadingMember || renderProps.isRequesting,
187436
- error: memberError || renderProps.error,
187437
- onClose: renderProps.closeHandler,
187438
- onSubmit: renderProps.submit,
187439
- noDialog: true,
187440
- title: "Update Profile Details"
187441
- })
187442
- }), selectedIndex === 1 && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_membership_UpdateMembershipForm__WEBPACK_IMPORTED_MODULE_11__["default"], {
187443
- subscriptionId: member.subscriptionId,
187444
- member: member,
187445
- getMember: refreshMember
187446
- }), selectedIndex === 2 && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_checkout_PaymentMethodsContainer__WEBPACK_IMPORTED_MODULE_10__["default"], {
187447
- title: "Manage Payment Methods",
187448
- managingMethods: true
187449
- })))))));
187450
- };
187451
-
187452
- /* harmony default export */ __webpack_exports__["default"] = (SettingsContainer);
187453
-
187454
- /***/ }),
187455
-
187456
187337
  /***/ "./src/ui/member/UpdateMemberContainer.tsx":
187457
187338
  /*!*************************************************!*\
187458
187339
  !*** ./src/ui/member/UpdateMemberContainer.tsx ***!
@@ -187726,7 +187607,7 @@ const memberReducer = (state = defaultState, action) => {
187726
187607
  /*!************************************!*\
187727
187608
  !*** ./src/ui/member/constants.ts ***!
187728
187609
  \************************************/
187729
- /*! exports provided: Action, fields, MemberStatusOptions, MemberRoleOptions */
187610
+ /*! exports provided: Action, fields, MemberStatusOptions, MemberRoleOptions, getDetailsForMember */
187730
187611
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
187731
187612
 
187732
187613
  "use strict";
@@ -187735,6 +187616,7 @@ __webpack_require__.r(__webpack_exports__);
187735
187616
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fields", function() { return fields; });
187736
187617
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MemberStatusOptions", function() { return MemberStatusOptions; });
187737
187618
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MemberRoleOptions", function() { return MemberRoleOptions; });
187619
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDetailsForMember", function() { return getDetailsForMember; });
187738
187620
  /* harmony import */ var app_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! app/utils */ "./src/app/utils.ts");
187739
187621
  /* harmony import */ var app_entities_member__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! app/entities/member */ "./src/app/entities/member.ts");
187740
187622
  /* harmony import */ var ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui/utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
@@ -187829,6 +187711,53 @@ const MemberRoleOptions = {
187829
187711
  [app_entities_member__WEBPACK_IMPORTED_MODULE_1__["MemberRole"].Member]: "Member",
187830
187712
  [app_entities_member__WEBPACK_IMPORTED_MODULE_1__["MemberRole"].Admin]: "Admin"
187831
187713
  };
187714
+ const membershipDetails = {
187715
+ none: {
187716
+ description: "No membership on file. Create a membership to add one.",
187717
+ type: "No membership found",
187718
+ allowMod: true
187719
+ },
187720
+ paypal: {
187721
+ description: "Membership handled by PayPal. Contact an administrator for details.",
187722
+ type: "Managed by PayPal",
187723
+ allowMod: false
187724
+ },
187725
+ notFound: {
187726
+ description: "Membership subscription cannot be found. Contact an administrator for assistance.",
187727
+ type: "Unknown",
187728
+ allowMod: false
187729
+ },
187730
+ noSubscription: {
187731
+ description: "No subscription found. Update membership to enable automatic renewals.",
187732
+ type: "Month-to-month",
187733
+ allowMod: true
187734
+ },
187735
+ earnedMembership: {
187736
+ description: "Membership sponsored by earned membership program.",
187737
+ type: "Earned Membership",
187738
+ allowMod: false
187739
+ },
187740
+ subscription: {
187741
+ description: "Recurring membership subscription by Braintree",
187742
+ type: "Subscription",
187743
+ allowMod: true
187744
+ }
187745
+ };
187746
+ const getDetailsForMember = member => {
187747
+ let details = membershipDetails.noSubscription;
187748
+
187749
+ if (member.subscription && !member.subscriptionId) {
187750
+ details = membershipDetails.paypal;
187751
+ } else if (member.subscriptionId) {
187752
+ details = membershipDetails.subscription;
187753
+ } else if (!member.expirationTime) {
187754
+ details = membershipDetails.none;
187755
+ } else if (member.earnedMembershipId) {
187756
+ details = membershipDetails.earnedMembership;
187757
+ }
187758
+
187759
+ return details;
187760
+ };
187832
187761
 
187833
187762
  /***/ }),
187834
187763
 
@@ -188477,134 +188406,6 @@ const membershipRenewalOptions = [{
188477
188406
 
188478
188407
  /***/ }),
188479
188408
 
188480
- /***/ "./src/ui/membership/CancelMembershipModal.tsx":
188481
- /*!*****************************************************!*\
188482
- !*** ./src/ui/membership/CancelMembershipModal.tsx ***!
188483
- \*****************************************************/
188484
- /*! exports provided: default */
188485
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
188486
-
188487
- "use strict";
188488
- __webpack_require__.r(__webpack_exports__);
188489
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
188490
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
188491
- /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Typography */ "./node_modules/@material-ui/core/Typography/index.js");
188492
- /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1__);
188493
- /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
188494
- /* harmony import */ var ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui/common/KeyValueItem */ "./src/ui/common/KeyValueItem.tsx");
188495
- /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
188496
- /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__);
188497
- /* harmony import */ var ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ui/utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
188498
- /* harmony import */ var _hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/useReadTransaction */ "./src/ui/hooks/useReadTransaction.ts");
188499
- /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
188500
- /* harmony import */ var _hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/useWriteTransaction */ "./src/ui/hooks/useWriteTransaction.ts");
188501
- /* harmony import */ var _common_ButtonRow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../common/ButtonRow */ "./src/ui/common/ButtonRow.tsx");
188502
- /* harmony import */ var _hooks_useModal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../hooks/useModal */ "./src/ui/hooks/useModal.ts");
188503
-
188504
-
188505
-
188506
-
188507
-
188508
-
188509
-
188510
-
188511
-
188512
-
188513
-
188514
-
188515
- const CancelMembershipModal = ({
188516
- subscriptionId,
188517
- memberId,
188518
- getMember
188519
- }) => {
188520
- const {
188521
- currentUser: {
188522
- isAdmin
188523
- }
188524
- } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_7__["useAuthState"])();
188525
- const {
188526
- isOpen,
188527
- openModal,
188528
- closeModal
188529
- } = Object(_hooks_useModal__WEBPACK_IMPORTED_MODULE_10__["default"])();
188530
- let data;
188531
-
188532
- if (isAdmin) {
188533
- const result = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_6__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["adminListInvoices"], {
188534
- resourceId: memberId
188535
- });
188536
- data = result.data || [];
188537
- } else {
188538
- const result = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_6__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["listInvoices"], {});
188539
- data = result.data || [];
188540
- }
188541
-
188542
- const invoice = data.find(invoice => invoice.subscriptionId === subscriptionId);
188543
- const {
188544
- isRequesting: loading,
188545
- error: loadingError,
188546
- data: subscription
188547
- } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_6__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["getSubscription"], subscriptionId);
188548
- const {
188549
- isRequesting,
188550
- error,
188551
- call
188552
- } = Object(_hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_8__["default"])(isAdmin ? makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["adminCancelSubscription"] : makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["cancelSubscription"], () => {
188553
- closeModal();
188554
- getMember();
188555
- });
188556
- const onSubmit = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
188557
- call(subscriptionId);
188558
- }, [call, subscriptionId]);
188559
-
188560
- if (!subscriptionId) {
188561
- return null;
188562
- }
188563
-
188564
- const isLoading = loading || isRequesting;
188565
- const apiError = error || loadingError;
188566
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ButtonRow__WEBPACK_IMPORTED_MODULE_9__["ActionButton"], {
188567
- id: "subscription-option-cancel",
188568
- color: "secondary",
188569
- variant: "outlined",
188570
- disabled: isLoading || !!apiError,
188571
- label: "Cancel Membership",
188572
- onClick: openModal
188573
- }), isOpen && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_2__["default"], {
188574
- id: "cancel-subscription",
188575
- loading: isLoading,
188576
- isOpen: isOpen,
188577
- closeHandler: closeModal,
188578
- title: "Cancel Membership",
188579
- onSubmit: onSubmit,
188580
- submitText: "Submit",
188581
- cancelText: "Close",
188582
- error: apiError
188583
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1___default.a, {
188584
- gutterBottom: true
188585
- }, "Are you sure you want to cancel your recurring membership? This action cannot be undone."), invoice && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_3__["default"], {
188586
- label: "Name"
188587
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
188588
- id: "cancel-subscription-name"
188589
- }, invoice.name)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_3__["default"], {
188590
- label: "Description"
188591
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
188592
- id: "cancel-subscription-description"
188593
- }, invoice.description))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_3__["default"], {
188594
- label: "Status"
188595
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
188596
- id: "cancel-subscription-status"
188597
- }, `${subscription.status}`)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_3__["default"], {
188598
- label: "Next Payment"
188599
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
188600
- id: "cancel-subscription-next-payment"
188601
- }, Object(ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_5__["timeToDate"])(subscription.nextBillingDate)))));
188602
- };
188603
-
188604
- /* harmony default export */ __webpack_exports__["default"] = (CancelMembershipModal);
188605
-
188606
- /***/ }),
188607
-
188608
188409
  /***/ "./src/ui/membership/ChangePaymentMethodModal.tsx":
188609
188410
  /*!********************************************************!*\
188610
188411
  !*** ./src/ui/membership/ChangePaymentMethodModal.tsx ***!
@@ -188619,12 +188420,10 @@ __webpack_require__.r(__webpack_exports__);
188619
188420
  /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
188620
188421
  /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
188621
188422
  /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__);
188622
- /* harmony import */ var _hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/useReadTransaction */ "./src/ui/hooks/useReadTransaction.ts");
188623
- /* harmony import */ var _hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks/useWriteTransaction */ "./src/ui/hooks/useWriteTransaction.ts");
188624
- /* harmony import */ var _common_ButtonRow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/ButtonRow */ "./src/ui/common/ButtonRow.tsx");
188625
- /* harmony import */ var _hooks_useModal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/useModal */ "./src/ui/hooks/useModal.ts");
188626
- /* harmony import */ var _checkout_PaymentMethodsContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../checkout/PaymentMethodsContainer */ "./src/ui/checkout/PaymentMethodsContainer.tsx");
188627
-
188423
+ /* harmony import */ var _hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hooks/useWriteTransaction */ "./src/ui/hooks/useWriteTransaction.ts");
188424
+ /* harmony import */ var _common_ButtonRow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/ButtonRow */ "./src/ui/common/ButtonRow.tsx");
188425
+ /* harmony import */ var _hooks_useModal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/useModal */ "./src/ui/hooks/useModal.ts");
188426
+ /* harmony import */ var _checkout_PaymentMethodsContainer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../checkout/PaymentMethodsContainer */ "./src/ui/checkout/PaymentMethodsContainer.tsx");
188628
188427
 
188629
188428
 
188630
188429
 
@@ -188634,31 +188433,24 @@ __webpack_require__.r(__webpack_exports__);
188634
188433
 
188635
188434
 
188636
188435
  const ChangePaymentMethodModal = ({
188637
- subscriptionId
188436
+ subscription: {
188437
+ id: subscriptionId,
188438
+ paymentMethodToken
188439
+ } = {}
188638
188440
  }) => {
188639
188441
  const {
188640
188442
  isOpen,
188641
188443
  openModal,
188642
188444
  closeModal
188643
- } = Object(_hooks_useModal__WEBPACK_IMPORTED_MODULE_6__["default"])();
188445
+ } = Object(_hooks_useModal__WEBPACK_IMPORTED_MODULE_5__["default"])();
188644
188446
  const [paymentMethodId, setPaymentMethodId] = react__WEBPACK_IMPORTED_MODULE_0__["useState"]();
188645
- const {
188646
- isRequesting: loading,
188647
- error: loadingError,
188648
- data: subscription,
188649
- refresh
188650
- } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_3__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["getSubscription"], subscriptionId);
188651
188447
  const {
188652
188448
  isRequesting,
188653
188449
  error,
188654
188450
  call
188655
- } = Object(_hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_4__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["updateSubscription"], () => {
188451
+ } = Object(_hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_3__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["updateSubscription"], () => {
188656
188452
  closeModal();
188657
- refresh();
188658
188453
  });
188659
- react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
188660
- subscription && setPaymentMethodId(subscription.paymentMethodToken);
188661
- }, [JSON.stringify(subscription)]);
188662
188454
  const onSubmit = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](async () => {
188663
188455
  paymentMethodId && call(subscriptionId, {
188664
188456
  paymentMethodToken: paymentMethodId
@@ -188669,13 +188461,11 @@ const ChangePaymentMethodModal = ({
188669
188461
  return null;
188670
188462
  }
188671
188463
 
188672
- const isLoading = loading || isRequesting;
188673
- const apiError = error || loadingError;
188674
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ButtonRow__WEBPACK_IMPORTED_MODULE_5__["ActionButton"], {
188464
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ButtonRow__WEBPACK_IMPORTED_MODULE_4__["ActionButton"], {
188675
188465
  id: "subscription-option-payment-method",
188676
188466
  color: "primary",
188677
188467
  variant: "contained",
188678
- disabled: isLoading || !!apiError,
188468
+ disabled: isRequesting || !!error,
188679
188469
  label: "Change Payment Method",
188680
188470
  onClick: openModal
188681
188471
  }), isOpen && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_1__["default"], {
@@ -188683,12 +188473,12 @@ const ChangePaymentMethodModal = ({
188683
188473
  isOpen: true,
188684
188474
  closeHandler: closeModal,
188685
188475
  onSubmit: onSubmit,
188686
- loading: isLoading,
188687
- error: apiError
188688
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_checkout_PaymentMethodsContainer__WEBPACK_IMPORTED_MODULE_7__["default"], {
188476
+ loading: isRequesting,
188477
+ error: error
188478
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_checkout_PaymentMethodsContainer__WEBPACK_IMPORTED_MODULE_6__["default"], {
188689
188479
  onPaymentMethodChange: setPaymentMethodId,
188690
188480
  title: "Select or add a new payment method",
188691
- subscription: subscription
188481
+ paymentMethodToken: paymentMethodToken
188692
188482
  })));
188693
188483
  };
188694
188484
 
@@ -188953,368 +188743,6 @@ const MembershipSelect = ({
188953
188743
 
188954
188744
  /***/ }),
188955
188745
 
188956
- /***/ "./src/ui/membership/NoSubscriptionDetails.tsx":
188957
- /*!*****************************************************!*\
188958
- !*** ./src/ui/membership/NoSubscriptionDetails.tsx ***!
188959
- \*****************************************************/
188960
- /*! exports provided: default */
188961
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
188962
-
188963
- "use strict";
188964
- __webpack_require__.r(__webpack_exports__);
188965
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
188966
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
188967
- /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! use-react-router */ "./node_modules/use-react-router/use-react-router.js");
188968
- /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(use_react_router__WEBPACK_IMPORTED_MODULE_1__);
188969
- /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Grid */ "./node_modules/@material-ui/core/Grid/index.js");
188970
- /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);
188971
- /* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/Button */ "./node_modules/@material-ui/core/Button/index.js");
188972
- /* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_3__);
188973
- /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/core/Typography */ "./node_modules/@material-ui/core/Typography/index.js");
188974
- /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4__);
188975
- /* harmony import */ var ui_membership_MembershipSelectForm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ui/membership/MembershipSelectForm */ "./src/ui/membership/MembershipSelectForm.tsx");
188976
- /* harmony import */ var ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui/common/KeyValueItem */ "./src/ui/common/KeyValueItem.tsx");
188977
- /* harmony import */ var ui_member_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/member/utils */ "./src/ui/member/utils.ts");
188978
- /* harmony import */ var ui_member_MemberStatusLabel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ui/member/MemberStatusLabel */ "./src/ui/member/MemberStatusLabel.tsx");
188979
- /* harmony import */ var ui_membership_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ui/membership/constants */ "./src/ui/membership/constants.ts");
188980
- /* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! app/constants */ "./src/app/constants.ts");
188981
- /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
188982
- /* harmony import */ var _hooks_useModal__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../hooks/useModal */ "./src/ui/hooks/useModal.ts");
188983
- /* harmony import */ var ui_checkout_cart__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ui/checkout/cart */ "./src/ui/checkout/cart.ts");
188984
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
188985
-
188986
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
188987
-
188988
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
188989
-
188990
-
188991
-
188992
-
188993
-
188994
-
188995
-
188996
-
188997
-
188998
-
188999
-
189000
-
189001
-
189002
-
189003
-
189004
-
189005
- /**
189006
- * Component for when a member is viewing membership details but they don't have a subscription yet
189007
- */
189008
- const NoSubscriptionDetails = ({
189009
- member
189010
- }) => {
189011
- const {
189012
- isOpen,
189013
- openModal,
189014
- closeModal
189015
- } = Object(_hooks_useModal__WEBPACK_IMPORTED_MODULE_12__["default"])();
189016
- const [option, setOption] = react__WEBPACK_IMPORTED_MODULE_0__["useState"]();
189017
- const [error, setError] = react__WEBPACK_IMPORTED_MODULE_0__["useState"]();
189018
- const {
189019
- history
189020
- } = use_react_router__WEBPACK_IMPORTED_MODULE_1___default()();
189021
- const resetCart = Object(ui_checkout_cart__WEBPACK_IMPORTED_MODULE_13__["useEmptyCart"])();
189022
- const addToCart = Object(ui_checkout_cart__WEBPACK_IMPORTED_MODULE_13__["useAddToCart"])();
189023
- const onSelect = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]((option, discountId) => {
189024
- setOption(_objectSpread({}, option, {}, {
189025
- discountId
189026
- }));
189027
- setError("");
189028
- }, [setOption]);
189029
- const onSubmit = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](async () => {
189030
- if (option) {
189031
- resetCart();
189032
- addToCart(option);
189033
- history.push(app_constants__WEBPACK_IMPORTED_MODULE_10__["Routing"].Checkout);
189034
- } else {
189035
- setError("Select an option to continue");
189036
- }
189037
- }, [option]);
189038
- const details = Object(ui_membership_constants__WEBPACK_IMPORTED_MODULE_9__["getDetailsForMember"])(member);
189039
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, isOpen && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_11__["default"], {
189040
- id: "select-membership",
189041
- fullScreen: true,
189042
- isOpen: isOpen,
189043
- closeHandler: closeModal,
189044
- onSubmit: onSubmit,
189045
- error: error
189046
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_membership_MembershipSelectForm__WEBPACK_IMPORTED_MODULE_5__["default"], {
189047
- allowNone: false,
189048
- onSelect: onSelect
189049
- })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
189050
- container: true,
189051
- spacing: 16
189052
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
189053
- item: true,
189054
- xs: 12
189055
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
189056
- label: "Membership Expiration"
189057
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
189058
- id: "member-detail-expiration"
189059
- }, Object(ui_member_utils__WEBPACK_IMPORTED_MODULE_7__["displayMemberExpiration"])(member))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
189060
- label: "Membership Status"
189061
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_member_MemberStatusLabel__WEBPACK_IMPORTED_MODULE_8__["default"], {
189062
- id: "member-detail-status",
189063
- member: member
189064
- })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
189065
- label: "Membership Type"
189066
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
189067
- id: "member-detail-type"
189068
- }, details.type))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
189069
- item: true,
189070
- xs: 12
189071
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4___default.a, null, details.description)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
189072
- item: true,
189073
- xs: 12
189074
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_3___default.a, {
189075
- id: "settings-create-membership-button",
189076
- variant: "contained",
189077
- disabled: !details.allowMod,
189078
- onClick: openModal
189079
- }, member.expirationTime ? "Update Membership" : "Create Membership"))));
189080
- };
189081
-
189082
- /* harmony default export */ __webpack_exports__["default"] = (NoSubscriptionDetails);
189083
-
189084
- /***/ }),
189085
-
189086
- /***/ "./src/ui/membership/SubscriptionDetails.tsx":
189087
- /*!***************************************************!*\
189088
- !*** ./src/ui/membership/SubscriptionDetails.tsx ***!
189089
- \***************************************************/
189090
- /*! exports provided: default */
189091
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
189092
-
189093
- "use strict";
189094
- __webpack_require__.r(__webpack_exports__);
189095
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
189096
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
189097
- /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Grid */ "./node_modules/@material-ui/core/Grid/index.js");
189098
- /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1__);
189099
- /* harmony import */ var ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui/common/KeyValueItem */ "./src/ui/common/KeyValueItem.tsx");
189100
- /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
189101
- /* harmony import */ var _hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks/useReadTransaction */ "./src/ui/hooks/useReadTransaction.ts");
189102
- /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
189103
- /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_5__);
189104
- /* harmony import */ var _utils_timeToDate__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
189105
- /* harmony import */ var _common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../common/LoadingOverlay */ "./src/ui/common/LoadingOverlay.tsx");
189106
- /* harmony import */ var _ChangePaymentMethodModal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ChangePaymentMethodModal */ "./src/ui/membership/ChangePaymentMethodModal.tsx");
189107
- /* harmony import */ var _CancelMembershipModal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CancelMembershipModal */ "./src/ui/membership/CancelMembershipModal.tsx");
189108
-
189109
-
189110
-
189111
-
189112
-
189113
-
189114
-
189115
-
189116
-
189117
-
189118
-
189119
- const SubscriptionDetails = ({
189120
- subscriptionId,
189121
- memberId,
189122
- getMember
189123
- }) => {
189124
- const {
189125
- currentUser: {
189126
- isAdmin
189127
- }
189128
- } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_3__["useAuthState"])();
189129
- let data;
189130
- let invoicesLoading;
189131
-
189132
- if (isAdmin) {
189133
- const result = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_4__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_5__["adminListInvoices"], {
189134
- resourceId: memberId
189135
- });
189136
- data = result.data || [];
189137
- invoicesLoading = result.isRequesting;
189138
- } else {
189139
- const result = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_4__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_5__["listInvoices"], {});
189140
- data = result.data || [];
189141
- invoicesLoading = result.isRequesting;
189142
- }
189143
-
189144
- const invoice = data.find(invoice => invoice.subscriptionId === subscriptionId);
189145
- const {
189146
- isRequesting,
189147
- data: subscription
189148
- } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_4__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_5__["getSubscription"], subscriptionId);
189149
- const loading = isRequesting || invoicesLoading;
189150
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
189151
- container: true,
189152
- spacing: 24
189153
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
189154
- item: true,
189155
- xs: 12
189156
- }, loading || !subscription ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_7__["default"], {
189157
- id: "update-membership-modal-loading",
189158
- contained: true
189159
- }) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, invoice && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_2__["default"], {
189160
- label: "Name"
189161
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
189162
- id: "cancel-subscription-name"
189163
- }, invoice.name)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_2__["default"], {
189164
- label: "Description"
189165
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
189166
- id: "cancel-subscription-description"
189167
- }, invoice.description))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_2__["default"], {
189168
- label: "Status"
189169
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
189170
- id: "subscription-status"
189171
- }, `${subscription.status}`)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_2__["default"], {
189172
- label: "Next Payment"
189173
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
189174
- id: "subscription-next-payment"
189175
- }, Object(_utils_timeToDate__WEBPACK_IMPORTED_MODULE_6__["timeToDate"])(subscription.nextBillingDate)))))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
189176
- container: true,
189177
- spacing: 24
189178
- }, subscriptionId && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
189179
- item: true,
189180
- xs: 12
189181
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_ChangePaymentMethodModal__WEBPACK_IMPORTED_MODULE_8__["default"], {
189182
- subscriptionId: subscriptionId
189183
- }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_CancelMembershipModal__WEBPACK_IMPORTED_MODULE_9__["default"], {
189184
- subscriptionId: subscriptionId,
189185
- memberId: memberId,
189186
- getMember: getMember
189187
- }))));
189188
- };
189189
-
189190
- /* harmony default export */ __webpack_exports__["default"] = (SubscriptionDetails);
189191
-
189192
- /***/ }),
189193
-
189194
- /***/ "./src/ui/membership/UpdateMembershipForm.tsx":
189195
- /*!****************************************************!*\
189196
- !*** ./src/ui/membership/UpdateMembershipForm.tsx ***!
189197
- \****************************************************/
189198
- /*! exports provided: default */
189199
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
189200
-
189201
- "use strict";
189202
- __webpack_require__.r(__webpack_exports__);
189203
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
189204
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
189205
- /* harmony import */ var ui_common_Form__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ui/common/Form */ "./src/ui/common/Form.tsx");
189206
- /* harmony import */ var _SubscriptionDetails__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SubscriptionDetails */ "./src/ui/membership/SubscriptionDetails.tsx");
189207
- /* harmony import */ var _NoSubscriptionDetails__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NoSubscriptionDetails */ "./src/ui/membership/NoSubscriptionDetails.tsx");
189208
- /* harmony import */ var _common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/LoadingOverlay */ "./src/ui/common/LoadingOverlay.tsx");
189209
-
189210
-
189211
-
189212
-
189213
-
189214
- /*
189215
- View Current Membership Info
189216
- If no subscription, can purchase a membership
189217
- When selecting a membership & submitting form, create an invoice, and go to checkout
189218
-
189219
- If subscription, can cancel or change payment method
189220
- Need to display notification that can only have one subscription active so if they'd like to change
189221
- membership then they need to cancel their current one and select a new one.
189222
- Changing methods renders PaymentMethodsContainer w/ managing methods false
189223
-
189224
- */
189225
- // Need to determine current membership state
189226
- // If has subscription, can cancel or change - change is just a cancel and create
189227
- // Cancelling subscription needs to delete all oustanding invoices for that subscription
189228
- // Creating a subscription will create an invoice for it to be settled automatically
189229
- // Need to watch for payments from subscription in order to settle automatically
189230
- // Also need to support changing payment methods
189231
- // If doesn't have subscription, may be month to month or non member
189232
- // If month to month, delete existing invoice & create subscription
189233
- // If non member, going through orig checkout process
189234
-
189235
- const UpdateMembershipForm = ({
189236
- member,
189237
- subscriptionId,
189238
- getMember
189239
- }) => {
189240
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_Form__WEBPACK_IMPORTED_MODULE_1__["default"], {
189241
- id: "update-membership-modal",
189242
- title: "Membership"
189243
- }, !member ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_4__["default"], {
189244
- id: "update-membership-modal-loading"
189245
- }) : subscriptionId ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_SubscriptionDetails__WEBPACK_IMPORTED_MODULE_2__["default"], {
189246
- subscriptionId: subscriptionId,
189247
- memberId: member.id,
189248
- getMember: getMember
189249
- }) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_NoSubscriptionDetails__WEBPACK_IMPORTED_MODULE_3__["default"], {
189250
- member: member
189251
- }));
189252
- };
189253
-
189254
- /* harmony default export */ __webpack_exports__["default"] = (UpdateMembershipForm);
189255
-
189256
- /***/ }),
189257
-
189258
- /***/ "./src/ui/membership/constants.ts":
189259
- /*!****************************************!*\
189260
- !*** ./src/ui/membership/constants.ts ***!
189261
- \****************************************/
189262
- /*! exports provided: getDetailsForMember */
189263
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
189264
-
189265
- "use strict";
189266
- __webpack_require__.r(__webpack_exports__);
189267
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDetailsForMember", function() { return getDetailsForMember; });
189268
- const membershipDetails = {
189269
- none: {
189270
- description: "No membership on file. Create a membership to add one.",
189271
- type: "No membership found",
189272
- allowMod: true
189273
- },
189274
- paypal: {
189275
- description: "Membership handled by PayPal. Contact an administrator for details.",
189276
- type: "Managed by PayPal",
189277
- allowMod: false
189278
- },
189279
- notFound: {
189280
- description: "Membership subscription cannot be found. Contact an administrator for assistance.",
189281
- type: "Unknown",
189282
- allowMod: false
189283
- },
189284
- noSubscription: {
189285
- description: "No subscription found. Update membership to enable automatic renewals.",
189286
- type: "Month-to-month",
189287
- allowMod: true
189288
- },
189289
- earnedMembership: {
189290
- description: "Membership sponsored by earned membership program.",
189291
- type: "Earned Membership",
189292
- allowMod: false
189293
- },
189294
- subscription: {
189295
- description: "Recurring membership subscription by Braintree",
189296
- type: "Subscription",
189297
- allowMod: true
189298
- }
189299
- };
189300
- const getDetailsForMember = member => {
189301
- let details = membershipDetails.noSubscription;
189302
-
189303
- if (member.subscription && !member.subscriptionId) {
189304
- details = membershipDetails.paypal;
189305
- } else if (member.subscriptionId) {
189306
- details = membershipDetails.subscription;
189307
- } else if (!member.expirationTime) {
189308
- details = membershipDetails.none;
189309
- } else if (member.earnedMembershipId) {
189310
- details = membershipDetails.earnedMembership;
189311
- }
189312
-
189313
- return details;
189314
- };
189315
-
189316
- /***/ }),
189317
-
189318
188746
  /***/ "./src/ui/reducer.ts":
189319
188747
  /*!***************************!*\
189320
188748
  !*** ./src/ui/reducer.ts ***!
@@ -189332,11 +188760,10 @@ __webpack_require__.r(__webpack_exports__);
189332
188760
  /* harmony import */ var ui_members_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui/members/actions */ "./src/ui/members/actions.ts");
189333
188761
  /* harmony import */ var ui_rentals_actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ui/rentals/actions */ "./src/ui/rentals/actions.ts");
189334
188762
  /* harmony import */ var ui_billing_actions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ui/billing/actions */ "./src/ui/billing/actions.ts");
189335
- /* harmony import */ var ui_subscriptions_actions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui/subscriptions/actions */ "./src/ui/subscriptions/actions.ts");
189336
- /* harmony import */ var ui_member_actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/member/actions */ "./src/ui/member/actions.ts");
189337
- /* harmony import */ var ui_earnedMemberships_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ui/earnedMemberships/actions */ "./src/ui/earnedMemberships/actions.ts");
189338
- /* harmony import */ var ui_transactions_actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ui/transactions/actions */ "./src/ui/transactions/actions.ts");
189339
- /* harmony import */ var _checkout_cart__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./checkout/cart */ "./src/ui/checkout/cart.ts");
188763
+ /* harmony import */ var ui_member_actions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui/member/actions */ "./src/ui/member/actions.ts");
188764
+ /* harmony import */ var ui_earnedMemberships_actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/earnedMemberships/actions */ "./src/ui/earnedMemberships/actions.ts");
188765
+ /* harmony import */ var ui_transactions_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ui/transactions/actions */ "./src/ui/transactions/actions.ts");
188766
+ /* harmony import */ var _checkout_cart__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./checkout/cart */ "./src/ui/checkout/cart.ts");
189340
188767
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
189341
188768
 
189342
188769
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -189353,19 +188780,17 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
189353
188780
 
189354
188781
 
189355
188782
 
189356
-
189357
188783
  const getRootReducer = history => Object(redux__WEBPACK_IMPORTED_MODULE_0__["combineReducers"])({
189358
188784
  router: Object(connected_react_router__WEBPACK_IMPORTED_MODULE_1__["connectRouter"])(history),
189359
188785
  base: baseReducer,
189360
188786
  auth: ui_auth_actions__WEBPACK_IMPORTED_MODULE_2__["authReducer"],
189361
- cart: _checkout_cart__WEBPACK_IMPORTED_MODULE_10__["cartReducer"],
188787
+ cart: _checkout_cart__WEBPACK_IMPORTED_MODULE_9__["cartReducer"],
189362
188788
  members: ui_members_actions__WEBPACK_IMPORTED_MODULE_3__["membersReducer"],
189363
- member: ui_member_actions__WEBPACK_IMPORTED_MODULE_7__["memberReducer"],
188789
+ member: ui_member_actions__WEBPACK_IMPORTED_MODULE_6__["memberReducer"],
189364
188790
  rentals: ui_rentals_actions__WEBPACK_IMPORTED_MODULE_4__["rentalsReducer"],
189365
188791
  billing: ui_billing_actions__WEBPACK_IMPORTED_MODULE_5__["billingReducer"],
189366
- subscriptions: ui_subscriptions_actions__WEBPACK_IMPORTED_MODULE_6__["subscriptionsReducer"],
189367
- earnedMemberships: ui_earnedMemberships_actions__WEBPACK_IMPORTED_MODULE_8__["earnedMembershipsReducer"],
189368
- transactions: ui_transactions_actions__WEBPACK_IMPORTED_MODULE_9__["transactionsReducer"]
188792
+ earnedMemberships: ui_earnedMemberships_actions__WEBPACK_IMPORTED_MODULE_7__["earnedMembershipsReducer"],
188793
+ transactions: ui_transactions_actions__WEBPACK_IMPORTED_MODULE_8__["transactionsReducer"]
189369
188794
  });
189370
188795
  let TransactionAction;
189371
188796
 
@@ -191401,10 +190826,10 @@ const reportRequirementFields = (requirement, index) => ({
191401
190826
 
191402
190827
  /***/ }),
191403
190828
 
191404
- /***/ "./src/ui/subscriptions/DeleteSubscriptionModal.tsx":
191405
- /*!**********************************************************!*\
191406
- !*** ./src/ui/subscriptions/DeleteSubscriptionModal.tsx ***!
191407
- \**********************************************************/
190829
+ /***/ "./src/ui/settings/ManageRentalSubscriptions.tsx":
190830
+ /*!*******************************************************!*\
190831
+ !*** ./src/ui/settings/ManageRentalSubscriptions.tsx ***!
190832
+ \*******************************************************/
191408
190833
  /*! exports provided: default */
191409
190834
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
191410
190835
 
@@ -191412,12 +190837,19 @@ const reportRequirementFields = (requirement, index) => ({
191412
190837
  __webpack_require__.r(__webpack_exports__);
191413
190838
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
191414
190839
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
191415
- /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Typography */ "./node_modules/@material-ui/core/Typography/index.js");
191416
- /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1__);
191417
- /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
191418
- /* harmony import */ var ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui/common/KeyValueItem */ "./src/ui/common/KeyValueItem.tsx");
191419
- /* harmony import */ var ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ui/utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
191420
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
190840
+ /* harmony import */ var _material_ui_core_Card__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Card */ "./node_modules/@material-ui/core/Card/index.js");
190841
+ /* harmony import */ var _material_ui_core_Card__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Card__WEBPACK_IMPORTED_MODULE_1__);
190842
+ /* harmony import */ var _material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/CardContent */ "./node_modules/@material-ui/core/CardContent/index.js");
190843
+ /* harmony import */ var _material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_2__);
190844
+ /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/Typography */ "./node_modules/@material-ui/core/Typography/index.js");
190845
+ /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3__);
190846
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
190847
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__);
190848
+ /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
190849
+ /* harmony import */ var _hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/useReadTransaction */ "./src/ui/hooks/useReadTransaction.ts");
190850
+ /* harmony import */ var _common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../common/LoadingOverlay */ "./src/ui/common/LoadingOverlay.tsx");
190851
+ /* harmony import */ var _common_ErrorMessage__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/ErrorMessage */ "./src/ui/common/ErrorMessage.tsx");
190852
+ /* harmony import */ var _subscriptions_SubscriptionDetails__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../subscriptions/SubscriptionDetails */ "./src/ui/subscriptions/SubscriptionDetails.tsx");
191421
190853
 
191422
190854
 
191423
190855
 
@@ -191425,65 +190857,54 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
191425
190857
 
191426
190858
 
191427
190859
 
191428
- class DeleteSubscription extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
191429
- constructor(...args) {
191430
- super(...args);
191431
190860
 
191432
- _defineProperty(this, "formRef", void 0);
191433
190861
 
191434
- _defineProperty(this, "setFormRef", ref => this.formRef = ref);
191435
- }
191436
190862
 
191437
- render() {
191438
- const {
191439
- isOpen,
191440
- onClose,
191441
- isRequesting,
191442
- error,
191443
- onSubmit,
191444
- subscription
191445
- } = this.props;
191446
- return subscription ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_2__["default"], {
191447
- formRef: this.setFormRef,
191448
- id: "cancel-subscription",
191449
- loading: isRequesting,
191450
- isOpen: isOpen,
191451
- closeHandler: onClose,
191452
- title: "Cancel Subscription",
191453
- onSubmit: onSubmit,
191454
- submitText: "Cancel Subscription",
191455
- error: error
191456
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1___default.a, {
191457
- gutterBottom: true
191458
- }, "Are you sure you want to cancel this subscription? This action cannot be undone."), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_3__["default"], {
191459
- label: "Member"
191460
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
191461
- id: "cancel-subscription-member"
191462
- }, subscription.memberName)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_3__["default"], {
191463
- label: "Type"
191464
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
191465
- id: "cancel-subscription-resource"
191466
- }, `${subscription.resourceClass}`)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_3__["default"], {
191467
- label: "Status"
191468
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
191469
- id: "cancel-subscription-status"
191470
- }, `${subscription.status}`)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_3__["default"], {
191471
- label: "Next Payment"
191472
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
191473
- id: "cancel-subscription-next-payment"
191474
- }, Object(ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_4__["timeToDate"])(subscription.nextBillingDate)))) : null;
190863
+
190864
+ const ManageRentalSubscriptions = () => {
190865
+ const {
190866
+ currentUser: {
190867
+ id: memberId
190868
+ }
190869
+ } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_5__["useAuthState"])();
190870
+ const {
190871
+ isRequesting: rentalsLoading,
190872
+ data: rentals = [],
190873
+ error: rentalsError
190874
+ } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_6__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["listRentals"]);
190875
+ ;
190876
+ const subscriptionRentals = rentals.filter(rental => !!rental.subscriptionId);
190877
+ const fallbackUI = rentalsLoading && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_7__["default"], {
190878
+ id: "manage-rental-subscription-loading",
190879
+ contained: true
190880
+ }) || rentalsError && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ErrorMessage__WEBPACK_IMPORTED_MODULE_8__["default"], {
190881
+ error: rentalsError
190882
+ });
190883
+
190884
+ if (!rentalsLoading && !rentalsError && !subscriptionRentals.length) {
190885
+ return null;
191475
190886
  }
191476
190887
 
191477
- }
190888
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Card__WEBPACK_IMPORTED_MODULE_1___default.a, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_2___default.a, null, fallbackUI || react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3___default.a, {
190889
+ variant: "h4",
190890
+ gutterBottom: true
190891
+ }, "Rentals"), subscriptionRentals.map(rental => {
190892
+ react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_subscriptions_SubscriptionDetails__WEBPACK_IMPORTED_MODULE_9__["default"], {
190893
+ memberId: memberId,
190894
+ key: rental.id,
190895
+ rentalSubId: rental.subscriptionId
190896
+ });
190897
+ }))));
190898
+ };
191478
190899
 
191479
- /* harmony default export */ __webpack_exports__["default"] = (DeleteSubscription);
190900
+ /* harmony default export */ __webpack_exports__["default"] = (ManageRentalSubscriptions);
191480
190901
 
191481
190902
  /***/ }),
191482
190903
 
191483
- /***/ "./src/ui/subscriptions/SubscriptionsList.tsx":
191484
- /*!****************************************************!*\
191485
- !*** ./src/ui/subscriptions/SubscriptionsList.tsx ***!
191486
- \****************************************************/
190904
+ /***/ "./src/ui/settings/ManageSubscription.tsx":
190905
+ /*!************************************************!*\
190906
+ !*** ./src/ui/settings/ManageSubscription.tsx ***!
190907
+ \************************************************/
191487
190908
  /*! exports provided: default */
191488
190909
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
191489
190910
 
@@ -191491,33 +190912,53 @@ class DeleteSubscription extends react__WEBPACK_IMPORTED_MODULE_0__["Component"]
191491
190912
  __webpack_require__.r(__webpack_exports__);
191492
190913
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
191493
190914
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
191494
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js");
191495
- /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Grid */ "./node_modules/@material-ui/core/Grid/index.js");
191496
- /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);
191497
- /* harmony import */ var _material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/FormControlLabel */ "./node_modules/@material-ui/core/FormControlLabel/index.js");
191498
- /* harmony import */ var _material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_3__);
191499
- /* harmony import */ var _material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/core/Checkbox */ "./node_modules/@material-ui/core/Checkbox/index.js");
191500
- /* harmony import */ var _material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_4__);
191501
- /* harmony import */ var ui_common_table_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ui/common/table/constants */ "./src/ui/common/table/constants.ts");
191502
- /* harmony import */ var ui_common_table_TableContainer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui/common/table/TableContainer */ "./src/ui/common/table/TableContainer.tsx");
191503
- /* harmony import */ var ui_subscriptions_actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/subscriptions/actions */ "./src/ui/subscriptions/actions.ts");
191504
- /* harmony import */ var ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ui/utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
191505
- /* harmony import */ var ui_common_ButtonRow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ui/common/ButtonRow */ "./src/ui/common/ButtonRow.tsx");
191506
- /* harmony import */ var ui_subscriptions_DeleteSubscriptionModal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ui/subscriptions/DeleteSubscriptionModal */ "./src/ui/subscriptions/DeleteSubscriptionModal.tsx");
191507
- /* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! app/constants */ "./src/app/constants.ts");
191508
- /* harmony import */ var ui_subscriptions_UpdateSubscriptionContainer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ui/subscriptions/UpdateSubscriptionContainer */ "./src/ui/subscriptions/UpdateSubscriptionContainer.tsx");
191509
- /* harmony import */ var ui_utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ui/utils/numberAsCurrency */ "./src/ui/utils/numberAsCurrency.ts");
191510
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
190915
+ /* harmony import */ var _membership_ChangePaymentMethodModal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../membership/ChangePaymentMethodModal */ "./src/ui/membership/ChangePaymentMethodModal.tsx");
190916
+ /* harmony import */ var _subscriptions_CancelSubscriptionModal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../subscriptions/CancelSubscriptionModal */ "./src/ui/subscriptions/CancelSubscriptionModal.tsx");
191511
190917
 
191512
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
191513
190918
 
191514
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
191515
190919
 
191516
190920
 
190921
+ const ManageSubscription = ({
190922
+ subscription,
190923
+ onChange,
190924
+ memberId
190925
+ }) => {
190926
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_membership_ChangePaymentMethodModal__WEBPACK_IMPORTED_MODULE_1__["default"], {
190927
+ subscription: subscription,
190928
+ onSuccess: onChange
190929
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_subscriptions_CancelSubscriptionModal__WEBPACK_IMPORTED_MODULE_2__["default"], {
190930
+ subscription: subscription,
190931
+ memberId: memberId,
190932
+ onSuccess: onChange
190933
+ }));
190934
+ };
191517
190935
 
190936
+ /* harmony default export */ __webpack_exports__["default"] = (ManageSubscription);
191518
190937
 
190938
+ /***/ }),
191519
190939
 
190940
+ /***/ "./src/ui/settings/ManageSubscriptions.tsx":
190941
+ /*!*************************************************!*\
190942
+ !*** ./src/ui/settings/ManageSubscriptions.tsx ***!
190943
+ \*************************************************/
190944
+ /*! exports provided: default */
190945
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
191520
190946
 
190947
+ "use strict";
190948
+ __webpack_require__.r(__webpack_exports__);
190949
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
190950
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
190951
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Grid */ "./node_modules/@material-ui/core/Grid/index.js");
190952
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1__);
190953
+ /* harmony import */ var _material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Card */ "./node_modules/@material-ui/core/Card/index.js");
190954
+ /* harmony import */ var _material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2__);
190955
+ /* harmony import */ var _material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/CardContent */ "./node_modules/@material-ui/core/CardContent/index.js");
190956
+ /* harmony import */ var _material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3__);
190957
+ /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/core/Typography */ "./node_modules/@material-ui/core/Typography/index.js");
190958
+ /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4__);
190959
+ /* harmony import */ var _ManageRentalSubscriptions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ManageRentalSubscriptions */ "./src/ui/settings/ManageRentalSubscriptions.tsx");
190960
+ /* harmony import */ var _subscriptions_SubscriptionDetails__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../subscriptions/SubscriptionDetails */ "./src/ui/subscriptions/SubscriptionDetails.tsx");
190961
+ /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
191521
190962
 
191522
190963
 
191523
190964
 
@@ -191527,239 +190968,263 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
191527
190968
 
191528
190969
 
191529
190970
 
191530
- const fields = [{
191531
- id: "memberName",
191532
- label: "Member",
191533
- cell: row => row.memberName
191534
- }, {
191535
- id: "resourceClass",
191536
- label: "Type",
191537
- cell: row => row.resourceClass
191538
- }, {
191539
- id: "amount",
191540
- label: "Amount",
191541
- cell: row => Object(ui_utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_13__["numberAsCurrency"])(row.amount)
191542
- }, {
191543
- id: "status",
191544
- label: "Status",
191545
- cell: row => row.status
191546
- }, {
191547
- id: "nextBilling",
191548
- label: "Next Billing Date",
191549
- cell: row => Object(ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_8__["timeToDate"])(row.nextBillingDate)
191550
- }];
190971
+ const ManageSubscriptions = () => {
190972
+ const {
190973
+ currentUser: {
190974
+ id: currentUserId
190975
+ }
190976
+ } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_7__["useAuthState"])();
190977
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
190978
+ container: true,
190979
+ spacing: 24
190980
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
190981
+ item: true,
190982
+ xs: 12
190983
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2___default.a, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3___default.a, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4___default.a, {
190984
+ variant: "h4",
190985
+ gutterBottom: true
190986
+ }, "Membership"), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_subscriptions_SubscriptionDetails__WEBPACK_IMPORTED_MODULE_6__["default"], {
190987
+ memberId: currentUserId
190988
+ }))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_ManageRentalSubscriptions__WEBPACK_IMPORTED_MODULE_5__["default"], null)));
190989
+ };
191551
190990
 
191552
- class SubscriptionsList extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
191553
- constructor(props) {
191554
- super(props);
190991
+ /* harmony default export */ __webpack_exports__["default"] = (ManageSubscriptions);
191555
190992
 
191556
- _defineProperty(this, "getSubscriptions", () => {
191557
- const {
191558
- hideCancelled
191559
- } = this.state;
191560
- this.props.getSubscriptions(_objectSpread({}, hideCancelled && {
191561
- hideCancelled
191562
- }));
191563
- });
190993
+ /***/ }),
191564
190994
 
191565
- _defineProperty(this, "componentDidUpdate", prevProps => {
191566
- const {
191567
- isWriting,
191568
- writeError
191569
- } = this.props;
191570
- const {
191571
- isWriting: wasWriting
191572
- } = prevProps;
190995
+ /***/ "./src/ui/settings/SettingsContainer.tsx":
190996
+ /*!***********************************************!*\
190997
+ !*** ./src/ui/settings/SettingsContainer.tsx ***!
190998
+ \***********************************************/
190999
+ /*! exports provided: default */
191000
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
191573
191001
 
191574
- if (wasWriting && !isWriting && !writeError) {
191575
- this.getSubscriptions();
191576
- }
191577
- });
191002
+ "use strict";
191003
+ __webpack_require__.r(__webpack_exports__);
191004
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
191005
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
191006
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Grid */ "./node_modules/@material-ui/core/Grid/index.js");
191007
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1__);
191008
+ /* harmony import */ var _material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Card */ "./node_modules/@material-ui/core/Card/index.js");
191009
+ /* harmony import */ var _material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2__);
191010
+ /* harmony import */ var _material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/CardContent */ "./node_modules/@material-ui/core/CardContent/index.js");
191011
+ /* harmony import */ var _material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3__);
191012
+ /* harmony import */ var _material_ui_core_List__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/core/List */ "./node_modules/@material-ui/core/List/index.js");
191013
+ /* harmony import */ var _material_ui_core_List__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_List__WEBPACK_IMPORTED_MODULE_4__);
191014
+ /* harmony import */ var _material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core/ListItem */ "./node_modules/@material-ui/core/ListItem/index.js");
191015
+ /* harmony import */ var _material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5__);
191016
+ /* harmony import */ var _material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/core/ListItemText */ "./node_modules/@material-ui/core/ListItemText/index.js");
191017
+ /* harmony import */ var _material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6__);
191018
+ /* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! app/constants */ "./src/app/constants.ts");
191019
+ /* harmony import */ var ui_member_UpdateMemberContainer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ui/member/UpdateMemberContainer */ "./src/ui/member/UpdateMemberContainer.tsx");
191020
+ /* harmony import */ var ui_member_MemberForm__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ui/member/MemberForm */ "./src/ui/member/MemberForm.tsx");
191021
+ /* harmony import */ var ui_checkout_PaymentMethodsContainer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ui/checkout/PaymentMethodsContainer */ "./src/ui/checkout/PaymentMethodsContainer.tsx");
191022
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
191023
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_11__);
191024
+ /* harmony import */ var _hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../hooks/useReadTransaction */ "./src/ui/hooks/useReadTransaction.ts");
191025
+ /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
191026
+ /* harmony import */ var _ManageSubscriptions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ManageSubscriptions */ "./src/ui/settings/ManageSubscriptions.tsx");
191578
191027
 
191579
- _defineProperty(this, "getActionButtons", () => {
191580
- const {
191581
- selectedId
191582
- } = this.state;
191583
- const {
191584
- loading,
191585
- subscriptions
191586
- } = this.props;
191587
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_ButtonRow__WEBPACK_IMPORTED_MODULE_9__["default"], {
191588
- actionButtons: [{
191589
- id: "subscriptions-list-delete",
191590
- variant: "contained",
191591
- color: "secondary",
191592
- disabled: loading || !subscriptions[selectedId],
191593
- onClick: this.openDeleteForm,
191594
- label: "Cancel Subscription"
191595
- }]
191596
- });
191597
- });
191598
191028
 
191599
- _defineProperty(this, "onSelect", (id, selected) => {
191600
- if (selected) {
191601
- this.setState({
191602
- selectedId: id
191603
- });
191604
- } else {
191605
- this.setState({
191606
- selectedId: undefined
191607
- });
191608
- }
191609
- });
191610
191029
 
191611
- _defineProperty(this, "openDeleteForm", () => this.setState({
191612
- openDeleteForm: true
191613
- }));
191614
191030
 
191615
- _defineProperty(this, "closeDeleteForm", () => this.setState({
191616
- openDeleteForm: false
191617
- }));
191618
191031
 
191619
- _defineProperty(this, "rowId", row => row.id);
191620
191032
 
191621
- _defineProperty(this, "renderInvoiceForms", () => {
191622
- const {
191623
- selectedId,
191624
- openDeleteForm
191625
- } = this.state;
191626
- const {
191627
- subscriptions,
191628
- isAdmin
191629
- } = this.props;
191630
191033
 
191631
- const deleteModal = renderProps => {
191632
- const submit = async form => {
191633
- const success = await renderProps.submit(form);
191634
- success && this.setState({
191635
- selectedId: undefined
191636
- });
191637
- };
191638
191034
 
191639
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_subscriptions_DeleteSubscriptionModal__WEBPACK_IMPORTED_MODULE_10__["default"], {
191640
- ref: renderProps.setRef,
191641
- subscription: renderProps.subscription,
191642
- isOpen: renderProps.isOpen,
191643
- isRequesting: renderProps.isRequesting,
191644
- error: renderProps.error,
191645
- onClose: renderProps.closeHandler,
191646
- onSubmit: submit
191647
- });
191648
- };
191649
191035
 
191650
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_subscriptions_UpdateSubscriptionContainer__WEBPACK_IMPORTED_MODULE_12__["default"], {
191651
- operation: app_constants__WEBPACK_IMPORTED_MODULE_11__["CrudOperation"].Delete,
191652
- isOpen: openDeleteForm,
191653
- isAdmin: isAdmin,
191654
- subscription: subscriptions[selectedId],
191655
- closeHandler: this.closeDeleteForm,
191656
- render: deleteModal
191657
- }));
191658
- });
191659
191036
 
191660
- _defineProperty(this, "toggleSubscriptionView", () => this.setState(state => ({
191661
- hideCancelled: !state.hideCancelled
191662
- }), this.getSubscriptions));
191663
191037
 
191664
- this.state = {
191665
- hideCancelled: true,
191666
- selectedId: undefined,
191667
- pageNum: 0,
191668
- orderBy: "",
191669
- search: "",
191670
- order: ui_common_table_constants__WEBPACK_IMPORTED_MODULE_5__["SortDirection"].Asc,
191671
- openDeleteForm: false
191672
- };
191673
- }
191674
191038
 
191675
- componentDidMount() {
191676
- this.getSubscriptions();
191677
- }
191678
191039
 
191679
- render() {
191680
- const {
191681
- subscriptions: data,
191682
- totalItems,
191683
- loading,
191684
- error
191685
- } = this.props;
191686
- const {
191687
- selectedId,
191688
- hideCancelled
191689
- } = this.state;
191690
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
191691
- style: {
191692
- paddingTop: 20
191693
- }
191694
- }, this.getActionButtons()), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_3___default.a, {
191695
- control: react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_4___default.a, {
191696
- name: "hide-canceled",
191697
- value: "hide-canceled",
191698
- id: "hide-cancelled",
191699
- checked: !!hideCancelled,
191700
- onChange: this.toggleSubscriptionView,
191701
- color: "default"
191702
- }),
191703
- label: "Hide cancelled subscriptions."
191704
- })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_table_TableContainer__WEBPACK_IMPORTED_MODULE_6__["default"], {
191705
- id: "subscriptions-table",
191706
- title: "Subscriptions",
191707
- loading: loading,
191708
- data: Object.values(data),
191709
- error: error,
191710
- selectedIds: [selectedId],
191711
- totalItems: totalItems,
191712
- columns: fields,
191713
- rowId: this.rowId,
191714
- onSelect: this.onSelect
191715
- }), this.renderInvoiceForms());
191716
- }
191717
191040
 
191718
- }
191719
191041
 
191720
- const mapStateToProps = (state, _ownProps) => {
191042
+
191043
+
191044
+ const SettingsContainer = () => {
191721
191045
  const {
191722
- entities: subscriptions,
191723
- read: {
191724
- totalItems,
191725
- isRequesting: loading,
191726
- error
191046
+ currentUser: {
191047
+ id: currentUserId
191727
191048
  },
191728
- delete: {
191729
- isRequesting: isWriting,
191730
- error: writeError
191731
- }
191732
- } = state.subscriptions;
191049
+ permissions
191050
+ } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_13__["useAuthState"])();
191051
+ const billingEnabled = !!permissions[app_constants__WEBPACK_IMPORTED_MODULE_7__["Whitelists"].billing];
191052
+ const [selectedIndex, setIndex] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](0);
191053
+ const {
191054
+ isRequesting: loadingMember,
191055
+ error: memberError,
191056
+ data: member
191057
+ } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_12__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_11__["getMember"], currentUserId);
191058
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
191059
+ container: true,
191060
+ spacing: 16
191061
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
191062
+ item: true,
191063
+ md: 4,
191064
+ sm: 5,
191065
+ xs: 12
191066
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_List__WEBPACK_IMPORTED_MODULE_4___default.a, {
191067
+ component: "nav"
191068
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5___default.a, {
191069
+ button: true,
191070
+ selected: selectedIndex === 0,
191071
+ onClick: () => setIndex(0)
191072
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6___default.a, {
191073
+ id: "settings-profile",
191074
+ primary: "Personal Information"
191075
+ })), billingEnabled && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5___default.a, {
191076
+ button: true,
191077
+ selected: selectedIndex === 1,
191078
+ onClick: () => setIndex(1)
191079
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6___default.a, {
191080
+ id: "settings-membership",
191081
+ primary: "Subscriptions"
191082
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItem__WEBPACK_IMPORTED_MODULE_5___default.a, {
191083
+ button: true,
191084
+ selected: selectedIndex === 2,
191085
+ onClick: () => setIndex(2)
191086
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_ListItemText__WEBPACK_IMPORTED_MODULE_6___default.a, {
191087
+ id: "settings-payment-methods",
191088
+ primary: "Payment Methods"
191089
+ }))))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
191090
+ item: true,
191091
+ md: 8,
191092
+ sm: 7,
191093
+ xs: 12
191094
+ }, selectedIndex == 0 && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2___default.a, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3___default.a, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
191095
+ container: true,
191096
+ spacing: 16
191097
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
191098
+ item: true,
191099
+ xs: 12
191100
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_member_UpdateMemberContainer__WEBPACK_IMPORTED_MODULE_8__["default"], {
191101
+ closeHandler: () => {},
191102
+ operation: app_constants__WEBPACK_IMPORTED_MODULE_7__["CrudOperation"].Update,
191103
+ isOpen: selectedIndex === 0,
191104
+ member: member,
191105
+ render: renderProps => react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_member_MemberForm__WEBPACK_IMPORTED_MODULE_9__["default"], {
191106
+ ref: renderProps.setRef,
191107
+ member: member || {},
191108
+ isAdmin: false,
191109
+ isOpen: renderProps.isOpen,
191110
+ isRequesting: loadingMember || renderProps.isRequesting,
191111
+ error: memberError || renderProps.error,
191112
+ onClose: renderProps.closeHandler,
191113
+ onSubmit: renderProps.submit,
191114
+ noDialog: true,
191115
+ title: "Update Personal Information"
191116
+ })
191117
+ }))))), selectedIndex === 1 && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_ManageSubscriptions__WEBPACK_IMPORTED_MODULE_14__["default"], null), selectedIndex === 2 && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Card__WEBPACK_IMPORTED_MODULE_2___default.a, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_3___default.a, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
191118
+ container: true,
191119
+ spacing: 16
191120
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
191121
+ item: true,
191122
+ xs: 12
191123
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_checkout_PaymentMethodsContainer__WEBPACK_IMPORTED_MODULE_10__["default"], {
191124
+ title: "Manage Payment Methods",
191125
+ managingMethods: true
191126
+ })))))));
191127
+ };
191128
+
191129
+ /* harmony default export */ __webpack_exports__["default"] = (SettingsContainer);
191130
+
191131
+ /***/ }),
191132
+
191133
+ /***/ "./src/ui/subscriptions/CancelSubscriptionModal.tsx":
191134
+ /*!**********************************************************!*\
191135
+ !*** ./src/ui/subscriptions/CancelSubscriptionModal.tsx ***!
191136
+ \**********************************************************/
191137
+ /*! exports provided: default */
191138
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
191139
+
191140
+ "use strict";
191141
+ __webpack_require__.r(__webpack_exports__);
191142
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
191143
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
191144
+ /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Typography */ "./node_modules/@material-ui/core/Typography/index.js");
191145
+ /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1__);
191146
+ /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
191147
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
191148
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__);
191149
+ /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
191150
+ /* harmony import */ var _hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/useWriteTransaction */ "./src/ui/hooks/useWriteTransaction.ts");
191151
+ /* harmony import */ var _common_ButtonRow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common/ButtonRow */ "./src/ui/common/ButtonRow.tsx");
191152
+ /* harmony import */ var _hooks_useModal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../hooks/useModal */ "./src/ui/hooks/useModal.ts");
191153
+ /* harmony import */ var _SubscriptionDetails__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SubscriptionDetails */ "./src/ui/subscriptions/SubscriptionDetails.tsx");
191154
+
191155
+
191156
+
191157
+
191158
+
191159
+
191160
+
191161
+
191162
+
191163
+
191164
+ const CancelSubscriptionModal = ({
191165
+ subscription = {},
191166
+ memberId,
191167
+ onSuccess
191168
+ }) => {
191169
+ const {
191170
+ id: subscriptionId
191171
+ } = subscription;
191733
191172
  const {
191734
191173
  currentUser: {
191174
+ id,
191735
191175
  isAdmin
191736
191176
  }
191737
- } = state.auth;
191738
- return {
191739
- subscriptions: subscriptions,
191740
- isAdmin,
191741
- totalItems,
191742
- loading,
191177
+ } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_4__["useAuthState"])();
191178
+ const {
191179
+ isOpen,
191180
+ openModal,
191181
+ closeModal
191182
+ } = Object(_hooks_useModal__WEBPACK_IMPORTED_MODULE_7__["default"])();
191183
+ const asAdmin = isAdmin && id !== memberId;
191184
+ const {
191185
+ isRequesting,
191743
191186
  error,
191744
- isWriting,
191745
- writeError
191746
- };
191747
- };
191748
-
191749
- const mapDispatchToProps = dispatch => {
191750
- return {
191751
- getSubscriptions: queryParams => dispatch(Object(ui_subscriptions_actions__WEBPACK_IMPORTED_MODULE_7__["readSubscriptionsAction"])())
191752
- };
191187
+ call
191188
+ } = Object(_hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_5__["default"])(asAdmin ? makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__["adminCancelSubscription"] : makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__["cancelSubscription"], () => {
191189
+ closeModal();
191190
+ onSuccess && onSuccess();
191191
+ });
191192
+ const onSubmit = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
191193
+ call(subscriptionId);
191194
+ }, [call, subscriptionId]);
191195
+ const disableButton = !subscriptionId || subscription.status === "Canceled";
191196
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ButtonRow__WEBPACK_IMPORTED_MODULE_6__["ActionButton"], {
191197
+ id: "subscription-option-cancel",
191198
+ color: "secondary",
191199
+ variant: "outlined",
191200
+ disabled: disableButton,
191201
+ label: "Cancel Subscription",
191202
+ onClick: openModal
191203
+ }), isOpen && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_2__["default"], {
191204
+ id: "cancel-subscription",
191205
+ loading: isRequesting,
191206
+ isOpen: isOpen,
191207
+ closeHandler: closeModal,
191208
+ title: "Cancel Subscription",
191209
+ onSubmit: onSubmit,
191210
+ submitText: "Submit",
191211
+ cancelText: "Close",
191212
+ error: error
191213
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1___default.a, {
191214
+ gutterBottom: true
191215
+ }, "Are you sure you want to cancel your subscription? This action cannot be undone."), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_SubscriptionDetails__WEBPACK_IMPORTED_MODULE_8__["SubscriptionDetailsInner"], {
191216
+ subscription: subscription
191217
+ })));
191753
191218
  };
191754
191219
 
191755
- /* harmony default export */ __webpack_exports__["default"] = (Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["connect"])(mapStateToProps, mapDispatchToProps)(SubscriptionsList));
191220
+ /* harmony default export */ __webpack_exports__["default"] = (CancelSubscriptionModal);
191756
191221
 
191757
191222
  /***/ }),
191758
191223
 
191759
- /***/ "./src/ui/subscriptions/UpdateSubscriptionContainer.tsx":
191760
- /*!**************************************************************!*\
191761
- !*** ./src/ui/subscriptions/UpdateSubscriptionContainer.tsx ***!
191762
- \**************************************************************/
191224
+ /***/ "./src/ui/subscriptions/NoSubscriptionDetails.tsx":
191225
+ /*!********************************************************!*\
191226
+ !*** ./src/ui/subscriptions/NoSubscriptionDetails.tsx ***!
191227
+ \********************************************************/
191763
191228
  /*! exports provided: default */
191764
191229
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
191765
191230
 
@@ -191767,9 +191232,23 @@ const mapDispatchToProps = dispatch => {
191767
191232
  __webpack_require__.r(__webpack_exports__);
191768
191233
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
191769
191234
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
191770
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js");
191771
- /* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! app/constants */ "./src/app/constants.ts");
191772
- /* harmony import */ var ui_subscriptions_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui/subscriptions/actions */ "./src/ui/subscriptions/actions.ts");
191235
+ /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! use-react-router */ "./node_modules/use-react-router/use-react-router.js");
191236
+ /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(use_react_router__WEBPACK_IMPORTED_MODULE_1__);
191237
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Grid */ "./node_modules/@material-ui/core/Grid/index.js");
191238
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);
191239
+ /* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/Button */ "./node_modules/@material-ui/core/Button/index.js");
191240
+ /* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_3__);
191241
+ /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/core/Typography */ "./node_modules/@material-ui/core/Typography/index.js");
191242
+ /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4__);
191243
+ /* harmony import */ var ui_membership_MembershipSelectForm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ui/membership/MembershipSelectForm */ "./src/ui/membership/MembershipSelectForm.tsx");
191244
+ /* harmony import */ var ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui/common/KeyValueItem */ "./src/ui/common/KeyValueItem.tsx");
191245
+ /* harmony import */ var ui_member_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/member/utils */ "./src/ui/member/utils.ts");
191246
+ /* harmony import */ var ui_member_MemberStatusLabel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ui/member/MemberStatusLabel */ "./src/ui/member/MemberStatusLabel.tsx");
191247
+ /* harmony import */ var ui_member_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ui/member/constants */ "./src/ui/member/constants.ts");
191248
+ /* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! app/constants */ "./src/app/constants.ts");
191249
+ /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
191250
+ /* harmony import */ var _hooks_useModal__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../hooks/useModal */ "./src/ui/hooks/useModal.ts");
191251
+ /* harmony import */ var ui_checkout_cart__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ui/checkout/cart */ "./src/ui/checkout/cart.ts");
191773
191252
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
191774
191253
 
191775
191254
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -191781,121 +191260,292 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
191781
191260
 
191782
191261
 
191783
191262
 
191784
- class UpdateSubscription extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
191785
- constructor(...args) {
191786
- super(...args);
191787
191263
 
191788
- _defineProperty(this, "formRef", void 0);
191789
191264
 
191790
- _defineProperty(this, "setFormRef", ref => this.formRef = ref);
191791
191265
 
191792
- _defineProperty(this, "submit", async form => {
191793
- const {
191794
- subscription
191795
- } = this.props;
191796
- await this.props.dispatchSubscription(subscription.id);
191797
191266
 
191798
- if (!this.props.error) {
191799
- return true;
191800
- }
191801
- });
191802
- }
191803
191267
 
191804
- componentDidUpdate(prevProps) {
191805
- const {
191806
- isRequesting: wasRequesting
191807
- } = prevProps;
191808
- const {
191809
- isOpen,
191810
- isRequesting,
191811
- closeHandler,
191812
- error
191813
- } = this.props;
191814
191268
 
191815
- if (isOpen && wasRequesting && !isRequesting && !error) {
191816
- closeHandler();
191269
+
191270
+
191271
+
191272
+
191273
+ /**
191274
+ * Component for when a member is viewing membership details but they don't have a subscription yet
191275
+ */
191276
+ const NoSubscriptionDetails = ({
191277
+ member
191278
+ }) => {
191279
+ const {
191280
+ isOpen,
191281
+ openModal,
191282
+ closeModal
191283
+ } = Object(_hooks_useModal__WEBPACK_IMPORTED_MODULE_12__["default"])();
191284
+ const [option, setOption] = react__WEBPACK_IMPORTED_MODULE_0__["useState"]();
191285
+ const [error, setError] = react__WEBPACK_IMPORTED_MODULE_0__["useState"]();
191286
+ const {
191287
+ history
191288
+ } = use_react_router__WEBPACK_IMPORTED_MODULE_1___default()();
191289
+ const resetCart = Object(ui_checkout_cart__WEBPACK_IMPORTED_MODULE_13__["useEmptyCart"])();
191290
+ const addToCart = Object(ui_checkout_cart__WEBPACK_IMPORTED_MODULE_13__["useAddToCart"])();
191291
+ const onSelect = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]((option, discountId) => {
191292
+ setOption(_objectSpread({}, option, {}, {
191293
+ discountId
191294
+ }));
191295
+ setError("");
191296
+ }, [setOption]);
191297
+ const onSubmit = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](async () => {
191298
+ if (option) {
191299
+ resetCart();
191300
+ addToCart(option);
191301
+ history.push(app_constants__WEBPACK_IMPORTED_MODULE_10__["Routing"].Checkout);
191302
+ } else {
191303
+ setError("Select an option to continue");
191817
191304
  }
191818
- }
191305
+ }, [option]);
191306
+ const details = Object(ui_member_constants__WEBPACK_IMPORTED_MODULE_9__["getDetailsForMember"])(member);
191307
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, isOpen && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_11__["default"], {
191308
+ id: "select-membership",
191309
+ fullScreen: true,
191310
+ isOpen: isOpen,
191311
+ closeHandler: closeModal,
191312
+ onSubmit: onSubmit,
191313
+ error: error
191314
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_membership_MembershipSelectForm__WEBPACK_IMPORTED_MODULE_5__["default"], {
191315
+ allowNone: false,
191316
+ onSelect: onSelect
191317
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
191318
+ container: true,
191319
+ spacing: 16
191320
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
191321
+ item: true,
191322
+ xs: 12
191323
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
191324
+ label: "Membership Expiration"
191325
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
191326
+ id: "member-detail-expiration"
191327
+ }, Object(ui_member_utils__WEBPACK_IMPORTED_MODULE_7__["displayMemberExpiration"])(member))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
191328
+ label: "Membership Status"
191329
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_member_MemberStatusLabel__WEBPACK_IMPORTED_MODULE_8__["default"], {
191330
+ id: "member-detail-status",
191331
+ member: member
191332
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
191333
+ label: "Membership Type"
191334
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
191335
+ id: "member-detail-type"
191336
+ }, details.type))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
191337
+ item: true,
191338
+ xs: 12
191339
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4___default.a, null, details.description)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
191340
+ item: true,
191341
+ xs: 12
191342
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_3___default.a, {
191343
+ id: "settings-create-membership-button",
191344
+ variant: "contained",
191345
+ disabled: !details.allowMod,
191346
+ onClick: openModal
191347
+ }, member.expirationTime ? "Update Membership" : "Create Membership"))));
191348
+ };
191819
191349
 
191820
- render() {
191821
- const {
191822
- render
191823
- } = this.props;
191350
+ /* harmony default export */ __webpack_exports__["default"] = (NoSubscriptionDetails);
191824
191351
 
191825
- const renderPayload = _objectSpread({}, this.props, {
191826
- submit: this.submit,
191827
- setRef: this.setFormRef
191828
- });
191352
+ /***/ }),
191829
191353
 
191830
- return render(renderPayload);
191831
- }
191354
+ /***/ "./src/ui/subscriptions/SubscriptionDetails.tsx":
191355
+ /*!******************************************************!*\
191356
+ !*** ./src/ui/subscriptions/SubscriptionDetails.tsx ***!
191357
+ \******************************************************/
191358
+ /*! exports provided: SubscriptionDetailsInner, SubscriptionDetailsWithManagement, default */
191359
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
191832
191360
 
191833
- }
191361
+ "use strict";
191362
+ __webpack_require__.r(__webpack_exports__);
191363
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubscriptionDetailsInner", function() { return SubscriptionDetailsInner; });
191364
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubscriptionDetailsWithManagement", function() { return SubscriptionDetailsWithManagement; });
191365
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
191366
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
191367
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
191368
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_1__);
191369
+ /* harmony import */ var ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui/common/KeyValueItem */ "./src/ui/common/KeyValueItem.tsx");
191370
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/Grid */ "./node_modules/@material-ui/core/Grid/index.js");
191371
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3__);
191372
+ /* harmony import */ var _common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/LoadingOverlay */ "./src/ui/common/LoadingOverlay.tsx");
191373
+ /* harmony import */ var _hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/useReadTransaction */ "./src/ui/hooks/useReadTransaction.ts");
191374
+ /* harmony import */ var _common_ErrorMessage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common/ErrorMessage */ "./src/ui/common/ErrorMessage.tsx");
191375
+ /* harmony import */ var _invoice_InvoiceDetails__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../invoice/InvoiceDetails */ "./src/ui/invoice/InvoiceDetails.tsx");
191376
+ /* harmony import */ var _utils_timeToDate__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
191377
+ /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
191378
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils */ "./src/ui/subscriptions/utils.ts");
191379
+ /* harmony import */ var _settings_ManageSubscription__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../settings/ManageSubscription */ "./src/ui/settings/ManageSubscription.tsx");
191380
+ /* harmony import */ var _NoSubscriptionDetails__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./NoSubscriptionDetails */ "./src/ui/subscriptions/NoSubscriptionDetails.tsx");
191834
191381
 
191835
- const mapStateToProps = (state, ownProps) => {
191836
- let stateProps = {};
191837
- const {
191838
- operation
191839
- } = ownProps;
191840
191382
 
191841
- switch (operation) {
191842
- case app_constants__WEBPACK_IMPORTED_MODULE_2__["CrudOperation"].Delete:
191843
- stateProps = state.subscriptions.delete;
191844
- break;
191845
- }
191846
191383
 
191847
- const {
191848
- isRequesting,
191849
- error
191850
- } = stateProps;
191851
- return {
191852
- error,
191853
- isRequesting
191854
- };
191384
+
191385
+
191386
+
191387
+
191388
+
191389
+
191390
+
191391
+
191392
+
191393
+
191394
+ const SubscriptionDetailsInner = ({
191395
+ invoice,
191396
+ subscription
191397
+ }) => {
191398
+ const type = subscription && Object(_utils__WEBPACK_IMPORTED_MODULE_10__["renderPlanType"])(subscription.planId);
191399
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
191400
+ container: true,
191401
+ spacing: 24
191402
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
191403
+ item: true,
191404
+ xs: 12
191405
+ }, invoice && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_invoice_InvoiceDetails__WEBPACK_IMPORTED_MODULE_7__["default"], {
191406
+ invoice: invoice,
191407
+ summaryOnly: true
191408
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_2__["default"], {
191409
+ label: "Status"
191410
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
191411
+ id: "subscription-status"
191412
+ }, `${subscription.status}`)), type && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_2__["default"], {
191413
+ label: "Type"
191414
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
191415
+ id: "subscription-type"
191416
+ }, type)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_2__["default"], {
191417
+ label: "Next Payment"
191418
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
191419
+ id: "subscription-next-payment"
191420
+ }, Object(_utils_timeToDate__WEBPACK_IMPORTED_MODULE_8__["timeToDate"])(subscription.nextBillingDate)))));
191421
+ };
191422
+ const SubscriptionDetailsWithManagement = ({
191423
+ member,
191424
+ subscription,
191425
+ isLoading,
191426
+ error,
191427
+ onChange,
191428
+ invoice
191429
+ }) => {
191430
+ const fallbackUI = isLoading && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_4__["default"], {
191431
+ id: "update-membership-modal-loading",
191432
+ contained: true
191433
+ }) || error && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ErrorMessage__WEBPACK_IMPORTED_MODULE_6__["default"], {
191434
+ error: error
191435
+ });
191436
+ const subDetails = subscription && subscription.id ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SubscriptionDetailsInner, {
191437
+ subscription: subscription,
191438
+ invoice: invoice
191439
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
191440
+ container: true,
191441
+ spacing: 24
191442
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
191443
+ item: true,
191444
+ xs: 12
191445
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_settings_ManageSubscription__WEBPACK_IMPORTED_MODULE_11__["default"], {
191446
+ memberId: member.id,
191447
+ subscription: subscription,
191448
+ onChange: onChange,
191449
+ isLoading: isLoading,
191450
+ error: error
191451
+ })))) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_NoSubscriptionDetails__WEBPACK_IMPORTED_MODULE_12__["default"], {
191452
+ member: member
191453
+ });
191454
+ return fallbackUI || subDetails;
191855
191455
  };
191856
191456
 
191857
- const mapDispatchToProps = (dispatch, ownProps) => {
191457
+ const SubscriptionDetails = ({
191458
+ memberId,
191459
+ rentalSubId
191460
+ }) => {
191858
191461
  const {
191859
- isAdmin,
191860
- operation
191861
- } = ownProps;
191862
- return {
191863
- dispatchSubscription: async id => {
191864
- let action;
191462
+ currentUser: {
191463
+ id,
191464
+ isAdmin
191465
+ }
191466
+ } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_9__["useAuthState"])();
191467
+ const asAdmin = isAdmin && id !== memberId;
191468
+ const {
191469
+ isRequesting: loadingMember,
191470
+ error: getMemberError,
191471
+ data: member,
191472
+ refresh: reloadMember
191473
+ } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_5__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_1__["getMember"], id);
191474
+ let result = {};
191865
191475
 
191866
- switch (operation) {
191867
- case app_constants__WEBPACK_IMPORTED_MODULE_2__["CrudOperation"].Delete:
191868
- action = Object(ui_subscriptions_actions__WEBPACK_IMPORTED_MODULE_3__["deleteSubscriptionAction"])(id, isAdmin);
191869
- break;
191870
- }
191476
+ if (asAdmin) {
191477
+ result = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_5__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_1__["adminListInvoices"], {
191478
+ resourceId: memberId
191479
+ });
191480
+ } else {
191481
+ result = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_5__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_1__["listInvoices"], {});
191482
+ } // Use prop if exists
191871
191483
 
191872
- await dispatch(action);
191873
- }
191874
- };
191484
+
191485
+ const subscriptionId = rentalSubId || member ? member.subscriptionId : undefined;
191486
+ const {
191487
+ isRequesting: invoicesLoading,
191488
+ data: invoices = [],
191489
+ error: invoicesError,
191490
+ refresh: reloadInvoices
191491
+ } = result; // TODO: this should delay calling until we have sub ID
191492
+
191493
+ const {
191494
+ isRequesting: subscriptionLoading,
191495
+ data: subscription,
191496
+ error: subError,
191497
+ refresh: reloadSubscription
191498
+ } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_5__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_1__["getSubscription"], subscriptionId);
191499
+ const isLoading = loadingMember || subscriptionId && subscriptionLoading || invoicesLoading;
191500
+ const error = getMemberError || subscriptionId && subError || invoicesError;
191501
+ const subscriptionInvoice = invoices.find(invoice => invoice.subscriptionId === subscriptionId);
191502
+ const onChange = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
191503
+ reloadMember();
191504
+ reloadInvoices();
191505
+ reloadSubscription();
191506
+ }, [reloadMember, reloadInvoices, reloadSubscription]);
191507
+ const context = react__WEBPACK_IMPORTED_MODULE_0__["useMemo"](() => ({
191508
+ isLoading,
191509
+ error,
191510
+ subscription,
191511
+ member: member || {
191512
+ id: memberId
191513
+ },
191514
+ onChange,
191515
+ invoice: subscriptionInvoice
191516
+ }), [isLoading, error, subscription, onChange, subscriptionInvoice]);
191517
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SubscriptionDetailsWithManagement, context);
191875
191518
  };
191876
191519
 
191877
- /* harmony default export */ __webpack_exports__["default"] = (Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["connect"])(mapStateToProps, mapDispatchToProps)(UpdateSubscription));
191520
+ /* harmony default export */ __webpack_exports__["default"] = (SubscriptionDetails);
191878
191521
 
191879
191522
  /***/ }),
191880
191523
 
191881
- /***/ "./src/ui/subscriptions/actions.ts":
191882
- /*!*****************************************!*\
191883
- !*** ./src/ui/subscriptions/actions.ts ***!
191884
- \*****************************************/
191885
- /*! exports provided: readSubscriptionsAction, readSubscriptionAction, deleteSubscriptionAction, updateSubscriptionAction, subscriptionsReducer */
191524
+ /***/ "./src/ui/subscriptions/SubscriptionsList.tsx":
191525
+ /*!****************************************************!*\
191526
+ !*** ./src/ui/subscriptions/SubscriptionsList.tsx ***!
191527
+ \****************************************************/
191528
+ /*! exports provided: default */
191886
191529
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
191887
191530
 
191888
191531
  "use strict";
191889
191532
  __webpack_require__.r(__webpack_exports__);
191890
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "readSubscriptionsAction", function() { return readSubscriptionsAction; });
191891
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "readSubscriptionAction", function() { return readSubscriptionAction; });
191892
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deleteSubscriptionAction", function() { return deleteSubscriptionAction; });
191893
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateSubscriptionAction", function() { return updateSubscriptionAction; });
191894
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscriptionsReducer", function() { return subscriptionsReducer; });
191895
- /* harmony import */ var lodash_es_omit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash-es/omit */ "./node_modules/lodash-es/omit.js");
191896
- /* harmony import */ var ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ui/subscriptions/constants */ "./src/ui/subscriptions/constants.ts");
191897
- /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
191898
- /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__);
191533
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
191534
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
191535
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Grid */ "./node_modules/@material-ui/core/Grid/index.js");
191536
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1__);
191537
+ /* harmony import */ var _material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/FormControlLabel */ "./node_modules/@material-ui/core/FormControlLabel/index.js");
191538
+ /* harmony import */ var _material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_2__);
191539
+ /* harmony import */ var _material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/Checkbox */ "./node_modules/@material-ui/core/Checkbox/index.js");
191540
+ /* harmony import */ var _material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_3__);
191541
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! makerspace-ts-api-client */ "./node_modules/makerspace-ts-api-client/dist/apiClient.js");
191542
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__);
191543
+ /* harmony import */ var _common_table_StatefulTable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/table/StatefulTable */ "./src/ui/common/table/StatefulTable.tsx");
191544
+ /* harmony import */ var _utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/numberAsCurrency */ "./src/ui/utils/numberAsCurrency.ts");
191545
+ /* harmony import */ var _utils_timeToDate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
191546
+ /* harmony import */ var _utils_extractTotalItems__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/extractTotalItems */ "./src/ui/utils/extractTotalItems.ts");
191547
+ /* harmony import */ var _CancelSubscriptionModal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CancelSubscriptionModal */ "./src/ui/subscriptions/CancelSubscriptionModal.tsx");
191548
+ /* harmony import */ var _hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../hooks/useReadTransaction */ "./src/ui/hooks/useReadTransaction.ts");
191899
191549
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
191900
191550
 
191901
191551
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -191905,228 +191555,189 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
191905
191555
 
191906
191556
 
191907
191557
 
191908
- const readSubscriptionsAction = queryParams => async dispatch => {
191909
- dispatch({
191910
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].StartReadRequest
191911
- });
191912
- const result = await Object(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["adminListSubscriptions"])();
191913
191558
 
191914
- if (Object(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["isApiErrorResponse"])(result)) {
191915
- dispatch({
191916
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].GetSubscriptionsFailure,
191917
- error: result.error.message
191918
- });
191919
- } else {
191920
- const {
191921
- data,
191922
- response
191923
- } = result;
191924
- const totalItems = response.headers.get("total-items");
191925
- dispatch({
191926
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].GetSubscriptionsSuccess,
191927
- data: {
191928
- subscriptions: data,
191929
- totalItems: Number(totalItems)
191930
- }
191931
- });
191932
- }
191933
- };
191934
- const readSubscriptionAction = id => async dispatch => {
191935
- dispatch({
191936
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].StartReadRequest
191937
- });
191938
- const result = await Object(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["getSubscription"])(id);
191939
191559
 
191940
- if (Object(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["isApiErrorResponse"])(result)) {
191941
- dispatch({
191942
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].GetSubscriptionsFailure,
191943
- error: result.error.message
191944
- });
191945
- } else {
191946
- dispatch({
191947
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].GetSubscriptionsSuccess,
191948
- data: {
191949
- subscriptions: [result.data]
191950
- }
191951
- });
191952
- }
191953
- };
191954
- const deleteSubscriptionAction = (subscriptionId, admin = false) => async dispatch => {
191955
- dispatch({
191956
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].StartDeleteRequest
191957
- });
191958
- const func = admin ? makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["adminCancelSubscription"] : makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["cancelSubscription"];
191959
- const result = await func(subscriptionId);
191960
191560
 
191961
- if (Object(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["isApiErrorResponse"])(result)) {
191962
- dispatch({
191963
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].DeleteFailure,
191964
- error: result.error.message
191965
- });
191966
- } else {
191967
- dispatch({
191968
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].DeleteSuccess,
191969
- data: subscriptionId
191970
- });
191971
- }
191972
- };
191973
- const updateSubscriptionAction = (subscriptionId, subscriptionUpdate) => async dispatch => {
191974
- dispatch({
191975
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].StartUpdateRequest
191976
- });
191977
- const result = await Object(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["updateSubscription"])(subscriptionId, subscriptionUpdate);
191978
191561
 
191979
- if (Object(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["isApiErrorResponse"])(result)) {
191980
- dispatch({
191981
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].UpdateFailure,
191982
- error: result.error.message
191983
- });
191984
- } else {
191985
- dispatch({
191986
- type: ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].UpdateSuccess,
191987
- data: subscriptionId
191988
- });
191989
- }
191990
- };
191991
- const defaultState = {
191992
- entities: {},
191993
- read: {
191994
- isRequesting: false,
191995
- error: "",
191996
- totalItems: 0
191997
- },
191998
- delete: {
191999
- isRequesting: false,
192000
- error: ""
192001
- },
192002
- update: {
192003
- isRequesting: false,
192004
- error: ""
192005
- }
191562
+
191563
+
191564
+
191565
+
191566
+ const fields = [{
191567
+ id: "memberName",
191568
+ label: "Member",
191569
+ cell: row => row.memberName
191570
+ }, {
191571
+ id: "resourceClass",
191572
+ label: "Type",
191573
+ cell: row => row.resourceClass
191574
+ }, {
191575
+ id: "amount",
191576
+ label: "Amount",
191577
+ cell: row => Object(_utils_numberAsCurrency__WEBPACK_IMPORTED_MODULE_6__["numberAsCurrency"])(row.amount)
191578
+ }, {
191579
+ id: "status",
191580
+ label: "Status",
191581
+ cell: row => row.status
191582
+ }, {
191583
+ id: "nextBilling",
191584
+ label: "Next Billing Date",
191585
+ cell: row => Object(_utils_timeToDate__WEBPACK_IMPORTED_MODULE_7__["timeToDate"])(row.nextBillingDate)
191586
+ }];
191587
+
191588
+ const rowId = sub => sub.id;
191589
+
191590
+ const SubscriptionsTable = () => {
191591
+ const [hideCanceled, setHideCanceled] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](true);
191592
+ const toggleHideCanceled = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
191593
+ setHideCanceled(canceled => !canceled);
191594
+ }, [setHideCanceled]);
191595
+ const [selectedId, setSelectedId] = react__WEBPACK_IMPORTED_MODULE_0__["useState"]();
191596
+ const [queryParams, setQueryState, resetQuery] = Object(_common_table_StatefulTable__WEBPACK_IMPORTED_MODULE_5__["useQueryState"])();
191597
+ const {
191598
+ isRequesting,
191599
+ data: subscriptions = [],
191600
+ response,
191601
+ refresh,
191602
+ error
191603
+ } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_10__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_4__["adminListSubscriptions"], _objectSpread({}, queryParams, {
191604
+ hideCanceled
191605
+ }));
191606
+ const onCancel = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
191607
+ refresh();
191608
+ resetQuery();
191609
+ }, [refresh, resetQuery]);
191610
+ const selectedSubscription = subscriptions.find(sub => sub.id === selectedId);
191611
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
191612
+ container: true,
191613
+ spacing: 24,
191614
+ justify: "center"
191615
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
191616
+ item: true,
191617
+ xs: 12
191618
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_CancelSubscriptionModal__WEBPACK_IMPORTED_MODULE_9__["default"], {
191619
+ subscription: selectedSubscription,
191620
+ onSuccess: onCancel
191621
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_2___default.a, {
191622
+ control: react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_3___default.a, {
191623
+ name: "hide-canceled",
191624
+ value: "hide-canceled",
191625
+ id: "hide-canceled",
191626
+ checked: !!hideCanceled,
191627
+ onChange: toggleHideCanceled,
191628
+ color: "default"
191629
+ }),
191630
+ label: "Hide canceled subscriptions."
191631
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_table_StatefulTable__WEBPACK_IMPORTED_MODULE_5__["default"], {
191632
+ id: "subscriptions-table",
191633
+ title: "Subscriptions",
191634
+ loading: isRequesting,
191635
+ data: Object.values(subscriptions),
191636
+ error: error,
191637
+ totalItems: Object(_utils_extractTotalItems__WEBPACK_IMPORTED_MODULE_8__["default"])(response),
191638
+ selectedIds: selectedId,
191639
+ setSelectedIds: setSelectedId,
191640
+ queryParams: queryParams,
191641
+ setQuery: setQueryState,
191642
+ columns: fields,
191643
+ rowId: rowId
191644
+ })));
192006
191645
  };
192007
- const subscriptionsReducer = (state = defaultState, action) => {
192008
- switch (action.type) {
192009
- case ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].StartReadRequest:
192010
- return _objectSpread({}, state, {
192011
- read: _objectSpread({}, state.read, {
192012
- isRequesting: true
192013
- })
192014
- });
192015
191646
 
192016
- case ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].GetSubscriptionsSuccess:
192017
- const {
192018
- data: {
192019
- subscriptions,
192020
- totalItems
192021
- }
192022
- } = action;
192023
- const newSubs = {};
192024
- subscriptions.forEach(sub => {
192025
- newSubs[sub.id] = sub;
192026
- });
192027
- return _objectSpread({}, state, {
192028
- entities: newSubs,
192029
- read: _objectSpread({}, state.read, {
192030
- totalItems,
192031
- isRequesting: false,
192032
- error: ""
192033
- })
192034
- });
191647
+ /* harmony default export */ __webpack_exports__["default"] = (SubscriptionsTable);
192035
191648
 
192036
- case ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].GetSubscriptionsFailure:
192037
- const {
192038
- error
192039
- } = action;
192040
- return _objectSpread({}, state, {
192041
- read: _objectSpread({}, state.read, {
192042
- isRequesting: false,
192043
- error
192044
- })
192045
- });
191649
+ /***/ }),
192046
191650
 
192047
- case ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].StartDeleteRequest:
192048
- return _objectSpread({}, state, {
192049
- delete: _objectSpread({}, state.delete, {
192050
- isRequesting: true
192051
- })
192052
- });
191651
+ /***/ "./src/ui/subscriptions/ViewSubscriptionModal.tsx":
191652
+ /*!********************************************************!*\
191653
+ !*** ./src/ui/subscriptions/ViewSubscriptionModal.tsx ***!
191654
+ \********************************************************/
191655
+ /*! exports provided: default */
191656
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
192053
191657
 
192054
- case ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].DeleteSuccess:
192055
- return _objectSpread({}, state, {
192056
- entities: Object(lodash_es_omit__WEBPACK_IMPORTED_MODULE_0__["default"])(state.entities, [action.data]),
192057
- delete: _objectSpread({}, state.delete, {
192058
- isRequesting: false,
192059
- error: ""
192060
- })
192061
- });
191658
+ "use strict";
191659
+ __webpack_require__.r(__webpack_exports__);
191660
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
191661
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
191662
+ /* harmony import */ var _hooks_useModal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../hooks/useModal */ "./src/ui/hooks/useModal.ts");
191663
+ /* harmony import */ var _common_ButtonRow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/ButtonRow */ "./src/ui/common/ButtonRow.tsx");
191664
+ /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
191665
+ /* harmony import */ var _SubscriptionDetails__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SubscriptionDetails */ "./src/ui/subscriptions/SubscriptionDetails.tsx");
192062
191666
 
192063
- case ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].DeleteFailure:
192064
- const deleteError = action.error;
192065
- return _objectSpread({}, state, {
192066
- delete: _objectSpread({}, state.delete, {
192067
- isRequesting: false,
192068
- error: deleteError
192069
- })
192070
- });
192071
191667
 
192072
- case ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].StartUpdateRequest:
192073
- return _objectSpread({}, state, {
192074
- update: _objectSpread({}, state.update, {
192075
- isRequesting: true
192076
- })
192077
- });
192078
191668
 
192079
- case ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].UpdateSuccess:
192080
- const updatedSub = action.data;
192081
- return _objectSpread({}, state, {
192082
- entities: _objectSpread({}, state.entities, {
192083
- [updatedSub.id]: updatedSub
192084
- }),
192085
- update: _objectSpread({}, state.update, {
192086
- isRequesting: false,
192087
- error: ""
192088
- })
192089
- });
192090
191669
 
192091
- case ui_subscriptions_constants__WEBPACK_IMPORTED_MODULE_1__["Action"].UpdateFailure:
192092
- const updateError = action.error;
192093
- return _objectSpread({}, state, {
192094
- update: _objectSpread({}, state.update, {
192095
- isRequesting: false,
192096
- error: updateError
192097
- })
192098
- });
192099
191670
 
192100
- default:
192101
- return state;
192102
- }
191671
+
191672
+ const ViewSubscriptionModal = ({
191673
+ subscriptionId,
191674
+ memberId
191675
+ }) => {
191676
+ const {
191677
+ isOpen,
191678
+ openModal,
191679
+ closeModal
191680
+ } = Object(_hooks_useModal__WEBPACK_IMPORTED_MODULE_1__["default"])();
191681
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ButtonRow__WEBPACK_IMPORTED_MODULE_2__["ActionButton"], {
191682
+ id: "view-subscription-button",
191683
+ color: "secondary",
191684
+ variant: "outlined",
191685
+ label: "View / Manage",
191686
+ onClick: openModal
191687
+ }), isOpen && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_3__["default"], {
191688
+ id: "view-subscription",
191689
+ title: "Subscription",
191690
+ isOpen: isOpen,
191691
+ closeHandler: closeModal,
191692
+ cancelText: "Close"
191693
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_SubscriptionDetails__WEBPACK_IMPORTED_MODULE_4__["default"], {
191694
+ memberId: memberId
191695
+ })));
192103
191696
  };
192104
191697
 
191698
+ /* harmony default export */ __webpack_exports__["default"] = (ViewSubscriptionModal);
191699
+
192105
191700
  /***/ }),
192106
191701
 
192107
- /***/ "./src/ui/subscriptions/constants.ts":
192108
- /*!*******************************************!*\
192109
- !*** ./src/ui/subscriptions/constants.ts ***!
192110
- \*******************************************/
192111
- /*! exports provided: Action */
191702
+ /***/ "./src/ui/subscriptions/utils.ts":
191703
+ /*!***************************************!*\
191704
+ !*** ./src/ui/subscriptions/utils.ts ***!
191705
+ \***************************************/
191706
+ /*! exports provided: renderPlanType */
192112
191707
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
192113
191708
 
192114
191709
  "use strict";
192115
191710
  __webpack_require__.r(__webpack_exports__);
192116
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Action", function() { return Action; });
192117
- let Action;
191711
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderPlanType", function() { return renderPlanType; });
191712
+ const renderPlanType = planId => {
191713
+ const membership = planId.match(/membership/);
192118
191714
 
192119
- (function (Action) {
192120
- Action["StartReadRequest"] = "SUBSCRIPTIONS/START_READ_REQUEST";
192121
- Action["GetSubscriptionsSuccess"] = "SUBSCRIPTIONS/GET_SUBSCRIPTIONS_SUCCESS";
192122
- Action["GetSubscriptionsFailure"] = "SUBSCRIPTIONS/GET_SUBSCRIPTIONS_FAILURE";
192123
- Action["StartDeleteRequest"] = "SUBSCRIPTIONS/START_DELETE_REQUEST";
192124
- Action["DeleteSuccess"] = "SUBSCRIPTIONS/DELETE_SUCCESS";
192125
- Action["DeleteFailure"] = "SUBSCRIPTIONS/DELETE_FAILURE";
192126
- Action["StartUpdateRequest"] = "SUBSCRIPTIONS/START_UPDATE_REQUEST";
192127
- Action["UpdateSuccess"] = "SUBSCRIPTIONS/UPDATE_SUCCESS";
192128
- Action["UpdateFailure"] = "SUBSCRIPTIONS/UPDATE_FAILURE";
192129
- })(Action || (Action = {}));
191715
+ if (membership) {
191716
+ return "Membership";
191717
+ }
191718
+
191719
+ const rental = planId.match(/rental/);
191720
+
191721
+ if (rental) {
191722
+ const locker = planId.match(/locker/);
191723
+
191724
+ if (locker) {
191725
+ return "Locker Rental";
191726
+ }
191727
+
191728
+ const plot = planId.match(/plot/);
191729
+
191730
+ if (plot) {
191731
+ return "Plot Rental";
191732
+ }
191733
+
191734
+ const shelf = planId.match(/shelf/);
191735
+
191736
+ if (shelf) {
191737
+ return "Shelf Rental";
191738
+ }
191739
+ }
191740
+ };
192130
191741
 
192131
191742
  /***/ }),
192132
191743
 
@@ -193042,7 +192653,7 @@ const renderTransactionStatus = transaction => {
193042
192653
  switch (transaction.status) {
193043
192654
  case app_entities_transaction__WEBPACK_IMPORTED_MODULE_1__["TransactionStatus"].Settled:
193044
192655
  color = ui_constants__WEBPACK_IMPORTED_MODULE_2__["Status"].Success;
193045
- label = "Paid";
192656
+ label = "Successful";
193046
192657
  break;
193047
192658
 
193048
192659
  case app_entities_transaction__WEBPACK_IMPORTED_MODULE_1__["TransactionStatus"].Failed: