brew-js-react 0.2.9 → 0.2.10

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/dialog.d.ts CHANGED
@@ -11,6 +11,7 @@ export interface DialogBaseProps<T> {
11
11
  className?: string;
12
12
  showCloseButton?: boolean;
13
13
  preventLeave?: boolean;
14
+ preventNavigation?: boolean;
14
15
  modal?: boolean;
15
16
  onCommit?: (value: T | undefined) => void;
16
17
  onOpen?: (root: HTMLElement) => void;
package/dialog.js CHANGED
@@ -14,26 +14,20 @@ const createRoot = ReactDOM.createRoot;
14
14
  export function createDialog(props) {
15
15
  var root = document.createElement('div');
16
16
  var reactRoot = createRoot && createRoot(root);
17
- var closing = false;
17
+ var closeDialog = closeFlyout.bind(0, root);
18
18
  var promise;
19
19
 
20
- function closeDialog(value) {
21
- if (!closing) {
22
- closing = true;
23
- closeFlyout(root, value).then(function () {
24
- closing = false;
25
- removeNode(root);
26
- (props.onClose || noop)(root);
27
- if (props.onRender) {
28
- if (reactRoot) {
29
- reactRoot.unmount();
30
- } else {
31
- ReactDOM.unmountComponentAtNode(root);
32
- }
33
- }
34
- });
20
+ dom.on(root, 'flyouthide', function () {
21
+ removeNode(root);
22
+ (props.onClose || noop)(root);
23
+ if (props.onRender) {
24
+ if (reactRoot) {
25
+ reactRoot.unmount();
26
+ } else {
27
+ ReactDOM.unmountComponentAtNode(root);
28
+ }
35
29
  }
36
- }
30
+ });
37
31
 
38
32
  return {
39
33
  root: root,
@@ -70,6 +64,8 @@ export function createDialog(props) {
70
64
  promise = openFlyout(root);
71
65
  if (props.preventLeave) {
72
66
  preventLeave(root, promise);
67
+ } else if (props.preventNavigation) {
68
+ lock(root, promise);
73
69
  }
74
70
  always(promise, function () {
75
71
  promise = null;
@@ -379,6 +379,7 @@ var domLock_lib$dom = external_commonjs_zeta_dom_commonjs2_zeta_dom_amd_zeta_dom
379
379
  lock = domLock_lib$dom.lock,
380
380
  locked = domLock_lib$dom.locked,
381
381
  cancelLock = domLock_lib$dom.cancelLock,
382
+ subscribeAsync = domLock_lib$dom.subscribeAsync,
382
383
  notifyAsync = domLock_lib$dom.notifyAsync,
383
384
  preventLeave = domLock_lib$dom.preventLeave;
384
385
 
@@ -408,28 +409,22 @@ var createRoot = external_commonjs_react_dom_commonjs2_react_dom_amd_react_dom_r
408
409
  function createDialog(props) {
409
410
  var root = document.createElement('div');
410
411
  var reactRoot = createRoot && createRoot(root);
411
- var closing = false;
412
+
413
+ var _closeDialog = closeFlyout.bind(0, root);
414
+
412
415
  var promise;
416
+ zeta_dom_dom.on(root, 'flyouthide', function () {
417
+ removeNode(root);
418
+ (props.onClose || noop)(root);
413
419
 
414
- function _closeDialog(value) {
415
- if (!closing) {
416
- closing = true;
417
- closeFlyout(root, value).then(function () {
418
- closing = false;
419
- removeNode(root);
420
- (props.onClose || noop)(root);
421
-
422
- if (props.onRender) {
423
- if (reactRoot) {
424
- reactRoot.unmount();
425
- } else {
426
- external_commonjs_react_dom_commonjs2_react_dom_amd_react_dom_root_ReactDOM_.unmountComponentAtNode(root);
427
- }
428
- }
429
- });
420
+ if (props.onRender) {
421
+ if (reactRoot) {
422
+ reactRoot.unmount();
423
+ } else {
424
+ external_commonjs_react_dom_commonjs2_react_dom_amd_react_dom_root_ReactDOM_.unmountComponentAtNode(root);
425
+ }
430
426
  }
431
- }
432
-
427
+ });
433
428
  return {
434
429
  root: root,
435
430
  close: _closeDialog,
@@ -472,6 +467,8 @@ function createDialog(props) {
472
467
 
473
468
  if (props.preventLeave) {
474
469
  preventLeave(root, promise);
470
+ } else if (props.preventNavigation) {
471
+ lock(root, promise);
475
472
  }
476
473
 
477
474
  always(promise, function () {
@@ -1552,6 +1549,7 @@ definePrototype(FocusStateMixin, StatefulMixin, {
1552
1549
 
1553
1550
 
1554
1551
 
1552
+
1555
1553
  var LoadingStateMixinSuper = StatefulMixin.prototype;
1556
1554
  function LoadingStateMixin() {
1557
1555
  StatefulMixin.call(this);
@@ -1559,6 +1557,7 @@ function LoadingStateMixin() {
1559
1557
  definePrototype(LoadingStateMixin, StatefulMixin, {
1560
1558
  initElement: function initElement(element, state) {
1561
1559
  LoadingStateMixinSuper.initElement.call(this, element, state);
1560
+ lock(element);
1562
1561
  zeta_dom_dom.on(element, {
1563
1562
  asyncStart: function asyncStart() {
1564
1563
  state.loading = true;