makerspace-react-rails 0.5.1 → 0.6.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.
@@ -102905,6 +102905,10 @@ function getRental(id) {
102905
102905
  return exports.makeRequest("GET", "/rentals/{id}".replace("{id}", id), undefined, "rental");
102906
102906
  }
102907
102907
  exports.getRental = getRental;
102908
+ function updateRental(id, updateRentalDetails) {
102909
+ return exports.makeRequest("PUT", "/rentals/{id}".replace("{id}", id), { rental: updateRentalDetails }, "rental");
102910
+ }
102911
+ exports.updateRental = updateRental;
102908
102912
  //# sourceMappingURL=apiClient.js.map
102909
102913
 
102910
102914
  /***/ }),
@@ -187035,7 +187039,7 @@ __webpack_require__.r(__webpack_exports__);
187035
187039
  /* harmony import */ var ui_settings_SettingsContainer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ui/settings/SettingsContainer */ "./src/ui/settings/SettingsContainer.tsx");
187036
187040
  /* harmony import */ var ui_checkout_Receipt__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ui/checkout/Receipt */ "./src/ui/checkout/Receipt.tsx");
187037
187041
  /* harmony import */ var ui_auth_SendRegistrationComponent__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ui/auth/SendRegistrationComponent */ "./src/ui/auth/SendRegistrationComponent.tsx");
187038
- /* harmony import */ var ui_documents_SignDocuments__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ui/documents/SignDocuments */ "./src/ui/documents/SignDocuments.tsx");
187042
+ /* harmony import */ var ui_documents_AgreementsContainer__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ui/documents/AgreementsContainer */ "./src/ui/documents/AgreementsContainer.tsx");
187039
187043
 
187040
187044
 
187041
187045
 
@@ -187064,8 +187068,8 @@ const PrivateRouting = ({
187064
187068
  component: ui_members_MembersList__WEBPACK_IMPORTED_MODULE_4__["default"]
187065
187069
  }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_router_dom__WEBPACK_IMPORTED_MODULE_1__["Route"], {
187066
187070
  exact: true,
187067
- path: app_constants__WEBPACK_IMPORTED_MODULE_2__["Routing"].Documents,
187068
- component: ui_documents_SignDocuments__WEBPACK_IMPORTED_MODULE_13__["default"]
187071
+ path: `${app_constants__WEBPACK_IMPORTED_MODULE_2__["Routing"].Documents}`,
187072
+ component: ui_documents_AgreementsContainer__WEBPACK_IMPORTED_MODULE_13__["default"]
187069
187073
  }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_router_dom__WEBPACK_IMPORTED_MODULE_1__["Route"], {
187070
187074
  exact: true,
187071
187075
  path: app_constants__WEBPACK_IMPORTED_MODULE_2__["Routing"].Settings,
@@ -187181,6 +187185,7 @@ let Routing;
187181
187185
  PathPlaceholder["Optional"] = "?";
187182
187186
  PathPlaceholder["MemberId"] = ":memberId";
187183
187187
  PathPlaceholder["Resource"] = ":resource";
187188
+ PathPlaceholder["ResourceId"] = ":resourceId";
187184
187189
  PathPlaceholder["InvoiceId"] = ":invoiceId";
187185
187190
  PathPlaceholder["Email"] = ":email";
187186
187191
  })(PathPlaceholder || (PathPlaceholder = {}));
@@ -187190,7 +187195,7 @@ let Routing;
187190
187195
  const Login = _Routing.Login = "/login";
187191
187196
  const SignUp = _Routing.SignUp = "/signup";
187192
187197
  const Members = _Routing.Members = "/members";
187193
- const Documents = _Routing.Documents = "/agreements";
187198
+ const Documents = _Routing.Documents = `/agreements/${Routing.PathPlaceholder.Resource}/${Routing.PathPlaceholder.ResourceId}${Routing.PathPlaceholder.Optional}`;
187194
187199
  const Profile = _Routing.Profile = `${Members}/${PathPlaceholder.MemberId}`;
187195
187200
  const Billing = _Routing.Billing = "/billing";
187196
187201
  const Subscriptions = _Routing.Subscriptions = "/subscriptions";
@@ -193978,10 +193983,10 @@ const mongoIdRegex = /^[a-f\d]{24}$/i;
193978
193983
 
193979
193984
  /***/ }),
193980
193985
 
193981
- /***/ "./src/ui/documents/CodeOfConduct.tsx":
193982
- /*!********************************************!*\
193983
- !*** ./src/ui/documents/CodeOfConduct.tsx ***!
193984
- \********************************************/
193986
+ /***/ "./src/ui/documents/AgreementsContainer.tsx":
193987
+ /*!**************************************************!*\
193988
+ !*** ./src/ui/documents/AgreementsContainer.tsx ***!
193989
+ \**************************************************/
193985
193990
  /*! exports provided: default */
193986
193991
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
193987
193992
 
@@ -193989,64 +193994,46 @@ const mongoIdRegex = /^[a-f\d]{24}$/i;
193989
193994
  __webpack_require__.r(__webpack_exports__);
193990
193995
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
193991
193996
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
193992
- /* harmony import */ var _material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Checkbox */ "./node_modules/@material-ui/core/Checkbox/index.js");
193993
- /* harmony import */ var _material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_1__);
193994
- /* 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");
193995
- /* harmony import */ var _material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_2__);
193996
- /* harmony import */ var ui_common_Form__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui/common/Form */ "./src/ui/common/Form.tsx");
193997
- /* harmony import */ var _common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/LoadingOverlay */ "./src/ui/common/LoadingOverlay.tsx");
193998
- /* harmony import */ var _Document__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Document */ "./src/ui/documents/Document.tsx");
193997
+ /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! use-react-router */ "./node_modules/use-react-router/use-react-router.js");
193998
+ /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(use_react_router__WEBPACK_IMPORTED_MODULE_1__);
193999
+ /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
194000
+ /* harmony import */ var _member_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../member/utils */ "./src/ui/member/utils.ts");
194001
+ /* harmony import */ var _MembershipAgreement__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./MembershipAgreement */ "./src/ui/documents/MembershipAgreement.tsx");
194002
+ /* harmony import */ var _RentalAgreement__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./RentalAgreement */ "./src/ui/documents/RentalAgreement.tsx");
193999
194003
 
194000
194004
 
194001
194005
 
194002
194006
 
194003
194007
 
194004
194008
 
194005
- const id = "code-of-conduct";
194006
- const document = {
194007
- displayName: "Code of Conduct",
194008
- name: `${id}-checkbox`,
194009
- transform: val => !!val,
194010
- validate: val => val,
194011
- error: "You must accept to continue",
194012
- label: "I have read and agree to the Manchester Makerspace Code of Conduct"
194013
- };
194009
+ const resources = ["membership", "rental"];
194014
194010
 
194015
- const CodeOfConduct = ({
194016
- onAccept
194017
- }) => {
194018
- const onSubmit = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](async form => {
194019
- await form.simpleValidate({
194020
- [id]: document
194021
- });
194022
-
194023
- if (!form.isValid()) {
194024
- return;
194011
+ const AgreementContainer = () => {
194012
+ const {
194013
+ history,
194014
+ match: {
194015
+ params: {
194016
+ resource,
194017
+ resourceId
194018
+ }
194025
194019
  }
194026
-
194027
- onAccept();
194028
- }, [onAccept]);
194029
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_Form__WEBPACK_IMPORTED_MODULE_3__["default"], {
194030
- key: id,
194031
- id: `${id}-form`,
194032
- submitText: "Proceed",
194033
- onSubmit: onSubmit
194034
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_Document__WEBPACK_IMPORTED_MODULE_5__["default"], {
194035
- id: id,
194036
- src: _Document__WEBPACK_IMPORTED_MODULE_5__["documents"].codeOfConduct
194037
- }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
194038
- key: document.name
194039
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_2___default.a, {
194040
- control: react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_1___default.a, {
194041
- id: document.name,
194042
- name: document.name,
194043
- color: "primary"
194044
- }),
194045
- label: document.label
194046
- })));
194020
+ } = use_react_router__WEBPACK_IMPORTED_MODULE_1___default()();
194021
+ const {
194022
+ currentUser: {
194023
+ id
194024
+ }
194025
+ } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_2__["useAuthState"])();
194026
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
194027
+ if (!resources.includes(resource)) {
194028
+ history.push(Object(_member_utils__WEBPACK_IMPORTED_MODULE_3__["buildProfileRouting"])(id));
194029
+ }
194030
+ }, []);
194031
+ return resource === "membership" ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_MembershipAgreement__WEBPACK_IMPORTED_MODULE_4__["default"], null) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_RentalAgreement__WEBPACK_IMPORTED_MODULE_5__["default"], {
194032
+ rentalId: resourceId
194033
+ });
194047
194034
  };
194048
194035
 
194049
- /* harmony default export */ __webpack_exports__["default"] = (Object(_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_4__["withLoading"])(CodeOfConduct));
194036
+ /* harmony default export */ __webpack_exports__["default"] = (AgreementContainer);
194050
194037
 
194051
194038
  /***/ }),
194052
194039
 
@@ -194054,11 +194041,12 @@ const CodeOfConduct = ({
194054
194041
  /*!***************************************!*\
194055
194042
  !*** ./src/ui/documents/Document.tsx ***!
194056
194043
  \***************************************/
194057
- /*! exports provided: documents, default */
194044
+ /*! exports provided: Documents, documents, default */
194058
194045
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
194059
194046
 
194060
194047
  "use strict";
194061
194048
  __webpack_require__.r(__webpack_exports__);
194049
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Documents", function() { return Documents; });
194062
194050
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "documents", function() { return documents; });
194063
194051
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
194064
194052
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
@@ -194074,13 +194062,47 @@ __webpack_require__.r(__webpack_exports__);
194074
194062
 
194075
194063
 
194076
194064
 
194065
+ let Documents;
194066
+
194067
+ (function (Documents) {
194068
+ Documents["CodeOfConduct"] = "code-of-conduct";
194069
+ Documents["MemberContract"] = "member-contract";
194070
+ Documents["RentalAgreement"] = "rental-agreement";
194071
+ })(Documents || (Documents = {}));
194077
194072
 
194078
- const buildDocumentUrl = document => `${ false || ""}/api/documents/${document}`;
194073
+ const buildDocumentUrl = documentName => `${ false || ""}/api/documents/${documentName}`;
194079
194074
 
194080
194075
  const documents = {
194081
- memberContract: buildDocumentUrl("member_contract"),
194082
- codeOfConduct: buildDocumentUrl("code_of_conduct"),
194083
- rentalAgreement: buildDocumentUrl("rental_agreement")
194076
+ [Documents.MemberContract]: {
194077
+ id: Documents.MemberContract,
194078
+ src: buildDocumentUrl("member_contract"),
194079
+ displayName: "Member Contract",
194080
+ name: `${Documents.MemberContract}-checkbox`,
194081
+ transform: val => !!val,
194082
+ validate: val => val,
194083
+ error: "You must accept to continue",
194084
+ label: "I have read and agree to the Manchester Makerspace Member Contract"
194085
+ },
194086
+ [Documents.CodeOfConduct]: {
194087
+ id: Documents.CodeOfConduct,
194088
+ src: buildDocumentUrl("code_of_conduct"),
194089
+ displayName: "Code of Conduct",
194090
+ name: `${Documents.CodeOfConduct}-checkbox`,
194091
+ transform: val => !!val,
194092
+ validate: val => val,
194093
+ error: "You must accept to continue",
194094
+ label: "I have read and agree to the Manchester Makerspace Code of Conduct"
194095
+ },
194096
+ [Documents.RentalAgreement]: {
194097
+ id: Documents.RentalAgreement,
194098
+ src: rentalId => buildDocumentUrl(`rental_agreement?resourceId=${rentalId}`),
194099
+ displayName: "Rental Agreement",
194100
+ name: `${Documents.RentalAgreement}-checkbox`,
194101
+ transform: val => !!val,
194102
+ validate: val => val,
194103
+ error: "You must accept to continue",
194104
+ label: "I have read and agree to the Manchester Makerspace Rental Agreement"
194105
+ }
194084
194106
  };
194085
194107
 
194086
194108
  const DocumentFrame = ({
@@ -194127,10 +194149,10 @@ const DocumentFrame = ({
194127
194149
 
194128
194150
  /***/ }),
194129
194151
 
194130
- /***/ "./src/ui/documents/MemberContract.tsx":
194131
- /*!*********************************************!*\
194132
- !*** ./src/ui/documents/MemberContract.tsx ***!
194133
- \*********************************************/
194152
+ /***/ "./src/ui/documents/DocumentForm.tsx":
194153
+ /*!*******************************************!*\
194154
+ !*** ./src/ui/documents/DocumentForm.tsx ***!
194155
+ \*******************************************/
194134
194156
  /*! exports provided: default */
194135
194157
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
194136
194158
 
@@ -194151,9 +194173,7 @@ __webpack_require__.r(__webpack_exports__);
194151
194173
  /* harmony import */ var _material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/core/FormControlLabel */ "./node_modules/@material-ui/core/FormControlLabel/index.js");
194152
194174
  /* harmony import */ var _material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_6__);
194153
194175
  /* harmony import */ var ui_common_Form__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/common/Form */ "./src/ui/common/Form.tsx");
194154
- /* harmony import */ var _common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/LoadingOverlay */ "./src/ui/common/LoadingOverlay.tsx");
194155
- /* harmony import */ var _Document__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Document */ "./src/ui/documents/Document.tsx");
194156
-
194176
+ /* harmony import */ var _Document__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Document */ "./src/ui/documents/Document.tsx");
194157
194177
 
194158
194178
 
194159
194179
 
@@ -194163,39 +194183,46 @@ __webpack_require__.r(__webpack_exports__);
194163
194183
 
194164
194184
 
194165
194185
 
194166
- const id = "member-contract";
194167
- const document = {
194168
- displayName: "Member Contract",
194169
- name: `${id}-checkbox`,
194170
- transform: val => !!val,
194171
- validate: val => val,
194172
- error: "You must accept to continue",
194173
- label: "I have read and agree to the Manchester Makerspace Member Contract"
194174
- };
194175
194186
 
194176
- const MemberContract = ({
194177
- onAccept
194187
+ const DocumentForm = ({
194188
+ error,
194189
+ loading,
194190
+ onAccept,
194191
+ doc,
194192
+ requestSignature
194178
194193
  }) => {
194179
- const [error, setError] = react__WEBPACK_IMPORTED_MODULE_0__["useState"]();
194194
+ const {
194195
+ id,
194196
+ name,
194197
+ src,
194198
+ label
194199
+ } = doc;
194200
+ const [signatureError, setError] = react__WEBPACK_IMPORTED_MODULE_0__["useState"]();
194180
194201
  const signatureRef = react__WEBPACK_IMPORTED_MODULE_0__["useRef"]();
194181
194202
  const clearSignature = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
194182
194203
  signatureRef.current && signatureRef.current.clear();
194183
194204
  }, [signatureRef]);
194184
194205
  const onSubmit = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](async form => {
194185
194206
  await form.simpleValidate({
194186
- [id]: document
194207
+ [id]: doc
194187
194208
  });
194188
194209
 
194189
194210
  if (!form.isValid()) {
194190
194211
  return;
194191
194212
  }
194192
194213
 
194193
- if (!signatureRef.current || signatureRef.current.isEmpty()) {
194194
- setError("Signature required to proceed");
194195
- return;
194214
+ let signature;
194215
+
194216
+ if (requestSignature) {
194217
+ if (!signatureRef.current || signatureRef.current.isEmpty()) {
194218
+ setError("Signature required to proceed");
194219
+ return;
194220
+ } else {
194221
+ setError("");
194222
+ signature = signatureRef.current.toDataURL();
194223
+ }
194196
194224
  }
194197
194225
 
194198
- const signature = signatureRef.current.toDataURL();
194199
194226
  onAccept(signature);
194200
194227
  }, [onAccept, signatureRef, setError]);
194201
194228
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_Form__WEBPACK_IMPORTED_MODULE_7__["default"], {
@@ -194203,20 +194230,21 @@ const MemberContract = ({
194203
194230
  id: `${id}-form`,
194204
194231
  submitText: "Proceed",
194205
194232
  onSubmit: onSubmit,
194206
- error: error
194207
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_Document__WEBPACK_IMPORTED_MODULE_9__["default"], {
194233
+ error: signatureError || error,
194234
+ loading: loading
194235
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_Document__WEBPACK_IMPORTED_MODULE_8__["default"], {
194208
194236
  id: id,
194209
- src: _Document__WEBPACK_IMPORTED_MODULE_9__["documents"].memberContract
194237
+ src: src
194210
194238
  }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
194211
- key: document.name
194239
+ key: name
194212
194240
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_6___default.a, {
194213
194241
  control: react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_3___default.a, {
194214
- id: document.name,
194215
- name: document.name,
194242
+ id: name,
194243
+ name: name,
194216
194244
  color: "primary"
194217
194245
  }),
194218
- label: document.label
194219
- })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
194246
+ label: label
194247
+ })), requestSignature && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
194220
194248
  container: true
194221
194249
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
194222
194250
  item: true,
@@ -194250,14 +194278,14 @@ const MemberContract = ({
194250
194278
  }, "Reset Signature"))))));
194251
194279
  };
194252
194280
 
194253
- /* harmony default export */ __webpack_exports__["default"] = (Object(_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_8__["withLoading"])(MemberContract));
194281
+ /* harmony default export */ __webpack_exports__["default"] = (DocumentForm);
194254
194282
 
194255
194283
  /***/ }),
194256
194284
 
194257
- /***/ "./src/ui/documents/SignDocuments.tsx":
194258
- /*!********************************************!*\
194259
- !*** ./src/ui/documents/SignDocuments.tsx ***!
194260
- \********************************************/
194285
+ /***/ "./src/ui/documents/MembershipAgreement.tsx":
194286
+ /*!**************************************************!*\
194287
+ !*** ./src/ui/documents/MembershipAgreement.tsx ***!
194288
+ \**************************************************/
194261
194289
  /*! exports provided: default */
194262
194290
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
194263
194291
 
@@ -194267,18 +194295,18 @@ __webpack_require__.r(__webpack_exports__);
194267
194295
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
194268
194296
  /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! use-react-router */ "./node_modules/use-react-router/use-react-router.js");
194269
194297
  /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(use_react_router__WEBPACK_IMPORTED_MODULE_1__);
194270
- /* 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");
194271
- /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);
194272
- /* 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");
194273
- /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__);
194274
- /* harmony import */ var _member_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../member/utils */ "./src/ui/member/utils.ts");
194275
- /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
194276
- /* harmony import */ var _hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../hooks/useWriteTransaction */ "./src/ui/hooks/useWriteTransaction.ts");
194277
- /* harmony import */ var _CodeOfConduct__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./CodeOfConduct */ "./src/ui/documents/CodeOfConduct.tsx");
194278
- /* harmony import */ var _MemberContract__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./MemberContract */ "./src/ui/documents/MemberContract.tsx");
194279
- /* harmony import */ var _hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../hooks/useReadTransaction */ "./src/ui/hooks/useReadTransaction.ts");
194298
+ /* 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");
194299
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__);
194300
+ /* harmony import */ var _member_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../member/utils */ "./src/ui/member/utils.ts");
194301
+ /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
194302
+ /* harmony import */ var _hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/useWriteTransaction */ "./src/ui/hooks/useWriteTransaction.ts");
194303
+ /* harmony import */ var _DocumentForm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./DocumentForm */ "./src/ui/documents/DocumentForm.tsx");
194304
+ /* harmony import */ var _Document__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Document */ "./src/ui/documents/Document.tsx");
194305
+ 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; }
194280
194306
 
194307
+ 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; }
194281
194308
 
194309
+ 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; }
194282
194310
 
194283
194311
 
194284
194312
 
@@ -194287,15 +194315,10 @@ __webpack_require__.r(__webpack_exports__);
194287
194315
 
194288
194316
 
194289
194317
 
194290
- var Documents;
194291
194318
 
194292
- (function (Documents) {
194293
- Documents["codeOfConduct"] = "code-of-conduct";
194294
- Documents["memberContract"] = "member-contract";
194295
- })(Documents || (Documents = {}));
194296
194319
 
194297
- const SignDocuments = () => {
194298
- const [display, setDisplay] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](Documents.codeOfConduct);
194320
+ const MembershipAgreement = () => {
194321
+ const [display, setDisplay] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](_Document__WEBPACK_IMPORTED_MODULE_7__["Documents"].CodeOfConduct);
194299
194322
  const {
194300
194323
  history
194301
194324
  } = use_react_router__WEBPACK_IMPORTED_MODULE_1___default()();
@@ -194303,58 +194326,111 @@ const SignDocuments = () => {
194303
194326
  currentUser: {
194304
194327
  id: currentUserId
194305
194328
  }
194306
- } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_5__["useAuthState"])();
194307
- const onSuccess = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](({
194308
- reset
194309
- }) => {
194310
- history.push(Object(_member_utils__WEBPACK_IMPORTED_MODULE_4__["buildProfileRouting"])(currentUserId));
194329
+ } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_4__["useAuthState"])();
194330
+ const onSuccess = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
194331
+ history.push(Object(_member_utils__WEBPACK_IMPORTED_MODULE_3__["buildProfileRouting"])(currentUserId));
194311
194332
  }, [history]);
194312
194333
  const {
194334
+ error,
194313
194335
  isRequesting: updating,
194314
194336
  call: update
194315
- } = Object(_hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_6__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__["updateMember"], onSuccess);
194316
- const {
194317
- refresh: refreshMember
194318
- } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_9__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__["getMember"], currentUserId);
194337
+ } = Object(_hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_5__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["updateMember"], onSuccess);
194319
194338
  const onContractAccept = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](async signature => {
194320
194339
  await update(currentUserId, {
194321
194340
  signature
194322
194341
  });
194323
- refreshMember();
194324
194342
  }, [update]);
194325
194343
  const onConductAccept = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
194326
- setDisplay(Documents.memberContract);
194344
+ setDisplay(_Document__WEBPACK_IMPORTED_MODULE_7__["Documents"].MemberContract);
194327
194345
  }, [setDisplay]);
194328
- let renderDoc;
194346
+ const onAccept = display === _Document__WEBPACK_IMPORTED_MODULE_7__["Documents"].MemberContract ? onContractAccept : onConductAccept;
194347
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_DocumentForm__WEBPACK_IMPORTED_MODULE_6__["default"], {
194348
+ error: error,
194349
+ loading: updating,
194350
+ doc: _objectSpread({}, _Document__WEBPACK_IMPORTED_MODULE_7__["documents"][display], {
194351
+ src: String(_Document__WEBPACK_IMPORTED_MODULE_7__["documents"][display].src)
194352
+ }),
194353
+ onAccept: onAccept,
194354
+ requestSignature: display === _Document__WEBPACK_IMPORTED_MODULE_7__["Documents"].MemberContract
194355
+ });
194356
+ };
194329
194357
 
194330
- switch (display) {
194331
- case Documents.codeOfConduct:
194332
- renderDoc = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_CodeOfConduct__WEBPACK_IMPORTED_MODULE_7__["default"], {
194333
- onAccept: onConductAccept,
194334
- loading: updating
194335
- });
194336
- break;
194358
+ /* harmony default export */ __webpack_exports__["default"] = (MembershipAgreement);
194337
194359
 
194338
- case Documents.memberContract:
194339
- renderDoc = react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_MemberContract__WEBPACK_IMPORTED_MODULE_8__["default"], {
194340
- onAccept: onContractAccept,
194341
- loading: updating
194342
- });
194343
- break;
194344
- }
194360
+ /***/ }),
194345
194361
 
194346
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
194347
- container: true,
194348
- spacing: 16,
194349
- justify: "center"
194350
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
194351
- item: true,
194352
- md: 10,
194353
- sm: 12
194354
- }, renderDoc));
194362
+ /***/ "./src/ui/documents/RentalAgreement.tsx":
194363
+ /*!**********************************************!*\
194364
+ !*** ./src/ui/documents/RentalAgreement.tsx ***!
194365
+ \**********************************************/
194366
+ /*! exports provided: default */
194367
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
194368
+
194369
+ "use strict";
194370
+ __webpack_require__.r(__webpack_exports__);
194371
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
194372
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
194373
+ /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! use-react-router */ "./node_modules/use-react-router/use-react-router.js");
194374
+ /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(use_react_router__WEBPACK_IMPORTED_MODULE_1__);
194375
+ /* 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");
194376
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__);
194377
+ /* harmony import */ var _member_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../member/utils */ "./src/ui/member/utils.ts");
194378
+ /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
194379
+ /* harmony import */ var _hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../hooks/useWriteTransaction */ "./src/ui/hooks/useWriteTransaction.ts");
194380
+ /* harmony import */ var _DocumentForm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./DocumentForm */ "./src/ui/documents/DocumentForm.tsx");
194381
+ /* harmony import */ var _Document__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Document */ "./src/ui/documents/Document.tsx");
194382
+ 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; }
194383
+
194384
+ 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; }
194385
+
194386
+ 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; }
194387
+
194388
+
194389
+
194390
+
194391
+
194392
+
194393
+
194394
+
194395
+
194396
+ const rentalAgreement = _Document__WEBPACK_IMPORTED_MODULE_7__["documents"][_Document__WEBPACK_IMPORTED_MODULE_7__["Documents"].RentalAgreement];
194397
+
194398
+ const RentalAgreement = ({
194399
+ rentalId
194400
+ }) => {
194401
+ const {
194402
+ history
194403
+ } = use_react_router__WEBPACK_IMPORTED_MODULE_1___default()();
194404
+ const {
194405
+ currentUser: {
194406
+ id: currentUserId
194407
+ }
194408
+ } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_4__["useAuthState"])();
194409
+ const onSuccess = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
194410
+ history.push(Object(_member_utils__WEBPACK_IMPORTED_MODULE_3__["buildProfileRouting"])(currentUserId));
194411
+ }, [history]);
194412
+ const {
194413
+ error,
194414
+ isRequesting: updating,
194415
+ call: update
194416
+ } = Object(_hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_5__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["updateRental"], onSuccess);
194417
+ const onContractAccept = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](async signature => {
194418
+ await update(rentalId, {
194419
+ signature
194420
+ });
194421
+ }, [update]);
194422
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_DocumentForm__WEBPACK_IMPORTED_MODULE_6__["default"], {
194423
+ error: error,
194424
+ loading: updating,
194425
+ doc: _objectSpread({}, rentalAgreement, {
194426
+ src: typeof rentalAgreement.src === "function" && rentalAgreement.src(rentalId)
194427
+ }),
194428
+ onAccept: onContractAccept,
194429
+ requestSignature: true
194430
+ });
194355
194431
  };
194356
194432
 
194357
- /* harmony default export */ __webpack_exports__["default"] = (SignDocuments);
194433
+ /* harmony default export */ __webpack_exports__["default"] = (RentalAgreement);
194358
194434
 
194359
194435
  /***/ }),
194360
194436
 
@@ -195696,6 +195772,7 @@ const useReadTransaction = (transaction, ...args) => {
195696
195772
  const key = Object(_reducer_functions__WEBPACK_IMPORTED_MODULE_4__["buildQueryString"])(transaction, ...args);
195697
195773
  return Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_3__["getApiState"])(key, Object(app_main__WEBPACK_IMPORTED_MODULE_6__["getStore"])().getState());
195698
195774
  }, [transaction, Object(ui_utils_stringifyArgs__WEBPACK_IMPORTED_MODULE_1__["default"])(args)]);
195775
+ console.warn("args", Object(ui_utils_stringifyArgs__WEBPACK_IMPORTED_MODULE_1__["default"])(args));
195699
195776
  react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
195700
195777
  const callTransaction = async () => {
195701
195778
  const currentState = getCurrentState();
@@ -196416,7 +196493,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
196416
196493
 
196417
196494
 
196418
196495
 
196419
- const getFields = memberId => [...(memberId ? [] : [{
196496
+ const getFields = (memberId, onUpdate) => [...(memberId ? [] : [{
196420
196497
  id: "member",
196421
196498
  label: "Member",
196422
196499
  cell: row => row.memberName,
@@ -196459,7 +196536,8 @@ const getFields = memberId => [...(memberId ? [] : [{
196459
196536
  }
196460
196537
 
196461
196538
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_ViewInvoiceModal__WEBPACK_IMPORTED_MODULE_18__["default"], {
196462
- invoice: row
196539
+ invoice: row,
196540
+ onUpdate: onUpdate
196463
196541
  });
196464
196542
  }
196465
196543
  }];
@@ -196515,7 +196593,7 @@ const InvoicesTable = ({
196515
196593
  refresh();
196516
196594
  }, [refresh, refreshMember]);
196517
196595
  const rowId = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](invoice => invoice.id, []);
196518
- const fields = getFields(memberId);
196596
+ const fields = getFields(memberId, onSuccess);
196519
196597
  const payNow = viewingOwnInvoices && Object(_utils__WEBPACK_IMPORTED_MODULE_17__["isInvoicePayable"])(selectedInvoice);
196520
196598
  const goToCheckout = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => stageInvoice(selectedInvoice), [selectedInvoice, stageInvoice]);
196521
196599
  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"], {
@@ -196564,6 +196642,113 @@ const InvoicesTable = ({
196564
196642
 
196565
196643
  /***/ }),
196566
196644
 
196645
+ /***/ "./src/ui/invoice/SettleInvoiceModal.tsx":
196646
+ /*!***********************************************!*\
196647
+ !*** ./src/ui/invoice/SettleInvoiceModal.tsx ***!
196648
+ \***********************************************/
196649
+ /*! exports provided: default */
196650
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
196651
+
196652
+ "use strict";
196653
+ __webpack_require__.r(__webpack_exports__);
196654
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
196655
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
196656
+ /* 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");
196657
+ /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1__);
196658
+ /* 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");
196659
+ /* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_2__);
196660
+ /* 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");
196661
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__);
196662
+ /* harmony import */ var app_entities_invoice__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! app/entities/invoice */ "./src/app/entities/invoice.ts");
196663
+ /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
196664
+ /* harmony import */ var ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui/common/KeyValueItem */ "./src/ui/common/KeyValueItem.tsx");
196665
+ /* harmony import */ var ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
196666
+ /* harmony import */ var _hooks_useModal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../hooks/useModal */ "./src/ui/hooks/useModal.ts");
196667
+ /* harmony import */ var _hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../hooks/useWriteTransaction */ "./src/ui/hooks/useWriteTransaction.ts");
196668
+ /* harmony import */ var _invoice_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../invoice/utils */ "./src/ui/invoice/utils.ts");
196669
+ 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; }
196670
+
196671
+ 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; }
196672
+
196673
+ 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; }
196674
+
196675
+
196676
+
196677
+
196678
+
196679
+
196680
+
196681
+
196682
+
196683
+
196684
+
196685
+
196686
+
196687
+ const SettleInvoiceModal = ({
196688
+ invoice,
196689
+ onSuccess
196690
+ }) => {
196691
+ const {
196692
+ isOpen,
196693
+ openModal,
196694
+ closeModal
196695
+ } = Object(_hooks_useModal__WEBPACK_IMPORTED_MODULE_8__["default"])();
196696
+ const onUpdate = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](({
196697
+ reset
196698
+ }) => {
196699
+ closeModal();
196700
+ onSuccess();
196701
+ reset();
196702
+ }, [closeModal, onSuccess]);
196703
+ const {
196704
+ call,
196705
+ isRequesting,
196706
+ error
196707
+ } = Object(_hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_9__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__["adminUpdateInvoice"], onUpdate);
196708
+ const onSubmit = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
196709
+ call(invoice.id, _objectSpread({}, invoice, {
196710
+ settled: true
196711
+ }));
196712
+ }, [invoice, call]);
196713
+ 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, {
196714
+ variant: "outlined",
196715
+ color: "primary",
196716
+ disabled: isRequesting,
196717
+ onClick: openModal
196718
+ }, "Mark as Paid"), isOpen && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_5__["default"], {
196719
+ id: "settle-invoice",
196720
+ loading: isRequesting,
196721
+ isOpen: true,
196722
+ closeHandler: closeModal,
196723
+ title: "Confirm Settlement",
196724
+ onSubmit: onSubmit,
196725
+ submitText: "Confirm",
196726
+ error: error
196727
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1___default.a, {
196728
+ gutterBottom: true
196729
+ }, "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"], {
196730
+ label: "Responsible Party"
196731
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
196732
+ id: "settle-invoice-member"
196733
+ }, invoice.memberName)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
196734
+ label: "Type"
196735
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
196736
+ id: "settle-invoice-amount"
196737
+ }, app_entities_invoice__WEBPACK_IMPORTED_MODULE_4__["InvoiceableResourceDisplay"][invoice.resourceClass])), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
196738
+ label: "Amount"
196739
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
196740
+ id: "settle-invoice-amount"
196741
+ }, `$${invoice.amount}`)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
196742
+ label: "Due Date"
196743
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
196744
+ id: "settle-invoice-due-date"
196745
+ }, Object(ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_7__["timeToDate"])(invoice.dueDate)))));
196746
+ };
196747
+
196748
+ /* harmony default export */ __webpack_exports__["default"] = (SettleInvoiceModal);
196749
+
196750
+ /***/ }),
196751
+
196567
196752
  /***/ "./src/ui/invoice/ViewInvoiceModal.tsx":
196568
196753
  /*!*********************************************!*\
196569
196754
  !*** ./src/ui/invoice/ViewInvoiceModal.tsx ***!
@@ -196581,6 +196766,10 @@ __webpack_require__.r(__webpack_exports__);
196581
196766
  /* harmony import */ var _common_ButtonRow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/ButtonRow */ "./src/ui/common/ButtonRow.tsx");
196582
196767
  /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
196583
196768
  /* harmony import */ var _InvoiceDetails__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./InvoiceDetails */ "./src/ui/invoice/InvoiceDetails.tsx");
196769
+ /* harmony import */ var _SettleInvoiceModal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SettleInvoiceModal */ "./src/ui/invoice/SettleInvoiceModal.tsx");
196770
+ /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
196771
+
196772
+
196584
196773
 
196585
196774
 
196586
196775
 
@@ -196589,8 +196778,14 @@ __webpack_require__.r(__webpack_exports__);
196589
196778
 
196590
196779
 
196591
196780
  const ViewInvoiceModal = ({
196592
- invoice
196781
+ invoice,
196782
+ onUpdate
196593
196783
  }) => {
196784
+ const {
196785
+ currentUser: {
196786
+ isAdmin
196787
+ }
196788
+ } = Object(_reducer_hooks__WEBPACK_IMPORTED_MODULE_7__["useAuthState"])();
196594
196789
  const {
196595
196790
  isOpen,
196596
196791
  openModal,
@@ -196612,6 +196807,9 @@ const ViewInvoiceModal = ({
196612
196807
  gutterBottom: true
196613
196808
  }, "Details"), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_InvoiceDetails__WEBPACK_IMPORTED_MODULE_5__["default"], {
196614
196809
  invoice: invoice
196810
+ }), isAdmin && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_SettleInvoiceModal__WEBPACK_IMPORTED_MODULE_6__["default"], {
196811
+ invoice: invoice,
196812
+ onSuccess: onUpdate
196615
196813
  })));
196616
196814
  };
196617
196815
 
@@ -196904,14 +197102,20 @@ const MemberProfile = () => {
196904
197102
  } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_16__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["getMember"], memberId);
196905
197103
  const [notification, setNotification] = react__WEBPACK_IMPORTED_MODULE_0__["useState"]();
196906
197104
  react__WEBPACK_IMPORTED_MODULE_0__["useLayoutEffect"](() => {
196907
- if (isOwnProfile && !memberLoading && member.hasOwnProperty("memberContractOnFile")) {
196908
- if (member.memberContractOnFile) {
196909
- setNotification(undefined);
196910
- } else {
196911
- setNotification(_NotificationModal__WEBPACK_IMPORTED_MODULE_20__["Notification"].Welcome);
196912
- }
197105
+ if (isOwnProfile && !memberLoading && member.id && !member.memberContractOnFile) {
197106
+ setNotification(_NotificationModal__WEBPACK_IMPORTED_MODULE_20__["Notification"].Welcome);
196913
197107
  }
196914
- }, [isOwnProfile, memberLoading, setNotification, member.memberContractOnFile]); // Don't render the notification box on the first paint
197108
+ }, [isOwnProfile, memberLoading, member.memberContractOnFile]);
197109
+ const {
197110
+ data: rentals = []
197111
+ } = Object(_hooks_useReadTransaction__WEBPACK_IMPORTED_MODULE_16__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_2__["listRentals"], memberId);
197112
+ react__WEBPACK_IMPORTED_MODULE_0__["useLayoutEffect"](() => {
197113
+ const missingAgreement = rentals.find(rental => !rental.contractOnFile);
197114
+
197115
+ if (isOwnProfile && missingAgreement && !notification) {
197116
+ setNotification(_NotificationModal__WEBPACK_IMPORTED_MODULE_20__["Notification"].SignRental);
197117
+ }
197118
+ }, [isOwnProfile, rentals]); // Don't render the notification box on the first paint
196915
197119
  // Helps prevent flickering issue
196916
197120
 
196917
197121
  const [renderNotification, setRenderNotification] = react__WEBPACK_IMPORTED_MODULE_0__["useState"](false);
@@ -196926,8 +197130,17 @@ const MemberProfile = () => {
196926
197130
  setNotification(undefined);
196927
197131
  }, [refreshMember, setNotification]);
196928
197132
  const goToAgreements = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](() => {
196929
- history.push(app_constants__WEBPACK_IMPORTED_MODULE_11__["Routing"].Documents);
196930
- }, [history]);
197133
+ switch (notification) {
197134
+ case _NotificationModal__WEBPACK_IMPORTED_MODULE_20__["Notification"].SignRental:
197135
+ const missingAgreement = rentals.find(rental => !rental.contractOnFile);
197136
+ history.push(app_constants__WEBPACK_IMPORTED_MODULE_11__["Routing"].Documents.replace(app_constants__WEBPACK_IMPORTED_MODULE_11__["Routing"].PathPlaceholder.Resource, "rental").replace(app_constants__WEBPACK_IMPORTED_MODULE_11__["Routing"].PathPlaceholder.ResourceId, missingAgreement.id));
197137
+ break;
197138
+
197139
+ case _NotificationModal__WEBPACK_IMPORTED_MODULE_20__["Notification"].Welcome:
197140
+ history.push(app_constants__WEBPACK_IMPORTED_MODULE_11__["Routing"].Documents.replace(app_constants__WEBPACK_IMPORTED_MODULE_11__["Routing"].PathPlaceholder.Resource, "membership").replace(app_constants__WEBPACK_IMPORTED_MODULE_11__["Routing"].PathPlaceholder.ResourceId, ""));
197141
+ break;
197142
+ }
197143
+ }, [history, rentals, notification]);
196931
197144
  react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](() => {
196932
197145
  if (memberError && !member.id) {
196933
197146
  history.push(app_constants__WEBPACK_IMPORTED_MODULE_11__["Routing"].Members);
@@ -197349,6 +197562,7 @@ let Notification;
197349
197562
  Notification["WelcomeNeedPayment"] = "welcomeNeedPayment";
197350
197563
  Notification["MembershipExpired"] = "membershipExpired";
197351
197564
  Notification["PaymentRequired"] = "paymentRequired";
197565
+ Notification["SignRental"] = "SignRental";
197352
197566
  })(Notification || (Notification = {}));
197353
197567
 
197354
197568
  const Notifications = {
@@ -197363,6 +197577,12 @@ const Notifications = {
197363
197577
 
197364
197578
  Before proceeding, please take a moment to review and sign the Manchester Makerspace Code of Conduct and Member Contract.`,
197365
197579
  required: true
197580
+ },
197581
+ [Notification.SignRental]: {
197582
+ title: "Please complete your Rental Agreement",
197583
+ submit: "Review Documents",
197584
+ body: `We are missing a signed rental agreement for one of your plot, shelf or locker rentals. Please take a moment to review these documents before continuing`,
197585
+ required: true
197366
197586
  }
197367
197587
  };
197368
197588
 
@@ -197879,12 +198099,12 @@ const membershipDetails = {
197879
198099
  allowMod: true
197880
198100
  },
197881
198101
  paypal: {
197882
- description: "Membership handled by PayPal. Contact an administrator for details.",
198102
+ description: "Membership handled by PayPal. If you wish to change your membership, you must first cancel your PayPal subscription.",
197883
198103
  type: "Managed by PayPal",
197884
198104
  allowMod: false
197885
198105
  },
197886
198106
  notFound: {
197887
- description: "Membership subscription cannot be found. Contact an administrator for assistance.",
198107
+ description: "Membership subscription exists but cannot be found. Contact an administrator for assistance.",
197888
198108
  type: "Unknown",
197889
198109
  allowMod: false
197890
198110
  },
@@ -199181,10 +199401,14 @@ __webpack_require__.r(__webpack_exports__);
199181
199401
  /* harmony import */ var _material_ui_core_TextField__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_TextField__WEBPACK_IMPORTED_MODULE_2__);
199182
199402
  /* harmony import */ var _material_ui_core_FormLabel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/FormLabel */ "./node_modules/@material-ui/core/FormLabel/index.js");
199183
199403
  /* harmony import */ var _material_ui_core_FormLabel__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_FormLabel__WEBPACK_IMPORTED_MODULE_3__);
199184
- /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
199185
- /* harmony import */ var ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ui/rentals/constants */ "./src/ui/rentals/constants.ts");
199186
- /* harmony import */ var ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui/utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
199187
- /* harmony import */ var _common_MemberSearchInput__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../common/MemberSearchInput */ "./src/ui/common/MemberSearchInput.tsx");
199404
+ /* 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");
199405
+ /* harmony import */ var _material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_4__);
199406
+ /* harmony import */ var _material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core/FormControlLabel */ "./node_modules/@material-ui/core/FormControlLabel/index.js");
199407
+ /* harmony import */ var _material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_5__);
199408
+ /* harmony import */ var ui_common_FormModal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui/common/FormModal */ "./src/ui/common/FormModal.tsx");
199409
+ /* harmony import */ var ui_rentals_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/rentals/constants */ "./src/ui/rentals/constants.ts");
199410
+ /* harmony import */ var ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ui/utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
199411
+ /* harmony import */ var _common_MemberSearchInput__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../common/MemberSearchInput */ "./src/ui/common/MemberSearchInput.tsx");
199188
199412
  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; }
199189
199413
 
199190
199414
 
@@ -199196,19 +199420,36 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
199196
199420
 
199197
199421
 
199198
199422
 
199423
+
199424
+
199199
199425
  class RentalForm extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
199200
- constructor(...args) {
199201
- super(...args);
199426
+ constructor(props) {
199427
+ super(props);
199202
199428
 
199203
199429
  _defineProperty(this, "formRef", void 0);
199204
199430
 
199205
199431
  _defineProperty(this, "setFormRef", ref => this.formRef = ref);
199206
199432
 
199207
- _defineProperty(this, "validate", form => form.simpleValidate(ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"]));
199433
+ _defineProperty(this, "toggleContract", () => this.setState(state => ({
199434
+ contractOnFile: !state.contractOnFile
199435
+ })));
199436
+
199437
+ _defineProperty(this, "validate", form => form.simpleValidate(Object(ui_rentals_constants__WEBPACK_IMPORTED_MODULE_7__["fields"])(this.props.rental)));
199438
+
199439
+ this.state = {
199440
+ contractOnFile: props.rental && props.rental.contractOnFile || false
199441
+ };
199442
+ }
199443
+
199444
+ componentDidMount() {
199445
+ this.setState({
199446
+ contractOnFile: this.props.rental && this.props.rental.contractOnFile || false
199447
+ });
199208
199448
  }
199209
199449
 
199210
199450
  render() {
199211
199451
  const {
199452
+ title,
199212
199453
  isOpen,
199213
199454
  onClose,
199214
199455
  isRequesting,
@@ -199216,13 +199457,14 @@ class RentalForm extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
199216
199457
  onSubmit,
199217
199458
  rental
199218
199459
  } = this.props;
199219
- return isOpen && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_4__["default"], {
199460
+ const rentalFields = Object(ui_rentals_constants__WEBPACK_IMPORTED_MODULE_7__["fields"])(rental);
199461
+ return isOpen && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_6__["default"], {
199220
199462
  formRef: this.setFormRef,
199221
199463
  id: "rental-form",
199222
199464
  loading: isRequesting,
199223
199465
  isOpen: isOpen,
199224
199466
  closeHandler: onClose,
199225
- title: this.props.title || "Update Rental",
199467
+ title: title || "Update Rental",
199226
199468
  onSubmit: onSubmit,
199227
199469
  submitText: "Submit",
199228
199470
  error: error
@@ -199236,29 +199478,29 @@ class RentalForm extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
199236
199478
  fullWidth: true,
199237
199479
  required: true,
199238
199480
  value: rental.number,
199239
- label: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].number.label,
199240
- name: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].number.name,
199241
- id: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].number.name,
199242
- placeholder: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].number.placeholder
199481
+ label: rentalFields.number.label,
199482
+ name: rentalFields.number.name,
199483
+ id: rentalFields.number.name,
199484
+ placeholder: rentalFields.number.placeholder
199243
199485
  })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
199244
199486
  item: true,
199245
199487
  xs: 6
199246
199488
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_TextField__WEBPACK_IMPORTED_MODULE_2___default.a, {
199247
199489
  fullWidth: true,
199248
199490
  value: rental.description,
199249
- label: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].description.label,
199250
- name: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].description.name,
199251
- id: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].description.name,
199252
- placeholder: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].description.placeholder
199491
+ label: rentalFields.description.label,
199492
+ name: rentalFields.description.name,
199493
+ id: rentalFields.description.name,
199494
+ placeholder: rentalFields.description.placeholder
199253
199495
  })), rental && rental.id && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
199254
199496
  item: true,
199255
199497
  xs: 12
199256
199498
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_TextField__WEBPACK_IMPORTED_MODULE_2___default.a, {
199257
199499
  fullWidth: true,
199258
- value: Object(ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_6__["toDatePicker"])(rental.expiration),
199259
- label: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].expiration.label,
199260
- name: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].expiration.name,
199261
- placeholder: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].expiration.placeholder,
199500
+ value: Object(ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_8__["toDatePicker"])(rental.expiration),
199501
+ label: rentalFields.expiration.label,
199502
+ name: rentalFields.expiration.name,
199503
+ placeholder: rentalFields.expiration.placeholder,
199262
199504
  type: "date",
199263
199505
  InputLabelProps: {
199264
199506
  shrink: true
@@ -199268,15 +199510,29 @@ class RentalForm extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
199268
199510
  xs: 12
199269
199511
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_FormLabel__WEBPACK_IMPORTED_MODULE_3___default.a, {
199270
199512
  component: "legend"
199271
- }, ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].memberId.label), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_MemberSearchInput__WEBPACK_IMPORTED_MODULE_7__["default"], {
199272
- name: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].memberId.name,
199273
- placeholder: ui_rentals_constants__WEBPACK_IMPORTED_MODULE_5__["fields"].memberId.placeholder,
199513
+ }, rentalFields.memberId.label), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_MemberSearchInput__WEBPACK_IMPORTED_MODULE_9__["default"], {
199514
+ name: rentalFields.memberId.name,
199515
+ placeholder: rentalFields.memberId.placeholder,
199274
199516
  getFormRef: () => this.formRef,
199275
199517
  initialSelection: rental && {
199276
199518
  value: rental.memberId,
199277
199519
  label: rental.memberName,
199278
199520
  id: rental.memberId
199279
199521
  }
199522
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
199523
+ item: true,
199524
+ xs: 12
199525
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_5___default.a, {
199526
+ control: react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_4___default.a, {
199527
+ required: !(rental && rental.id),
199528
+ name: rentalFields.contractOnFile.name,
199529
+ id: rentalFields.contractOnFile.name,
199530
+ value: rentalFields.contractOnFile.name,
199531
+ checked: this.state.contractOnFile,
199532
+ onChange: this.toggleContract,
199533
+ color: "default"
199534
+ }),
199535
+ label: rentalFields.contractOnFile.label
199280
199536
  }))));
199281
199537
  }
199282
199538
 
@@ -200164,7 +200420,7 @@ const rentalRenewalOptions = [{
200164
200420
  value: 12
200165
200421
  }];
200166
200422
  const formPrefix = "rental-form";
200167
- const fields = {
200423
+ const fields = rental => ({
200168
200424
  number: {
200169
200425
  label: "Number",
200170
200426
  name: `${formPrefix}-number`,
@@ -200190,9 +200446,18 @@ const fields = {
200190
200446
  label: "Select a member",
200191
200447
  name: `${formPrefix}-member`,
200192
200448
  placeholder: `Search by name or email`,
200449
+ validate: val => !!val,
200193
200450
  transform: val => val && val.value
200451
+ },
200452
+ contractOnFile: {
200453
+ label: "Rental Agreement Signed?",
200454
+ name: `${formPrefix}-contract`,
200455
+ validate: val => rental && rental.id ? true : !!val,
200456
+ // Validate contract only on create.
200457
+ transform: val => !!val,
200458
+ error: "Member must sign contract"
200194
200459
  }
200195
- };
200460
+ });
200196
200461
 
200197
200462
  /***/ }),
200198
200463
 
@@ -201011,6 +201276,8 @@ __webpack_require__.r(__webpack_exports__);
201011
201276
  /* harmony import */ var _common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../common/LoadingOverlay */ "./src/ui/common/LoadingOverlay.tsx");
201012
201277
  /* harmony import */ var _common_ErrorMessage__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/ErrorMessage */ "./src/ui/common/ErrorMessage.tsx");
201013
201278
  /* harmony import */ var _subscriptions_SubscriptionDetails__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../subscriptions/SubscriptionDetails */ "./src/ui/subscriptions/SubscriptionDetails.tsx");
201279
+ /* harmony import */ var _material_ui_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @material-ui/core */ "./node_modules/@material-ui/core/index.es.js");
201280
+
201014
201281
 
201015
201282
 
201016
201283
 
@@ -201042,59 +201309,27 @@ const ManageRentalSubscriptions = () => {
201042
201309
  error: rentalsError
201043
201310
  });
201044
201311
 
201045
- if (!rentalsLoading && !rentalsError && !subscriptionRentals.length) {
201312
+ if (!rentalsLoading && !rentalsError && !(subscriptionRentals.length && subscriptionRentals.some(r => !!r.subscriptionId))) {
201046
201313
  return null;
201047
201314
  }
201048
201315
 
201049
201316
  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, {
201050
201317
  variant: "h4",
201051
201318
  gutterBottom: true
201052
- }, "Rentals"), subscriptionRentals.map(rental => {
201053
- react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_subscriptions_SubscriptionDetails__WEBPACK_IMPORTED_MODULE_9__["default"], {
201054
- memberId: memberId,
201055
- key: rental.id,
201056
- rentalSubId: rental.subscriptionId
201057
- });
201058
- }))));
201059
- };
201060
-
201061
- /* harmony default export */ __webpack_exports__["default"] = (ManageRentalSubscriptions);
201062
-
201063
- /***/ }),
201064
-
201065
- /***/ "./src/ui/settings/ManageSubscription.tsx":
201066
- /*!************************************************!*\
201067
- !*** ./src/ui/settings/ManageSubscription.tsx ***!
201068
- \************************************************/
201069
- /*! exports provided: default */
201070
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
201071
-
201072
- "use strict";
201073
- __webpack_require__.r(__webpack_exports__);
201074
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
201075
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
201076
- /* harmony import */ var _membership_ChangePaymentMethodModal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../membership/ChangePaymentMethodModal */ "./src/ui/membership/ChangePaymentMethodModal.tsx");
201077
- /* harmony import */ var _subscriptions_CancelSubscriptionModal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../subscriptions/CancelSubscriptionModal */ "./src/ui/subscriptions/CancelSubscriptionModal.tsx");
201078
-
201079
-
201080
-
201081
-
201082
- const ManageSubscription = ({
201083
- subscription,
201084
- onChange,
201085
- memberId
201086
- }) => {
201087
- 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"], {
201088
- subscription: subscription,
201089
- onSuccess: onChange
201090
- }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_subscriptions_CancelSubscriptionModal__WEBPACK_IMPORTED_MODULE_2__["default"], {
201091
- subscription: subscription,
201319
+ }, "Rentals"), subscriptionRentals.map(rental => react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core__WEBPACK_IMPORTED_MODULE_10__["Grid"], {
201320
+ style: {
201321
+ padding: "1em",
201322
+ border: "1px solid black",
201323
+ borderRadius: "3px"
201324
+ }
201325
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_subscriptions_SubscriptionDetails__WEBPACK_IMPORTED_MODULE_9__["default"], {
201092
201326
  memberId: memberId,
201093
- onSuccess: onChange
201094
- }));
201327
+ key: rental.id,
201328
+ rentalSubId: rental.subscriptionId
201329
+ }))))));
201095
201330
  };
201096
201331
 
201097
- /* harmony default export */ __webpack_exports__["default"] = (ManageSubscription);
201332
+ /* harmony default export */ __webpack_exports__["default"] = (ManageRentalSubscriptions);
201098
201333
 
201099
201334
  /***/ }),
201100
201335
 
@@ -201516,13 +201751,12 @@ const NoSubscriptionDetails = ({
201516
201751
  /*!******************************************************!*\
201517
201752
  !*** ./src/ui/subscriptions/SubscriptionDetails.tsx ***!
201518
201753
  \******************************************************/
201519
- /*! exports provided: SubscriptionDetailsInner, SubscriptionDetailsWithManagement, default */
201754
+ /*! exports provided: SubscriptionDetailsInner, default */
201520
201755
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
201521
201756
 
201522
201757
  "use strict";
201523
201758
  __webpack_require__.r(__webpack_exports__);
201524
201759
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubscriptionDetailsInner", function() { return SubscriptionDetailsInner; });
201525
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubscriptionDetailsWithManagement", function() { return SubscriptionDetailsWithManagement; });
201526
201760
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
201527
201761
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
201528
201762
  /* 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");
@@ -201537,8 +201771,10 @@ __webpack_require__.r(__webpack_exports__);
201537
201771
  /* harmony import */ var _utils_timeToDate__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/timeToDate */ "./src/ui/utils/timeToDate.ts");
201538
201772
  /* harmony import */ var _reducer_hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../reducer/hooks */ "./src/ui/reducer/hooks.ts");
201539
201773
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils */ "./src/ui/subscriptions/utils.ts");
201540
- /* harmony import */ var _settings_ManageSubscription__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../settings/ManageSubscription */ "./src/ui/settings/ManageSubscription.tsx");
201541
- /* harmony import */ var _NoSubscriptionDetails__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./NoSubscriptionDetails */ "./src/ui/subscriptions/NoSubscriptionDetails.tsx");
201774
+ /* harmony import */ var _NoSubscriptionDetails__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./NoSubscriptionDetails */ "./src/ui/subscriptions/NoSubscriptionDetails.tsx");
201775
+ /* harmony import */ var _membership_ChangePaymentMethodModal__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../membership/ChangePaymentMethodModal */ "./src/ui/membership/ChangePaymentMethodModal.tsx");
201776
+ /* harmony import */ var _CancelSubscriptionModal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./CancelSubscriptionModal */ "./src/ui/subscriptions/CancelSubscriptionModal.tsx");
201777
+
201542
201778
 
201543
201779
 
201544
201780
 
@@ -201574,46 +201810,12 @@ const SubscriptionDetailsInner = ({
201574
201810
  label: "Type"
201575
201811
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
201576
201812
  id: "subscription-type"
201577
- }, type)), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_2__["default"], {
201813
+ }, type)), !Object(_utils__WEBPACK_IMPORTED_MODULE_10__["isCanceled"])(subscription) && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_KeyValueItem__WEBPACK_IMPORTED_MODULE_2__["default"], {
201578
201814
  label: "Next Payment"
201579
201815
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
201580
201816
  id: "subscription-next-payment"
201581
201817
  }, Object(_utils_timeToDate__WEBPACK_IMPORTED_MODULE_8__["timeToDate"])(subscription.nextBillingDate)))));
201582
201818
  };
201583
- const SubscriptionDetailsWithManagement = ({
201584
- member,
201585
- subscription,
201586
- isLoading,
201587
- error,
201588
- onChange,
201589
- invoice
201590
- }) => {
201591
- const fallbackUI = isLoading && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_4__["default"], {
201592
- id: "update-membership-modal-loading",
201593
- contained: true
201594
- }) || error && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ErrorMessage__WEBPACK_IMPORTED_MODULE_6__["default"], {
201595
- error: error
201596
- });
201597
- 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, {
201598
- subscription: subscription,
201599
- invoice: invoice
201600
- }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
201601
- container: true,
201602
- spacing: 24
201603
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
201604
- item: true,
201605
- xs: 12
201606
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_settings_ManageSubscription__WEBPACK_IMPORTED_MODULE_11__["default"], {
201607
- memberId: member.id,
201608
- subscription: subscription,
201609
- onChange: onChange,
201610
- isLoading: isLoading,
201611
- error: error
201612
- })))) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_NoSubscriptionDetails__WEBPACK_IMPORTED_MODULE_12__["default"], {
201613
- member: member
201614
- });
201615
- return fallbackUI || subDetails;
201616
- };
201617
201819
 
201618
201820
  const SubscriptionDetails = ({
201619
201821
  memberId,
@@ -201643,7 +201845,7 @@ const SubscriptionDetails = ({
201643
201845
  } // Use prop if exists
201644
201846
 
201645
201847
 
201646
- const subscriptionId = rentalSubId || member ? member.subscriptionId : undefined;
201848
+ const subscriptionId = rentalSubId || (member ? member.subscriptionId : undefined);
201647
201849
  const {
201648
201850
  isRequesting: invoicesLoading,
201649
201851
  data: invoices = [],
@@ -201665,17 +201867,34 @@ const SubscriptionDetails = ({
201665
201867
  reloadInvoices();
201666
201868
  reloadSubscription();
201667
201869
  }, [reloadMember, reloadInvoices, reloadSubscription]);
201668
- const context = react__WEBPACK_IMPORTED_MODULE_0__["useMemo"](() => ({
201669
- isLoading,
201670
- error,
201671
- subscription,
201870
+ const fallbackUI = isLoading && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_4__["default"], {
201871
+ id: "update-membership-modal-loading",
201872
+ contained: true
201873
+ }) || error && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_ErrorMessage__WEBPACK_IMPORTED_MODULE_6__["default"], {
201874
+ error: error
201875
+ });
201876
+ 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, {
201877
+ subscription: subscription,
201878
+ invoice: subscriptionInvoice
201879
+ }), !Object(_utils__WEBPACK_IMPORTED_MODULE_10__["isCanceled"])(subscription) && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
201880
+ container: true,
201881
+ spacing: 24
201882
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
201883
+ item: true,
201884
+ xs: 12
201885
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_membership_ChangePaymentMethodModal__WEBPACK_IMPORTED_MODULE_12__["default"], {
201886
+ subscription: subscription,
201887
+ onSuccess: onChange
201888
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_CancelSubscriptionModal__WEBPACK_IMPORTED_MODULE_13__["default"], {
201889
+ subscription: subscription,
201890
+ memberId: memberId,
201891
+ onSuccess: onChange
201892
+ })))) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_NoSubscriptionDetails__WEBPACK_IMPORTED_MODULE_11__["default"], {
201672
201893
  member: member || {
201673
201894
  id: memberId
201674
- },
201675
- onChange,
201676
- invoice: subscriptionInvoice
201677
- }), [isLoading, error, subscription, onChange, subscriptionInvoice]);
201678
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](SubscriptionDetailsWithManagement, context);
201895
+ }
201896
+ });
201897
+ return fallbackUI || subDetails;
201679
201898
  };
201680
201899
 
201681
201900
  /* harmony default export */ __webpack_exports__["default"] = (SubscriptionDetails);
@@ -201864,12 +202083,13 @@ const ViewSubscriptionModal = ({
201864
202083
  /*!***************************************!*\
201865
202084
  !*** ./src/ui/subscriptions/utils.ts ***!
201866
202085
  \***************************************/
201867
- /*! exports provided: renderPlanType */
202086
+ /*! exports provided: renderPlanType, isCanceled */
201868
202087
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
201869
202088
 
201870
202089
  "use strict";
201871
202090
  __webpack_require__.r(__webpack_exports__);
201872
202091
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderPlanType", function() { return renderPlanType; });
202092
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCanceled", function() { return isCanceled; });
201873
202093
  const renderPlanType = planId => {
201874
202094
  const membership = planId.match(/membership/);
201875
202095
 
@@ -201899,6 +202119,7 @@ const renderPlanType = planId => {
201899
202119
  }
201900
202120
  }
201901
202121
  };
202122
+ const isCanceled = subscription => subscription && subscription.status.toLowerCase() === "canceled";
201902
202123
 
201903
202124
  /***/ }),
201904
202125