mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-25 11:51:07 +00:00
24 lines
1020 B
TypeScript
24 lines
1020 B
TypeScript
export const getDataExplorerWindow = (currentWindow: Window): Window | undefined => {
|
|
// Start with the current window and traverse up the parent hierarchy to find a window
|
|
// with `dataExplorerPlatform` property
|
|
let dataExplorerWindow: Window | undefined = currentWindow;
|
|
|
|
try {
|
|
// TODO: Need to `any` here since the window imports Explorer which can't be in strict mode yet
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
while (dataExplorerWindow && (dataExplorerWindow as any).dataExplorerPlatform === undefined) {
|
|
// If a window does not have a parent, its parent property is a reference to itself.
|
|
if (dataExplorerWindow.parent === dataExplorerWindow) {
|
|
dataExplorerWindow = undefined;
|
|
} else {
|
|
dataExplorerWindow = dataExplorerWindow.parent;
|
|
}
|
|
}
|
|
} catch (error) {
|
|
// This can happen if we come across parent from a different origin
|
|
dataExplorerWindow = undefined;
|
|
}
|
|
|
|
return dataExplorerWindow;
|
|
};
|