brew-js-react 0.6.1 → 0.6.3

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.
package/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { combineFn, throwNotFunction } from "zeta-dom/util";
2
- import { install } from "brew-js/app";
2
+ import { addExtension, install } from "brew-js/app";
3
3
  import defaults from "brew-js/defaults";
4
4
 
5
5
  /** @type {Brew.AppInstance<Brew.WithRouter & Brew.WithI18n>} */
@@ -8,13 +8,17 @@ export var app;
8
8
  const appInitCallabcks = [];
9
9
 
10
10
  export function onAppInit(callback) {
11
- appInitCallabcks.push(throwNotFunction(callback));
11
+ if (app) {
12
+ callback(app);
13
+ } else {
14
+ appInitCallabcks.push(throwNotFunction(callback));
15
+ }
12
16
  }
13
17
 
14
- install('react', function (app_) {
15
- // @ts-ignore: type inference issue
18
+ const extension = addExtension(true, 'react2', ['?router', '?i18n'], function (app_) {
16
19
  app = app_;
17
20
  combineFn(appInitCallabcks)(app);
18
21
  });
19
22
 
23
+ install('react', extension);
20
24
  defaults.react = true;
@@ -1,14 +1,14 @@
1
- /*! brew-js-react v0.6.1 | (c) misonou | https://misonou.github.io */
1
+ /*! brew-js-react v0.6.3 | (c) misonou | https://misonou.github.io */
2
2
  (function webpackUniversalModuleDefinition(root, factory) {
3
3
  if(typeof exports === 'object' && typeof module === 'object')
4
- module.exports = factory(require("zeta-dom"), require("react"), require("react-dom"), require("brew-js"), require("zeta-dom-react"), require("waterpipe"), require("jquery"));
4
+ module.exports = factory(require("zeta-dom"), require("brew-js"), require("react"), require("react-dom"), require("zeta-dom-react"), require("waterpipe"), require("jquery"));
5
5
  else if(typeof define === 'function' && define.amd)
6
- define("brew-js-react", ["zeta-dom", "react", "react-dom", "brew-js", "zeta-dom-react", "waterpipe", "jquery"], factory);
6
+ define("brew-js-react", ["zeta-dom", "brew-js", "react", "react-dom", "zeta-dom-react", "waterpipe", "jquery"], factory);
7
7
  else if(typeof exports === 'object')
8
- exports["brew-js-react"] = factory(require("zeta-dom"), require("react"), require("react-dom"), require("brew-js"), require("zeta-dom-react"), require("waterpipe"), require("jquery"));
8
+ exports["brew-js-react"] = factory(require("zeta-dom"), require("brew-js"), require("react"), require("react-dom"), require("zeta-dom-react"), require("waterpipe"), require("jquery"));
9
9
  else
10
- root["brew"] = root["brew"] || {}, root["brew"]["react"] = factory(root["zeta"], root["React"], root["ReactDOM"], root["brew"], root["zeta"]["react"], root["waterpipe"], root["jQuery"]);
11
- })(self, (__WEBPACK_EXTERNAL_MODULE__231__, __WEBPACK_EXTERNAL_MODULE__12__, __WEBPACK_EXTERNAL_MODULE__33__, __WEBPACK_EXTERNAL_MODULE__760__, __WEBPACK_EXTERNAL_MODULE__402__, __WEBPACK_EXTERNAL_MODULE__87__, __WEBPACK_EXTERNAL_MODULE__914__) => {
10
+ root["brew"] = root["brew"] || {}, root["brew"]["react"] = factory(root["zeta"], root["brew"], root["React"], root["ReactDOM"], root["zeta"]["react"], root["waterpipe"], root["jQuery"]);
11
+ })(self, (__WEBPACK_EXTERNAL_MODULE__231__, __WEBPACK_EXTERNAL_MODULE__760__, __WEBPACK_EXTERNAL_MODULE__12__, __WEBPACK_EXTERNAL_MODULE__33__, __WEBPACK_EXTERNAL_MODULE__402__, __WEBPACK_EXTERNAL_MODULE__87__, __WEBPACK_EXTERNAL_MODULE__914__) => {
12
12
  return /******/ (() => { // webpackBootstrap
13
13
  /******/ var __webpack_modules__ = ({
14
14
 
@@ -255,7 +255,6 @@ var _lib$util = external_commonjs_zeta_dom_commonjs2_zeta_dom_amd_zeta_dom_root_
255
255
  pick = _lib$util.pick,
256
256
  randomId = _lib$util.randomId,
257
257
  resolve = _lib$util.resolve,
258
- resolveAll = _lib$util.resolveAll,
259
258
  setImmediate = _lib$util.setImmediate,
260
259
  setImmediateOnce = _lib$util.setImmediateOnce,
261
260
  single = _lib$util.single,
@@ -264,6 +263,39 @@ var _lib$util = external_commonjs_zeta_dom_commonjs2_zeta_dom_amd_zeta_dom_root_
264
263
  watch = _lib$util.watch,
265
264
  watchable = _lib$util.watchable;
266
265
 
266
+ // EXTERNAL MODULE: external {"commonjs":"brew-js","commonjs2":"brew-js","amd":"brew-js","root":"brew"}
267
+ var external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_ = __webpack_require__(760);
268
+ ;// CONCATENATED MODULE: ./|umd|/brew-js/app.js
269
+
270
+ /* harmony default export */ const app = ((/* unused pure expression or super */ null && (lib)));
271
+ var addExtension = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.addExtension,
272
+ install = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.install;
273
+
274
+ ;// CONCATENATED MODULE: ./|umd|/brew-js/defaults.js
275
+
276
+ var defaults = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.defaults;
277
+ /* harmony default export */ const brew_js_defaults = (defaults);
278
+ ;// CONCATENATED MODULE: ./src/app.js
279
+
280
+
281
+
282
+
283
+ /** @type {Brew.AppInstance<Brew.WithRouter & Brew.WithI18n>} */
284
+ var app_app;
285
+ var appInitCallabcks = [];
286
+ function onAppInit(callback) {
287
+ if (app_app) {
288
+ callback(app_app);
289
+ } else {
290
+ appInitCallabcks.push(throwNotFunction(callback));
291
+ }
292
+ }
293
+ var extension = addExtension(true, 'react2', ['?router', '?i18n'], function (app_) {
294
+ app_app = app_;
295
+ combineFn(appInitCallabcks)(app_app);
296
+ });
297
+ install('react', extension);
298
+ brew_js_defaults.react = true;
267
299
  // EXTERNAL MODULE: external {"commonjs":"react","commonjs2":"react","amd":"react","root":"React"}
268
300
  var external_commonjs_react_commonjs2_react_amd_react_root_React_ = __webpack_require__(12);
269
301
  ;// CONCATENATED MODULE: ./|umd|/react.js
@@ -302,13 +334,10 @@ var reportError = dom.reportError;
302
334
 
303
335
  var _lib$dom = external_commonjs_zeta_dom_commonjs2_zeta_dom_amd_zeta_dom_root_zeta_.dom,
304
336
  lock = _lib$dom.lock,
305
- notifyAsync = _lib$dom.notifyAsync,
306
337
  preventLeave = _lib$dom.preventLeave,
307
338
  runAsync = _lib$dom.runAsync,
308
339
  subscribeAsync = _lib$dom.subscribeAsync;
309
340
 
310
- // EXTERNAL MODULE: external {"commonjs":"brew-js","commonjs2":"brew-js","amd":"brew-js","root":"brew"}
311
- var external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_ = __webpack_require__(760);
312
341
  ;// CONCATENATED MODULE: ./|umd|/brew-js/domAction.js
313
342
 
314
343
  var closeFlyout = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.closeFlyout,
@@ -418,6 +447,7 @@ var external_commonjs_zeta_dom_react_commonjs2_zeta_dom_react_amd_zeta_dom_react
418
447
  var ViewStateProvider = external_commonjs_zeta_dom_react_commonjs2_zeta_dom_react_amd_zeta_dom_react_root_zeta_react_.ViewStateProvider,
419
448
  classNames = external_commonjs_zeta_dom_react_commonjs2_zeta_dom_react_amd_zeta_dom_react_root_zeta_react_.classNames,
420
449
  useAsync = external_commonjs_zeta_dom_react_commonjs2_zeta_dom_react_amd_zeta_dom_react_root_zeta_react_.useAsync,
450
+ useEagerState = external_commonjs_zeta_dom_react_commonjs2_zeta_dom_react_amd_zeta_dom_react_root_zeta_react_.useEagerState,
421
451
  useMemoizedFunction = external_commonjs_zeta_dom_react_commonjs2_zeta_dom_react_amd_zeta_dom_react_root_zeta_react_.useMemoizedFunction,
422
452
  useObservableProperty = external_commonjs_zeta_dom_react_commonjs2_zeta_dom_react_amd_zeta_dom_react_root_zeta_react_.useObservableProperty,
423
453
  useSingleton = external_commonjs_zeta_dom_react_commonjs2_zeta_dom_react_amd_zeta_dom_react_root_zeta_react_.useSingleton,
@@ -437,32 +467,6 @@ var getQueryParam = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root
437
467
  var parsePath = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.parsePath,
438
468
  removeQueryAndHash = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.removeQueryAndHash;
439
469
 
440
- ;// CONCATENATED MODULE: ./|umd|/brew-js/app.js
441
-
442
- /* harmony default export */ const app = ((/* unused pure expression or super */ null && (lib)));
443
- var install = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.install;
444
-
445
- ;// CONCATENATED MODULE: ./|umd|/brew-js/defaults.js
446
-
447
- var defaults = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.defaults;
448
- /* harmony default export */ const brew_js_defaults = (defaults);
449
- ;// CONCATENATED MODULE: ./src/app.js
450
-
451
-
452
-
453
-
454
- /** @type {Brew.AppInstance<Brew.WithRouter & Brew.WithI18n>} */
455
- var app_app;
456
- var appInitCallabcks = [];
457
- function onAppInit(callback) {
458
- appInitCallabcks.push(throwNotFunction(callback));
459
- }
460
- install('react', function (app_) {
461
- // @ts-ignore: type inference issue
462
- app_app = app_;
463
- combineFn(appInitCallabcks)(app_app);
464
- });
465
- brew_js_defaults.react = true;
466
470
  ;// CONCATENATED MODULE: ./|umd|/brew-js/anim.js
467
471
 
468
472
  var animateIn = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.animateIn,
@@ -478,7 +482,6 @@ var animateIn = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_bre
478
482
 
479
483
 
480
484
 
481
-
482
485
  var _ = createPrivateStore();
483
486
  var root = zeta_dom_dom.root;
484
487
  var routeMap = new Map();
@@ -509,6 +512,7 @@ onAppInit(function () {
509
512
  });
510
513
  })(rootState);
511
514
  });
515
+ rootState.setPage(app_app.page);
512
516
  });
513
517
  function ViewContext(view, page, parent) {
514
518
  var self = this;
@@ -551,31 +555,36 @@ definePrototype(ErrorBoundary, Component, {
551
555
  error: error
552
556
  });
553
557
  } else {
554
- // emit error in next tick as ref callback may yet to be invoked
555
- // if error is thrown synchronously in first render
556
- setImmediate(function () {
557
- reportError(error, self.context.container);
558
- });
559
558
  // ensure promise sent to beforepageload event is resolved
560
559
  self.props.onComponentLoaded();
560
+ reportError(error, self.context.container);
561
561
  }
562
562
  },
563
563
  render: function render() {
564
564
  var self = this;
565
+ if (!self.context.container) {
566
+ setImmediate(function () {
567
+ self.forceUpdate();
568
+ });
569
+ return null;
570
+ }
565
571
  var props = {
566
572
  view: self.context.view,
567
573
  error: self.state.error,
568
574
  reset: self.reset.bind(self)
569
575
  };
570
576
  var onComponentLoaded = self.props.onComponentLoaded;
577
+ var onError = self.componentDidCatch.bind(self);
571
578
  if (props.error) {
572
579
  return /*#__PURE__*/createElement(errorView, {
573
580
  onComponentLoaded: onComponentLoaded,
581
+ onError: onError,
574
582
  viewProps: props
575
583
  });
576
584
  }
577
585
  return /*#__PURE__*/createElement(props.view, {
578
586
  onComponentLoaded: onComponentLoaded,
587
+ onError: onError,
579
588
  viewProps: self.props.viewProps
580
589
  });
581
590
  },
@@ -663,7 +672,6 @@ definePrototype(ViewContainer, Component, {
663
672
  }, true);
664
673
  }
665
674
  });
666
- notifyAsync(element, promise);
667
675
  });
668
676
  var viewProps = function viewProps() {
669
677
  return freeze({
@@ -761,10 +769,11 @@ function createViewComponent(factory) {
761
769
  catchAsync(promise);
762
770
  }
763
771
  var state = useAsync(function () {
764
- return promise;
772
+ return promise.then(null, props.onError);
765
773
  }, !!promise)[1];
766
774
  var loaded = !promise || !state.loading;
767
775
  useEffect(function () {
776
+ state.elementRef(viewContext.container);
768
777
  // listen to property directly so that it is invoked after pagechange event handlers in actual component
769
778
  return watch(viewContext, 'page', function () {
770
779
  viewProps[1](props.viewProps);
@@ -775,9 +784,6 @@ function createViewComponent(factory) {
775
784
  setImmediate(props.onComponentLoaded);
776
785
  }
777
786
  }, [loaded]);
778
- if (state.error) {
779
- throw state.error;
780
- }
781
787
  return children || (state.value ? /*#__PURE__*/createElement(state.value["default"], viewProps[0]) : null);
782
788
  };
783
789
  }
@@ -953,7 +959,7 @@ function useRouteParam(name, defaultValue) {
953
959
  }
954
960
  function useRouteState(key, defaultValue, snapshotOnUpdate) {
955
961
  var cur = getCurrentStates();
956
- var state = useState(cur && cur.has(key) ? cur.get(key) : defaultValue);
962
+ var state = useEagerState(cur && cur.has(key) ? cur.get(key) : defaultValue);
957
963
  var container = useViewContextWithEffect(function (cur) {
958
964
  state[1](function (oldValue) {
959
965
  return cur.has(key) ? cur.get(key) : (cur.set(key, oldValue), oldValue);
@@ -1550,7 +1556,7 @@ definePrototype(FlyoutMixin, ClassNameMixin, {
1550
1556
  },
1551
1557
  getOptions: function getOptions() {
1552
1558
  var self = this;
1553
- var options = pick(self, ['closeOnBlur']);
1559
+ var options = pick(self, ['closeOnBlur', 'containment']);
1554
1560
  if (self.initialFocus !== undefined) {
1555
1561
  options.focus = self.initialFocus;
1556
1562
  }
@@ -1605,6 +1611,13 @@ definePrototype(FlyoutMixin, ClassNameMixin, {
1605
1611
  onVisibilityChanged: function onVisibilityChanged(callback) {
1606
1612
  return this.watch('visible', callback);
1607
1613
  },
1614
+ whenVisible: function whenVisible(effect) {
1615
+ var dispose = [];
1616
+ dispose[0] = this.watch('visible', function (visible) {
1617
+ dispose[1] = (visible ? isFunction(effect()) : dispose[1] && void dispose[1]()) || noop;
1618
+ }, true);
1619
+ return combineFn(dispose);
1620
+ },
1608
1621
  initElement: function initElement(element, state) {
1609
1622
  var self = this;
1610
1623
  if (self.elements()[1]) {
@@ -1849,6 +1862,7 @@ function useMixinRef(mixin) {
1849
1862
 
1850
1863
  ;// CONCATENATED MODULE: ./src/index.js
1851
1864
 
1865
+
1852
1866
  /* harmony default export */ const src = ((/* unused pure expression or super */ null && (brew)));
1853
1867
 
1854
1868