makerspace-react-rails 0.10.6 → 0.13.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74b8892b207e2745c9bac9e75fbd0d90d6ea87e1f390e47f2123e9cb77798a0e
4
- data.tar.gz: 1a4e3f6c0978f0c36b242b84e7c799f3028643c09f3694adcceb1b2a64f40707
3
+ metadata.gz: aae0c538f012516bc7dfd889d132936431860f66bbe6493e5b5560866dc269d0
4
+ data.tar.gz: 10a2d9f7c23e3d9ab66e0b243a0d490c3a1b0e966a6566a6020ce78a7911db8e
5
5
  SHA512:
6
- metadata.gz: 90f9b85990019da956c27d07e6d9a592f6d4197c3e6dd9f39b8969127d834e4934c56d301e7b9c35980d3e3428c3eca19a472994f414c3e20658c26f64d66b25
7
- data.tar.gz: d4cd8a9b629b6ce9d98b1796674a44e248870a6250ab5298380b8a6c5cdf68b69fec772c0a549467a2f20d3886be0abfcca927da62519f6f87cd04e429c67fb5
6
+ metadata.gz: 37ab0dd220757c5e97ba2b46caf367d9387e8a319ec3f900d53ed312e1df31e1e03b7377db457923d04682edd1f4e9a33c4831c3bf4d95e7545f211ba35d1563
7
+ data.tar.gz: f38fcff717b5ab6691c2e4d6e1ec413dc31d86535e7e9d62e67909fccd10eb8b107af9ce5f6e51f44430a0ddb6b4d1a2654f6b553e8931084fc38a7f44a5a5f2
@@ -1,7 +1,7 @@
1
1
  module Makerspace
2
2
  module React
3
3
  module Rails
4
- VERSION = "0.10.6"
4
+ VERSION = "0.13.0"
5
5
  end
6
6
  end
7
7
  end
@@ -37704,6 +37704,38 @@ exports.default = _default;
37704
37704
 
37705
37705
  /***/ }),
37706
37706
 
37707
+ /***/ "./node_modules/@material-ui/icons/Error.js":
37708
+ /*!**************************************************!*\
37709
+ !*** ./node_modules/@material-ui/icons/Error.js ***!
37710
+ \**************************************************/
37711
+ /*! no static exports found */
37712
+ /***/ (function(module, exports, __webpack_require__) {
37713
+
37714
+ "use strict";
37715
+
37716
+
37717
+ var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
37718
+
37719
+ Object.defineProperty(exports, "__esModule", {
37720
+ value: true
37721
+ });
37722
+ exports.default = void 0;
37723
+
37724
+ var _react = _interopRequireDefault(__webpack_require__(/*! react */ "./node_modules/react/index.js"));
37725
+
37726
+ var _createSvgIcon = _interopRequireDefault(__webpack_require__(/*! ./utils/createSvgIcon */ "./node_modules/@material-ui/icons/utils/createSvgIcon.js"));
37727
+
37728
+ var _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement("path", {
37729
+ fill: "none",
37730
+ d: "M0 0h24v24H0z"
37731
+ }), _react.default.createElement("path", {
37732
+ d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"
37733
+ })), 'Error');
37734
+
37735
+ exports.default = _default;
37736
+
37737
+ /***/ }),
37738
+
37707
37739
  /***/ "./node_modules/@material-ui/icons/FilterList.js":
37708
37740
  /*!*******************************************************!*\
37709
37741
  !*** ./node_modules/@material-ui/icons/FilterList.js ***!
@@ -103190,6 +103222,10 @@ function deleteTransaction(params) {
103190
103222
  return exports.makeRequest("DELETE", "/billing/transactions/{id}".replace("{id}", params.id));
103191
103223
  }
103192
103224
  exports.deleteTransaction = deleteTransaction;
103225
+ function message(params) {
103226
+ return exports.makeRequest("POST", "/client_error_handler", { notification: params.messageDetails });
103227
+ }
103228
+ exports.message = message;
103193
103229
  function getDocument(params) {
103194
103230
  return exports.makeRequest("GET", "/documents/{id}".replace("{id}", params.id), params);
103195
103231
  }
@@ -103210,6 +103246,10 @@ function listInvoiceOptions(params) {
103210
103246
  return exports.makeRequest("GET", "/invoice_options", params, "invoiceOptions");
103211
103247
  }
103212
103248
  exports.listInvoiceOptions = listInvoiceOptions;
103249
+ function getInvoiceOption(params) {
103250
+ return exports.makeRequest("GET", "/invoice_options/{id}".replace("{id}", params.id), undefined, "invoiceOption");
103251
+ }
103252
+ exports.getInvoiceOption = getInvoiceOption;
103213
103253
  function listInvoices(params) {
103214
103254
  return exports.makeRequest("GET", "/invoices", params, "invoices");
103215
103255
  }
@@ -203743,6 +203783,7 @@ __webpack_require__.r(__webpack_exports__);
203743
203783
  /* harmony import */ var app_PublicRouting__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! app/PublicRouting */ "./src/app/PublicRouting.tsx");
203744
203784
  /* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! app/constants */ "./src/app/constants.ts");
203745
203785
  /* harmony import */ var ui_member_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ui/member/utils */ "./src/ui/member/utils.ts");
203786
+ /* harmony import */ var src_ui_common_ErrorBoundary__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! src/ui/common/ErrorBoundary */ "./src/ui/common/ErrorBoundary.tsx");
203746
203787
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
203747
203788
 
203748
203789
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
@@ -203762,6 +203803,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
203762
203803
 
203763
203804
 
203764
203805
 
203806
+
203765
203807
  var publicPaths = [app_constants__WEBPACK_IMPORTED_MODULE_9__["Routing"].Login, app_constants__WEBPACK_IMPORTED_MODULE_9__["Routing"].SignUp, app_constants__WEBPACK_IMPORTED_MODULE_9__["Routing"].PasswordReset];
203766
203808
 
203767
203809
  var App = function App() {
@@ -203821,7 +203863,7 @@ var App = function App() {
203821
203863
  }
203822
203864
  }
203823
203865
  }, [isRequesting]);
203824
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
203866
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](src_ui_common_ErrorBoundary__WEBPACK_IMPORTED_MODULE_11__["default"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
203825
203867
  className: "root"
203826
203868
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_Header__WEBPACK_IMPORTED_MODULE_4__["default"], null), attemptingLogin ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_5__["default"], {
203827
203869
  id: "body"
@@ -203829,7 +203871,7 @@ var App = function App() {
203829
203871
  permissions: permissions,
203830
203872
  currentUserId: currentUserId,
203831
203873
  isAdmin: isAdmin
203832
- }) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](app_PublicRouting__WEBPACK_IMPORTED_MODULE_8__["default"], null));
203874
+ }) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](app_PublicRouting__WEBPACK_IMPORTED_MODULE_8__["default"], null)));
203833
203875
  };
203834
203876
 
203835
203877
  /* harmony default export */ __webpack_exports__["default"] = (App);
@@ -204143,6 +204185,7 @@ var Properties;
204143
204185
  Properties["PlanId"] = "planId";
204144
204186
  Properties["Disabled"] = "disabled";
204145
204187
  Properties["DiscountId"] = "discountId";
204188
+ Properties["IsPromotion"] = "isPromotion";
204146
204189
  })(Properties || (Properties = {}));
204147
204190
 
204148
204191
  /***/ }),
@@ -206432,8 +206475,7 @@ var BillingContainer = function BillingContainer() {
206432
206475
  newMembers = _ref.newMembers,
206433
206476
  subscribedMembers = _ref.subscribedMembers,
206434
206477
  pastDueInvoices = _ref.pastDueInvoices,
206435
- refundsPending = _ref.refundsPending; // TODO: this any can be removed when newMembers spelling is fixed in api client
206436
-
206478
+ refundsPending = _ref.refundsPending;
206437
206479
 
206438
206480
  var fallbackUI = isRequesting && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_10__["default"], {
206439
206481
  id: "plans-loading",
@@ -206743,6 +206785,10 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
206743
206785
 
206744
206786
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
206745
206787
 
206788
+ 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; }
206789
+
206790
+ 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; }
206791
+
206746
206792
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
206747
206793
 
206748
206794
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
@@ -206792,7 +206838,8 @@ var defaultState = {
206792
206838
  type: app_entities_invoice__WEBPACK_IMPORTED_MODULE_11__["InvoiceableResource"].Membership,
206793
206839
  planId: "",
206794
206840
  planMatchError: "",
206795
- disableOption: false
206841
+ disableOption: false,
206842
+ isPromotion: false
206796
206843
  };
206797
206844
  var BillingFormComponent =
206798
206845
  /*#__PURE__*/
@@ -206902,9 +206949,15 @@ function (_React$Component) {
206902
206949
  };
206903
206950
  }());
206904
206951
 
206905
- _defineProperty(_assertThisInitialized(_this), "toggleDisableOption", function (_event, checked) {
206952
+ _defineProperty(_assertThisInitialized(_this), "toggleDisableOption", function (event) {
206906
206953
  return _this.setState({
206907
- disableOption: checked
206954
+ disableOption: event.currentTarget.checked
206955
+ });
206956
+ });
206957
+
206958
+ _defineProperty(_assertThisInitialized(_this), "togglePromotionOption", function (event) {
206959
+ return _this.setState({
206960
+ isPromotion: event.currentTarget.checked
206908
206961
  });
206909
206962
  });
206910
206963
 
@@ -206971,7 +207024,7 @@ function (_React$Component) {
206971
207024
  });
206972
207025
  });
206973
207026
 
206974
- _this.state = defaultState;
207027
+ _this.state = _objectSpread({}, defaultState);
206975
207028
  return _this;
206976
207029
  }
206977
207030
 
@@ -206997,11 +207050,14 @@ function (_React$Component) {
206997
207050
  var oldOptionType = oldOption && oldOption.resourceClass; // Reset on form open
206998
207051
 
206999
207052
  if (isOpen && !wasOpen) {
207000
- this.setState(defaultState);
207053
+ this.setState({
207054
+ planMatchError: ""
207055
+ });
207001
207056
 
207002
207057
  if (option) {
207003
207058
  this.setState({
207004
- disableOption: option.disabled
207059
+ disableOption: option.disabled,
207060
+ isPromotion: option.isPromotion
207005
207061
  });
207006
207062
  }
207007
207063
  } // Reload plans if type changes
@@ -207038,7 +207094,9 @@ function (_React$Component) {
207038
207094
  var _this$state2 = this.state,
207039
207095
  type = _this$state2.type,
207040
207096
  planId = _this$state2.planId,
207041
- disableOption = _this$state2.disableOption; // TODO: The validation / when things are disabled doesn't make a lot of sense
207097
+ disableOption = _this$state2.disableOption,
207098
+ isPromotion = _this$state2.isPromotion;
207099
+ console.error("type", type); // TODO: The validation / when things are disabled doesn't make a lot of sense
207042
207100
  // Need to work out how selecting discounts & plans will relate to fields
207043
207101
 
207044
207102
  return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_FormModal__WEBPACK_IMPORTED_MODULE_10__["default"], {
@@ -207156,6 +207214,19 @@ function (_React$Component) {
207156
207214
  color: "default"
207157
207215
  }),
207158
207216
  label: ui_billing_constants__WEBPACK_IMPORTED_MODULE_13__["fields"].disabled.label
207217
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_7___default.a, {
207218
+ item: true,
207219
+ xs: 12
207220
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_FormControlLabel__WEBPACK_IMPORTED_MODULE_3___default.a, {
207221
+ control: react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Checkbox__WEBPACK_IMPORTED_MODULE_9___default.a, {
207222
+ name: ui_billing_constants__WEBPACK_IMPORTED_MODULE_13__["fields"].isPromotion.name,
207223
+ value: ui_billing_constants__WEBPACK_IMPORTED_MODULE_13__["fields"].isPromotion.name,
207224
+ checked: isPromotion,
207225
+ onChange: this.togglePromotionOption,
207226
+ disabled: isRequesting,
207227
+ color: "default"
207228
+ }),
207229
+ label: ui_billing_constants__WEBPACK_IMPORTED_MODULE_13__["fields"].isPromotion.label
207159
207230
  }))));
207160
207231
  }
207161
207232
  }]);
@@ -207389,6 +207460,18 @@ var fields = [{
207389
207460
  color: ui_constants__WEBPACK_IMPORTED_MODULE_13__["Status"].Success
207390
207461
  });
207391
207462
  }
207463
+ }, {
207464
+ id: "isPromotion",
207465
+ label: "Promotion",
207466
+ cell: function cell(row) {
207467
+ return row.isPromotion ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_StatusLabel__WEBPACK_IMPORTED_MODULE_12__["default"], {
207468
+ label: "",
207469
+ color: ui_constants__WEBPACK_IMPORTED_MODULE_13__["Status"].Primary
207470
+ }) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_StatusLabel__WEBPACK_IMPORTED_MODULE_12__["default"], {
207471
+ label: "",
207472
+ color: ui_constants__WEBPACK_IMPORTED_MODULE_13__["Status"].Info
207473
+ });
207474
+ }
207392
207475
  }];
207393
207476
 
207394
207477
  var OptionsList =
@@ -208444,6 +208527,12 @@ var fields = (_fields = {}, _defineProperty(_fields, app_entities_invoice__WEBPA
208444
208527
  transform: function transform(val) {
208445
208528
  return !!val;
208446
208529
  }
208530
+ }), _defineProperty(_fields, app_entities_invoice__WEBPACK_IMPORTED_MODULE_0__["Properties"].IsPromotion, {
208531
+ label: "Mark as a Promotion. This will list it at the top, separate of other options in the billing menu",
208532
+ name: "".concat(formPrefix, "-promotion"),
208533
+ transform: function transform(val) {
208534
+ return !!val;
208535
+ }
208447
208536
  }), _fields);
208448
208537
 
208449
208538
  /***/ }),
@@ -210804,38 +210893,31 @@ __webpack_require__.r(__webpack_exports__);
210804
210893
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
210805
210894
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
210806
210895
  /* harmony import */ var lodash_es_capitalize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash-es/capitalize */ "./node_modules/lodash-es/capitalize.js");
210807
- /* 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");
210808
- /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);
210809
- /* 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");
210810
- /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3__);
210811
- /* harmony import */ var _material_ui_core_Tabs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/core/Tabs */ "./node_modules/@material-ui/core/Tabs/index.js");
210812
- /* harmony import */ var _material_ui_core_Tabs__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Tabs__WEBPACK_IMPORTED_MODULE_4__);
210813
- /* harmony import */ var _material_ui_core_Tab__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core/Tab */ "./node_modules/@material-ui/core/Tab/index.js");
210814
- /* harmony import */ var _material_ui_core_Tab__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Tab__WEBPACK_IMPORTED_MODULE_5__);
210815
- /* harmony import */ var ui_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui/common/LoadingOverlay */ "./src/ui/common/LoadingOverlay.tsx");
210816
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
210817
-
210896
+ /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! use-react-router */ "./node_modules/use-react-router/use-react-router.js");
210897
+ /* harmony import */ var use_react_router__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(use_react_router__WEBPACK_IMPORTED_MODULE_2__);
210898
+ /* 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");
210899
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3__);
210900
+ /* 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");
210901
+ /* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4__);
210902
+ /* harmony import */ var _material_ui_core_Tabs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core/Tabs */ "./node_modules/@material-ui/core/Tabs/index.js");
210903
+ /* harmony import */ var _material_ui_core_Tabs__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Tabs__WEBPACK_IMPORTED_MODULE_5__);
210904
+ /* harmony import */ var _material_ui_core_Tab__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/core/Tab */ "./node_modules/@material-ui/core/Tab/index.js");
210905
+ /* harmony import */ var _material_ui_core_Tab__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Tab__WEBPACK_IMPORTED_MODULE_6__);
210906
+ /* harmony import */ var ui_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ui/common/LoadingOverlay */ "./src/ui/common/LoadingOverlay.tsx");
210818
210907
  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; }
210819
210908
 
210820
210909
  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; }
210821
210910
 
210822
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
210823
-
210824
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
210825
-
210826
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
210827
-
210828
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
210911
+ 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; }
210829
210912
 
210830
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
210913
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
210831
210914
 
210832
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
210915
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
210833
210916
 
210834
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
210917
+ function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
210835
210918
 
210836
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
210919
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
210837
210920
 
210838
- 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; }
210839
210921
 
210840
210922
 
210841
210923
 
@@ -210849,125 +210931,215 @@ var sectionBorderStyle = {
210849
210931
  borderRadius: "3px"
210850
210932
  };
210851
210933
 
210852
- var DetailView =
210853
- /*#__PURE__*/
210854
- function (_React$Component) {
210855
- _inherits(DetailView, _React$Component);
210934
+ var DetailView = function DetailView(_ref) {
210935
+ var activeResourceName = _ref.activeResourceName,
210936
+ resources = _ref.resources,
210937
+ title = _ref.title,
210938
+ actionButtons = _ref.actionButtons,
210939
+ information = _ref.information;
210940
+ var resourcesExist = Array.isArray(resources) && !!resources.length;
210856
210941
 
210857
- function DetailView(props) {
210858
- var _this;
210942
+ var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](resourcesExist ? resources[0] : undefined),
210943
+ _React$useState2 = _slicedToArray(_React$useState, 2),
210944
+ activeResource = _React$useState2[0],
210945
+ setActiveResource = _React$useState2[1];
210859
210946
 
210860
- _classCallCheck(this, DetailView);
210947
+ var _useReactRouter = use_react_router__WEBPACK_IMPORTED_MODULE_2___default()(),
210948
+ resource = _useReactRouter.match.params.resource,
210949
+ history = _useReactRouter.history,
210950
+ pathname = _useReactRouter.location.pathname;
210861
210951
 
210862
- _this = _possibleConstructorReturn(this, _getPrototypeOf(DetailView).call(this, props));
210952
+ react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
210953
+ resource && changeResource(resource);
210954
+ }, [resource]);
210955
+ var changeResource = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](function (newActiveName) {
210956
+ var resourceLookupName = newActiveName || activeResourceName;
210957
+
210958
+ if (resourcesExist) {
210959
+ var newResource = resourceLookupName && resources.find(function (resource) {
210960
+ return resource.name === resourceLookupName;
210961
+ }) || resources[0];
210962
+
210963
+ if (newResource) {
210964
+ setActiveResource(newResource);
210965
+
210966
+ if (resource !== newResource.name) {
210967
+ var hasSubpath = resources.some(function (resource) {
210968
+ return pathname.endsWith("/".concat(resource.name));
210969
+ });
210970
+ var newPath = hasSubpath ? pathname.replace(/\/[^\/]*$/, "/".concat(newResource.name)) : "".concat(pathname, "/").concat(newResource.name);
210971
+ history.push(newPath);
210972
+ }
210973
+ }
210974
+ }
210975
+ }, [activeResourceName, resources]);
210976
+ var onTabChange = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](function (_, value) {
210977
+ changeResource(value);
210978
+ }, [changeResource]);
210979
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
210980
+ container: true,
210981
+ spacing: 24,
210982
+ justify: "center"
210983
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
210984
+ item: true,
210985
+ md: 10,
210986
+ xs: 12
210987
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_4___default.a, {
210988
+ id: "detail-view-title",
210989
+ gutterBottom: true,
210990
+ variant: "h6"
210991
+ }, title), actionButtons), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
210992
+ item: true,
210993
+ md: 10,
210994
+ xs: 12,
210995
+ style: sectionBorderStyle
210996
+ }, information), resourcesExist && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_3___default.a, {
210997
+ item: true,
210998
+ md: 10,
210999
+ xs: 12,
211000
+ style: _objectSpread({}, sectionBorderStyle, {
211001
+ marginTop: "0.5em"
211002
+ })
211003
+ }, activeResource && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, resources.length > 1 && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Tabs__WEBPACK_IMPORTED_MODULE_5___default.a, {
211004
+ value: activeResource.name,
211005
+ indicatorColor: "primary",
211006
+ textColor: "primary",
211007
+ style: {
211008
+ marginBottom: "1em"
211009
+ },
211010
+ onChange: onTabChange
211011
+ }, resources.map(function (resource) {
211012
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Tab__WEBPACK_IMPORTED_MODULE_6___default.a, {
211013
+ id: "".concat(resource.name, "-tab"),
211014
+ label: resource.displayName || Object(lodash_es_capitalize__WEBPACK_IMPORTED_MODULE_1__["default"])(resource.name),
211015
+ value: resource.name,
211016
+ key: resource.name
211017
+ });
211018
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
211019
+ style: _objectSpread({}, resources.length > 1 && {
211020
+ marginTop: "0.5em"
211021
+ })
211022
+ }, activeResource.content)) || react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_7__["default"], {
211023
+ id: "detail-view"
211024
+ })));
211025
+ };
210863
211026
 
210864
- _defineProperty(_assertThisInitialized(_this), "setActiveResourceFromProps", function (newActiveName) {
210865
- var _this$props = _this.props,
210866
- activeResourceName = _this$props.activeResourceName,
210867
- resources = _this$props.resources;
210868
- var resourceLookupName = newActiveName || activeResourceName;
211027
+ /* harmony default export */ __webpack_exports__["default"] = (DetailView);
210869
211028
 
210870
- if (_this.resourcesExist()) {
210871
- var activeResource = resourceLookupName && resources.find(function (resource) {
210872
- return resource.name === resourceLookupName;
210873
- }) || resources[0];
211029
+ /***/ }),
210874
211030
 
210875
- _this.setState({
210876
- activeResource: activeResource
210877
- });
210878
- }
210879
- });
211031
+ /***/ "./src/ui/common/ErrorBoundary.tsx":
211032
+ /*!*****************************************!*\
211033
+ !*** ./src/ui/common/ErrorBoundary.tsx ***!
211034
+ \*****************************************/
211035
+ /*! exports provided: default */
211036
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
210880
211037
 
210881
- _defineProperty(_assertThisInitialized(_this), "resourcesExist", function () {
210882
- var resources = _this.props.resources;
210883
- return Array.isArray(resources) && resources.length;
210884
- });
211038
+ "use strict";
211039
+ __webpack_require__.r(__webpack_exports__);
211040
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
211041
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
211042
+ /* 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");
211043
+ /* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1__);
211044
+ /* harmony import */ var _material_ui_icons_Error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/icons/Error */ "./node_modules/@material-ui/icons/Error.js");
211045
+ /* harmony import */ var _material_ui_icons_Error__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_icons_Error__WEBPACK_IMPORTED_MODULE_2__);
211046
+ /* 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");
211047
+ /* harmony import */ var makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__);
211048
+ /* harmony import */ var _hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks/useWriteTransaction */ "./src/ui/hooks/useWriteTransaction.ts");
211049
+ /* harmony import */ var _material_ui_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core */ "./node_modules/@material-ui/core/index.es.js");
211050
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
210885
211051
 
210886
- _defineProperty(_assertThisInitialized(_this), "renderInformation", function () {
210887
- var _this$props2 = _this.props,
210888
- information = _this$props2.information,
210889
- title = _this$props2.title,
210890
- actionButtons = _this$props2.actionButtons;
210891
- 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, {
210892
- item: true,
210893
- md: 10,
210894
- xs: 12
210895
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3___default.a, {
210896
- id: "detail-view-title",
210897
- gutterBottom: true,
210898
- variant: "h6"
210899
- }, title), actionButtons), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
210900
- item: true,
210901
- md: 10,
210902
- xs: 12,
210903
- style: sectionBorderStyle
210904
- }, information));
210905
- });
211052
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
210906
211053
 
210907
- _defineProperty(_assertThisInitialized(_this), "changeResource", function (_event, value) {
210908
- _this.setActiveResourceFromProps(value);
210909
- });
211054
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
210910
211055
 
210911
- _defineProperty(_assertThisInitialized(_this), "renderResources", function () {
210912
- var activeResource = _this.state.activeResource;
210913
- var resources = _this.props.resources;
210914
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
210915
- item: true,
210916
- md: 10,
210917
- xs: 12,
210918
- style: _objectSpread({}, sectionBorderStyle, {
210919
- marginTop: "0.5em"
210920
- })
210921
- }, activeResource && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, resources.length > 1 && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Tabs__WEBPACK_IMPORTED_MODULE_4___default.a, {
210922
- value: activeResource.name,
210923
- indicatorColor: "primary",
210924
- textColor: "primary",
210925
- style: {
210926
- marginBottom: "1em"
210927
- },
210928
- onChange: _this.changeResource
210929
- }, resources.map(function (resource) {
210930
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Tab__WEBPACK_IMPORTED_MODULE_5___default.a, {
210931
- id: "".concat(resource.name, "-tab"),
210932
- label: resource.displayName || Object(lodash_es_capitalize__WEBPACK_IMPORTED_MODULE_1__["default"])(resource.name),
210933
- value: resource.name,
210934
- key: resource.name
210935
- });
210936
- })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
210937
- style: _objectSpread({}, resources.length > 1 && {
210938
- marginTop: "0.5em"
210939
- })
210940
- }, activeResource.content)) || react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_6__["default"], {
210941
- id: "detail-view"
210942
- }));
210943
- });
211056
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
211057
+
211058
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
211059
+
211060
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
211061
+
211062
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
211063
+
211064
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
211065
+
211066
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
211067
+
211068
+
211069
+
211070
+
211071
+
211072
+
211073
+
211074
+
211075
+ var ErrorBoundaryInternal =
211076
+ /*#__PURE__*/
211077
+ function (_React$Component) {
211078
+ _inherits(ErrorBoundaryInternal, _React$Component);
211079
+
211080
+ function ErrorBoundaryInternal(props) {
211081
+ var _this;
210944
211082
 
211083
+ _classCallCheck(this, ErrorBoundaryInternal);
211084
+
211085
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(ErrorBoundaryInternal).call(this, props));
210945
211086
  _this.state = {
210946
- activeResource: undefined
211087
+ hasError: false
210947
211088
  };
210948
211089
  return _this;
210949
211090
  }
210950
211091
 
210951
- _createClass(DetailView, [{
210952
- key: "componentDidMount",
210953
- value: function componentDidMount() {
210954
- this.setActiveResourceFromProps();
211092
+ _createClass(ErrorBoundaryInternal, [{
211093
+ key: "componentDidCatch",
211094
+ value: function componentDidCatch(error) {
211095
+ this.setState({
211096
+ hasError: true
211097
+ });
211098
+ this.props.reportError(error.toString());
210955
211099
  }
210956
211100
  }, {
210957
211101
  key: "render",
210958
211102
  value: function render() {
210959
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a, {
210960
- container: true,
210961
- spacing: 24,
210962
- justify: "center"
210963
- }, this.renderInformation(), this.resourcesExist() && this.renderResources());
211103
+ if (this.state.hasError) {
211104
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
211105
+ container: true,
211106
+ direction: "row",
211107
+ justify: "center",
211108
+ alignItems: "center"
211109
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_icons_Error__WEBPACK_IMPORTED_MODULE_2___default.a, {
211110
+ fontSize: "large",
211111
+ color: "error"
211112
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core__WEBPACK_IMPORTED_MODULE_5__["Typography"], {
211113
+ color: "error"
211114
+ }, "An unexpected error has occured. Please refresh the page and try again."));
211115
+ }
211116
+
211117
+ return this.props.children;
210964
211118
  }
210965
211119
  }]);
210966
211120
 
210967
- return DetailView;
211121
+ return ErrorBoundaryInternal;
210968
211122
  }(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);
210969
211123
 
210970
- /* harmony default export */ __webpack_exports__["default"] = (DetailView);
211124
+ var ErrorBoundary = function ErrorBoundary(_ref) {
211125
+ var children = _ref.children;
211126
+
211127
+ var _useWriteTransaction = Object(_hooks_useWriteTransaction__WEBPACK_IMPORTED_MODULE_4__["default"])(makerspace_ts_api_client__WEBPACK_IMPORTED_MODULE_3__["message"]),
211128
+ call = _useWriteTransaction.call;
211129
+
211130
+ var reportError = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](function (err) {
211131
+ call({
211132
+ messageDetails: {
211133
+ message: err
211134
+ }
211135
+ });
211136
+ }, [call]);
211137
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ErrorBoundaryInternal, {
211138
+ reportError: reportError
211139
+ }, children);
211140
+ };
211141
+
211142
+ /* harmony default export */ __webpack_exports__["default"] = (ErrorBoundary);
210971
211143
 
210972
211144
  /***/ }),
210973
211145
 
@@ -212749,11 +212921,13 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
212749
212921
 
212750
212922
 
212751
212923
  var statusToStyleMap = (_statusToStyleMap = {}, _defineProperty(_statusToStyleMap, ui_constants__WEBPACK_IMPORTED_MODULE_1__["Status"].Danger, {
212752
- backgroundColor: "rgba(255, 0, 0, 0.4)"
212924
+ backgroundColor: "rgba(255, 0, 0, 1)"
212753
212925
  }), _defineProperty(_statusToStyleMap, ui_constants__WEBPACK_IMPORTED_MODULE_1__["Status"].Success, {
212754
- backgroundColor: "rgba(88, 227, 111, 0.4)"
212926
+ backgroundColor: "rgba(88, 227, 111, 1)"
212755
212927
  }), _defineProperty(_statusToStyleMap, ui_constants__WEBPACK_IMPORTED_MODULE_1__["Status"].Info, {
212756
212928
  backgroundColor: "rgba(0, 0, 0, 0.12)"
212929
+ }), _defineProperty(_statusToStyleMap, ui_constants__WEBPACK_IMPORTED_MODULE_1__["Status"].Primary, {
212930
+ backgroundColor: "rgba(33, 150, 243, 1)"
212757
212931
  }), _statusToStyleMap);
212758
212932
  var circleStyle = {
212759
212933
  height: "1em",
@@ -213270,7 +213444,10 @@ function (_React$Component) {
213270
213444
  placeholder: "Search...",
213271
213445
  onKeyPress: this.onSearchEnter
213272
213446
  })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
213273
- className: "table-wrapper"
213447
+ className: "table-wrapper",
213448
+ style: {
213449
+ overflowX: "auto"
213450
+ }
213274
213451
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_table_Table__WEBPACK_IMPORTED_MODULE_5__["default"], {
213275
213452
  id: id,
213276
213453
  page: pageNum,
@@ -213349,6 +213526,7 @@ var Status;
213349
213526
  Status["Info"] = "info";
213350
213527
  Status["Warn"] = "warn";
213351
213528
  Status["Default"] = "default";
213529
+ Status["Primary"] = "primary";
213352
213530
  })(Status || (Status = {}));
213353
213531
 
213354
213532
  var ItemsPerPage;
@@ -219113,6 +219291,14 @@ __webpack_require__.r(__webpack_exports__);
219113
219291
  /* harmony import */ var _DuplicateInvoiceModal__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./DuplicateInvoiceModal */ "./src/ui/membership/DuplicateInvoiceModal.tsx");
219114
219292
  function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
219115
219293
 
219294
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
219295
+
219296
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
219297
+
219298
+ function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
219299
+
219300
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
219301
+
219116
219302
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
219117
219303
 
219118
219304
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
@@ -219177,8 +219363,9 @@ var MembershipSelect = function MembershipSelect(_ref) {
219177
219363
  _useReadTransaction$d = _useReadTransaction.data,
219178
219364
  options = _useReadTransaction$d === void 0 ? [] : _useReadTransaction$d;
219179
219365
 
219180
- var allOptions = react__WEBPACK_IMPORTED_MODULE_0__["useMemo"](function () {
219181
- return options.sort(byAmount).concat(allowNone ? [{
219366
+ var _React$useMemo2 = react__WEBPACK_IMPORTED_MODULE_0__["useMemo"](function () {
219367
+ var promotionOptions = [];
219368
+ var trailingOptions = allowNone ? [{
219182
219369
  id: "none",
219183
219370
  name: "None",
219184
219371
  description: "Paid with cash or select an option later",
@@ -219186,9 +219373,24 @@ var MembershipSelect = function MembershipSelect(_ref) {
219186
219373
  resourceClass: undefined,
219187
219374
  quantity: 0,
219188
219375
  disabled: false,
219189
- operation: undefined
219190
- }] : []);
219191
- }, [allowNone, options]); // Select bookmarked option on load
219376
+ operation: undefined,
219377
+ isPromotion: false
219378
+ }] : [];
219379
+ var normalOptions = options.reduce(function (opts, option) {
219380
+ if (option.isPromotion) {
219381
+ promotionOptions.push(option);
219382
+ } else {
219383
+ opts.push(option);
219384
+ }
219385
+
219386
+ return opts;
219387
+ }, []);
219388
+ return [promotionOptions, [].concat(_toConsumableArray(normalOptions.sort(byAmount)), trailingOptions)];
219389
+ }, [allowNone, options]),
219390
+ _React$useMemo3 = _slicedToArray(_React$useMemo2, 2),
219391
+ promotions = _React$useMemo3[0],
219392
+ allOptions = _React$useMemo3[1]; // Select bookmarked option on load
219393
+
219192
219394
 
219193
219395
  react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
219194
219396
  var option = (allOptions || []).find(function (option) {
@@ -219261,11 +219463,22 @@ var MembershipSelect = function MembershipSelect(_ref) {
219261
219463
  var normalizedError = error && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, "Error reading membership options: ", error, ". Email", " ", react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("a", {
219262
219464
  href: "mailto: contact@manchestermakerspace.org"
219263
219465
  }, "contact@manchestermakerspace.org"), " if your desired membership option is not present");
219264
- return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_DuplicateInvoiceModal__WEBPACK_IMPORTED_MODULE_11__["default"], {
219466
+ return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, promotions && !!promotions.length && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
219467
+ className: "membership-promotion-options"
219468
+ }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_table_TableContainer__WEBPACK_IMPORTED_MODULE_8__["default"], {
219469
+ id: "membership-promotion-select-table",
219470
+ title: "Current Promotions",
219471
+ data: promotions,
219472
+ columns: fields,
219473
+ rowId: function rowId(row) {
219474
+ return row.id;
219475
+ },
219476
+ loading: isRequesting
219477
+ })), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_DuplicateInvoiceModal__WEBPACK_IMPORTED_MODULE_11__["default"], {
219265
219478
  type: selectedOption && selectedOption.resourceClass
219266
219479
  }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_table_TableContainer__WEBPACK_IMPORTED_MODULE_8__["default"], {
219267
219480
  id: "membership-select-table",
219268
- title: _typeof(title) === undefined && "Select a Membership",
219481
+ title: _typeof(title) === undefined && "Select a Membership" || promotions && !!promotions.length && "Standard Membership Options",
219269
219482
  data: allOptions,
219270
219483
  columns: fields,
219271
219484
  rowId: function rowId(row) {
@@ -221699,7 +221912,9 @@ var SettingsContainer = function SettingsContainer() {
221699
221912
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
221700
221913
  item: true,
221701
221914
  xs: 12
221702
- }, selectedIndex === 0 && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, loadingMember && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_15__["default"], null), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_member_EditMember__WEBPACK_IMPORTED_MODULE_12__["default"], {
221915
+ }, selectedIndex === 0 && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null, loadingMember && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_common_LoadingOverlay__WEBPACK_IMPORTED_MODULE_15__["default"], {
221916
+ id: "settings-loading"
221917
+ }), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](ui_member_EditMember__WEBPACK_IMPORTED_MODULE_12__["default"], {
221703
221918
  formOnly: true,
221704
221919
  member: member
221705
221920
  })), selectedIndex === 1 && react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
@@ -221787,6 +222002,7 @@ var CancelSubscriptionModal = function CancelSubscriptionModal(_ref) {
221787
222002
  });
221788
222003
  }, [call, subscriptionId]);
221789
222004
  var disableButton = !subscriptionId || subscription.status === "Canceled";
222005
+ var whosSubscription = asAdmin ? subscription.memberName ? "".concat(subscription.memberName, "'s") : "this" : "your";
221790
222006
  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"], {
221791
222007
  id: "subscription-option-cancel",
221792
222008
  color: "secondary",
@@ -221806,7 +222022,7 @@ var CancelSubscriptionModal = function CancelSubscriptionModal(_ref) {
221806
222022
  error: error
221807
222023
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_1___default.a, {
221808
222024
  gutterBottom: true
221809
- }, "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"], {
222025
+ }, "Are you sure you want to cancel ", whosSubscription, " subscription? This action cannot be undone."), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_SubscriptionDetails__WEBPACK_IMPORTED_MODULE_8__["SubscriptionDetailsInner"], {
221810
222026
  subscription: subscription
221811
222027
  })));
221812
222028
  };
@@ -222960,14 +223176,6 @@ var TransactionFilters = function TransactionFilters(_ref) {
222960
223176
  params = _useQueryContext.params,
222961
223177
  setParam = _useQueryContext.setParam;
222962
223178
 
222963
- var onSearch = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](function (event) {
222964
- if (event.key === "Enter") {
222965
- var searchTerm = event.target.value;
222966
- setParam("search", searchTerm);
222967
- onChange();
222968
- close();
222969
- }
222970
- }, [setParam, onChange, close]);
222971
223179
  var setType = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"](function (event) {
222972
223180
  setParam("type", event.target.value);
222973
223181
  onChange();
@@ -223041,21 +223249,6 @@ var TransactionFilters = function TransactionFilters(_ref) {
223041
223249
  component: "fieldset"
223042
223250
  }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_FormLabel__WEBPACK_IMPORTED_MODULE_4___default.a, {
223043
223251
  component: "legend"
223044
- }, "Search for transactions"), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_TextField__WEBPACK_IMPORTED_MODULE_7___default.a, {
223045
- id: "transaction-search-input",
223046
- type: "text",
223047
- placeholder: "Search...",
223048
- onKeyPress: onSearch
223049
- }))), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_1___default.a, {
223050
- item: true,
223051
- xs: 12,
223052
- style: {
223053
- marginBottom: "1em"
223054
- }
223055
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_FormControl__WEBPACK_IMPORTED_MODULE_3___default.a, {
223056
- component: "fieldset"
223057
- }, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_FormLabel__WEBPACK_IMPORTED_MODULE_4___default.a, {
223058
- component: "legend"
223059
223252
  }, "Filter by Transaction Type"), react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_material_ui_core_RadioGroup__WEBPACK_IMPORTED_MODULE_10___default.a, {
223060
223253
  name: "settled",
223061
223254
  value: params.type,
@@ -223311,7 +223504,6 @@ var TransactionsTable = function TransactionsTable(_ref) {
223311
223504
  isAdmin = _useAuthState.currentUser.isAdmin;
223312
223505
 
223313
223506
  var _useQueryContext = Object(_common_Filters_QueryContext__WEBPACK_IMPORTED_MODULE_11__["useQueryContext"])({
223314
- search: undefined,
223315
223507
  startDate: Object(ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_5__["dateToMidnight"])(moment__WEBPACK_IMPORTED_MODULE_1__().subtract(2, "months").valueOf()),
223316
223508
  endDate: Object(ui_utils_timeToDate__WEBPACK_IMPORTED_MODULE_5__["dateToMidnight"])(new Date()),
223317
223509
  type: undefined,