makerspace-react-rails 0.10.6 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
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,