@linzjs/windows 16.2.0 → 16.3.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.
@@ -157,6 +157,8 @@ export const LuiModalAsyncContextProvider = ({ children }) => {
157
157
  ownerRef: modalInstance.ownerRef,
158
158
  close: () => modalInstance.resolve(undefined),
159
159
  resolve: modalInstance.resolve,
160
+ isModalInstance: true,
161
+ getOwnerWindow: () => modalInstance.ownerRef.current?.ownerDocument.defaultView ?? window,
160
162
  }, children: portalOwners(modalInstance).map((element) => createPortal(_jsx(_Fragment, { children: modalInstance.componentInstance }), element)) }, modalInstance.uuid))) }), _jsx(_Fragment, { children: children })] }));
161
163
  };
162
164
  //# sourceMappingURL=LuiModalAsyncContextProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LuiModalAsyncContextProvider.js","sourceRoot":"","sources":["../../src/LuiModalAsync/LuiModalAsyncContextProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LuiModalAsyncContextProvider.js","sourceRoot":"","sources":["../../src/LuiModalAsync/LuiModalAsyncContextProvider.tsx"],"names":[],"mappings":"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"}
@@ -6,6 +6,17 @@ export interface LuiModalAsyncInstanceContextType {
6
6
  ownerRef: MutableRefObject<HTMLElement | null>;
7
7
  close: () => void;
8
8
  resolve: (value: any) => void;
9
+ /**
10
+ * True only when rendered inside a real modal instance. Lets other code (e.g.
11
+ * useShowAsyncModal) tell apart "not inside a modal" from a context whose fields happen to be
12
+ * unset. Mirrors PanelInstanceContextType.isPanelInstance.
13
+ */
14
+ isModalInstance: boolean;
15
+ /**
16
+ * The window this modal is currently rendered in. Read live (not reactive) so a modal opened
17
+ * from within this one targets the same window. Mirrors PanelInstanceContextType.getOwnerWindow.
18
+ */
19
+ getOwnerWindow: () => Window;
9
20
  }
10
21
  /**
11
22
  * Provides access to resolving/closing to modal elements.
@@ -9,5 +9,7 @@ export const LuiModalAsyncInstanceContext = createContext({
9
9
  ownerRef: { current: null },
10
10
  close: NoContextError,
11
11
  resolve: NoContextError,
12
+ isModalInstance: false,
13
+ getOwnerWindow: () => window,
12
14
  });
13
15
  //# sourceMappingURL=LuiModalAsyncInstanceContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LuiModalAsyncInstanceContext.js","sourceRoot":"","sources":["../../src/LuiModalAsync/LuiModalAsyncInstanceContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,OAAO,CAAC;AAYxD,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,aAAa,CAAmC;IAC1F,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3B,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC"}
1
+ {"version":3,"file":"LuiModalAsyncInstanceContext.js","sourceRoot":"","sources":["../../src/LuiModalAsync/LuiModalAsyncInstanceContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,OAAO,CAAC;AAuBxD,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,aAAa,CAAmC;IAC1F,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3B,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,cAAc;IACvB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM;CAC7B,CAAC,CAAC"}
@@ -1,10 +1,28 @@
1
1
  import { useCallback, useContext, useMemo, useRef } from 'react';
2
2
  import { LuiModalAsyncContext, openModalOnAllWindows, } from './LuiModalAsyncContext';
3
+ import { LuiModalAsyncInstanceContext } from './LuiModalAsyncInstanceContext';
4
+ import { PanelInstanceContext } from '../panel/PanelInstanceContext';
3
5
  export const useShowAsyncModal = () => {
4
6
  const { showModal } = useContext(LuiModalAsyncContext);
7
+ const panelInstanceContext = useContext(PanelInstanceContext);
8
+ const modalInstanceContext = useContext(LuiModalAsyncInstanceContext);
5
9
  // eslint-disable-next-line
6
10
  const modalOwnerRef = useRef(document.body);
7
- const showModalAsync = useCallback((component, args, props) => showModal(props?.showOnAllWindows ? openModalOnAllWindows : modalOwnerRef, component, args, props), [showModal]);
11
+ const showModalAsync = useCallback((component, args, props) => {
12
+ // If called from within another modal, follow that modal's own window so nested modals
13
+ // stay together. Otherwise, if called from within a panel, follow that panel's own window
14
+ // (which may be popped out) rather than the main window. Re-read on every call so this
15
+ // stays correct as the panel/modal pops in/out. Skipped when showOnAllWindows is set.
16
+ if (!props?.showOnAllWindows) {
17
+ if (modalInstanceContext.isModalInstance) {
18
+ modalOwnerRef.current = modalInstanceContext.getOwnerWindow().document.body;
19
+ }
20
+ else if (panelInstanceContext.isPanelInstance) {
21
+ modalOwnerRef.current = panelInstanceContext.getOwnerWindow().document.body;
22
+ }
23
+ }
24
+ return showModal(props?.showOnAllWindows ? openModalOnAllWindows : modalOwnerRef, component, args, props);
25
+ }, [showModal, panelInstanceContext, modalInstanceContext]);
8
26
  return useMemo(() => ({
9
27
  showModal: showModalAsync,
10
28
  modalOwnerRef,
@@ -1 +1 @@
1
- {"version":3,"file":"useShowAsyncModal.js","sourceRoot":"","sources":["../../src/LuiModalAsync/useShowAsyncModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,GAGtB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAEvD,2BAA2B;IAC3B,MAAM,aAAa,GAAG,MAAM,CAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,cAAc,GAAG,WAAW,CAChC,CACE,SAAa,EACb,IAAmD,EACnD,KAAsB,EAC4C,EAAE,CACpE,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,EACpG,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE,cAAc;QACzB,aAAa;KACd,CAAC,EACF,CAAC,cAAc,CAAC,CACjB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useShowAsyncModal.js","sourceRoot":"","sources":["../../src/LuiModalAsync/useShowAsyncModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,GAGtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACvD,MAAM,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAC9D,MAAM,oBAAoB,GAAG,UAAU,CAAC,4BAA4B,CAAC,CAAC;IAEtE,2BAA2B;IAC3B,MAAM,aAAa,GAAG,MAAM,CAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,cAAc,GAAG,WAAW,CAChC,CACE,SAAa,EACb,IAAmD,EACnD,KAAsB,EAC4C,EAAE;QACpE,uFAAuF;QACvF,0FAA0F;QAC1F,uFAAuF;QACvF,sFAAsF;QACtF,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC;YAC7B,IAAI,oBAAoB,CAAC,eAAe,EAAE,CAAC;gBACzC,aAAa,CAAC,OAAO,GAAG,oBAAoB,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9E,CAAC;iBAAM,IAAI,oBAAoB,CAAC,eAAe,EAAE,CAAC;gBAChD,aAAa,CAAC,OAAO,GAAG,oBAAoB,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9E,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5G,CAAC,EACD,CAAC,SAAS,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CACxD,CAAC;IAEF,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE,cAAc;QACzB,aAAa;KACd,CAAC,EACF,CAAC,cAAc,CAAC,CACjB,CAAC;AACJ,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -2023,7 +2023,9 @@ const NoContextError$2 = () => {
2023
2023
  const LuiModalAsyncInstanceContext = createContext({
2024
2024
  ownerRef: { current: null },
2025
2025
  close: NoContextError$2,
2026
- resolve: NoContextError$2
2026
+ resolve: NoContextError$2,
2027
+ isModalInstance: false,
2028
+ getOwnerWindow: () => window
2027
2029
  });
2028
2030
 
2029
2031
  const LuiModalAsync = ({
@@ -2238,7 +2240,9 @@ const LuiModalAsyncContextProvider = ({ children }) => {
2238
2240
  value: {
2239
2241
  ownerRef: modalInstance.ownerRef,
2240
2242
  close: () => modalInstance.resolve(void 0),
2241
- resolve: modalInstance.resolve
2243
+ resolve: modalInstance.resolve,
2244
+ isModalInstance: true,
2245
+ getOwnerWindow: () => modalInstance.ownerRef.current?.ownerDocument.defaultView ?? window
2242
2246
  },
2243
2247
  children: portalOwners(modalInstance).map(
2244
2248
  (element) => createPortal(/* @__PURE__ */ jsx(Fragment, { children: modalInstance.componentInstance }), element)
@@ -2271,7 +2275,9 @@ const PanelInstanceContext = createContext({
2271
2275
  dockId: void 0,
2272
2276
  panelPoppedOut: false,
2273
2277
  zIndex: 0,
2274
- hidden: false
2278
+ hidden: false,
2279
+ isPanelInstance: false,
2280
+ getOwnerWindow: () => window
2275
2281
  });
2276
2282
 
2277
2283
  const NoContext = () => {
@@ -7157,7 +7163,9 @@ const PanelInline = forwardRef(function PanelInline2({ title, className, width,
7157
7163
  undock: () => {
7158
7164
  },
7159
7165
  panelPoppedOut: false,
7160
- bounds: void 0
7166
+ bounds: void 0,
7167
+ isPanelInstance: true,
7168
+ getOwnerWindow: () => window
7161
7169
  },
7162
7170
  children: /* @__PURE__ */ jsx("div", { ref, className: clsx("WindowPanel", className), title, style: { width, height }, children })
7163
7171
  }
@@ -7212,7 +7220,9 @@ const PanelInstanceContextProvider = ({
7212
7220
  dockId,
7213
7221
  dock,
7214
7222
  undock,
7215
- hidden
7223
+ hidden,
7224
+ isPanelInstance: true,
7225
+ getOwnerWindow: () => panelInstance.window ?? window
7216
7226
  },
7217
7227
  children
7218
7228
  }
@@ -7450,10 +7460,21 @@ const LuiModalAsyncMain = ({ children }) => /* @__PURE__ */ jsx("div", { classNa
7450
7460
 
7451
7461
  const useShowAsyncModal = () => {
7452
7462
  const { showModal } = useContext(LuiModalAsyncContext);
7463
+ const panelInstanceContext = useContext(PanelInstanceContext);
7464
+ const modalInstanceContext = useContext(LuiModalAsyncInstanceContext);
7453
7465
  const modalOwnerRef = useRef(document.body);
7454
7466
  const showModalAsync = useCallback(
7455
- (component, args, props) => showModal(props?.showOnAllWindows ? openModalOnAllWindows : modalOwnerRef, component, args, props),
7456
- [showModal]
7467
+ (component, args, props) => {
7468
+ if (!props?.showOnAllWindows) {
7469
+ if (modalInstanceContext.isModalInstance) {
7470
+ modalOwnerRef.current = modalInstanceContext.getOwnerWindow().document.body;
7471
+ } else if (panelInstanceContext.isPanelInstance) {
7472
+ modalOwnerRef.current = panelInstanceContext.getOwnerWindow().document.body;
7473
+ }
7474
+ }
7475
+ return showModal(props?.showOnAllWindows ? openModalOnAllWindows : modalOwnerRef, component, args, props);
7476
+ },
7477
+ [showModal, panelInstanceContext, modalInstanceContext]
7457
7478
  );
7458
7479
  return useMemo(
7459
7480
  () => ({