14 lines
441 B
TypeScript
14 lines
441 B
TypeScript
const escapeOwnerSelector = [
|
|
'[data-mantine-stop-propagation="true"]',
|
|
'[role="dialog"]',
|
|
'[role="menu"]',
|
|
'[role="listbox"]',
|
|
].join(", ");
|
|
|
|
export const isEscapeOwnedByNestedOverlay = (target: EventTarget | null, advancedSurface: Element | null) => {
|
|
if (!(target instanceof Element)) return false;
|
|
|
|
const escapeOwner = target.closest(escapeOwnerSelector);
|
|
return escapeOwner !== null && escapeOwner !== advancedSurface;
|
|
};
|