Skip to content

Commit

Permalink
IBX-8837: Distraction free mode: Text obstruction by toolbar's fixed …
Browse files Browse the repository at this point in the history
…position
  • Loading branch information
GrabowskiM committed Oct 9, 2024
1 parent 8772790 commit 8f3dcb3
Showing 1 changed file with 38 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
(function (global, doc) {
let activeFieldEdit = null;
let clearedPositionNodesData = [];
const DISTRACTION_FREE_MODE_ENABLE_EVENT_NAME = 'ibexa-distraction-free:enable';
const DISTRACTION_FREE_DISABLE_EVENT_NAME = 'ibexa-distraction-free:disable';
const distractionFreeModeEnableBtns = doc.querySelectorAll('.ibexa-field-edit__distraction-free-mode-control-btn--enable');
Expand All @@ -16,6 +17,43 @@
activeFieldEdit.classList.toggle('ibexa-field-edit--distraction-free-mode-active', active);
editorInstance.set('distractionFreeModeActive', active);

if (active) {
let parentElement = activeFieldEdit.parentNode;

while (parentElement && parentElement !== doc.body) {
const { overflow, position } = getComputedStyle(parentElement);

if (overflow !== 'visible' || position === 'absolute') {
clearedPositionNodesData.push({
node: parentElement,
originalInlineOverflow: parentElement.style.overflow,
originalInlinePosition: parentElement.style.position,
});

parentElement.style.overflow = 'visible';
parentElement.style.position = 'static';
}

parentElement = parentElement.parentNode;
}
} else {
clearedPositionNodesData.forEach(({ node, originalInlineOverflow, originalInlinePosition }) => {
if (originalInlineOverflow) {
node.style.overflow = originalInlineOverflow;
} else {
node.style.removeProperty('overflow');
}

if (originalInlinePosition) {
node.style.position = originalInlinePosition;
} else {
node.style.removeProperty('position');
}
});

clearedPositionNodesData = [];
}

doc.body.dispatchEvent(
new CustomEvent(dispatchEventName, {
detail: {
Expand Down

0 comments on commit 8f3dcb3

Please sign in to comment.