diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 0c8c615..972bb63 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -413,6 +413,20 @@ export default function RootLayout({ originalContent = element.textContent; element.contentEditable = 'true'; + + if (!element.dataset.webildOriginalWhiteSpace) { + const computedStyle = window.getComputedStyle(element); + element.dataset.webildOriginalWhiteSpace = computedStyle.whiteSpace; + element.dataset.webildOriginalWordWrap = computedStyle.wordWrap; + element.dataset.webildOriginalOverflowWrap = computedStyle.overflowWrap; + element.dataset.webildOriginalOverflow = computedStyle.overflow; + } + + element.style.whiteSpace = 'pre-wrap'; + element.style.wordWrap = 'break-word'; + element.style.overflowWrap = 'break-word'; + element.style.overflow = 'visible'; + element.focus(); isEditing = true; @@ -522,6 +536,23 @@ export default function RootLayout({ element.contentEditable = 'false'; isEditing = false; + if (element.dataset.webildOriginalWhiteSpace) { + element.style.whiteSpace = element.dataset.webildOriginalWhiteSpace === 'normal' ? '' : element.dataset.webildOriginalWhiteSpace; + delete element.dataset.webildOriginalWhiteSpace; + } + if (element.dataset.webildOriginalWordWrap) { + element.style.wordWrap = element.dataset.webildOriginalWordWrap === 'normal' ? '' : element.dataset.webildOriginalWordWrap; + delete element.dataset.webildOriginalWordWrap; + } + if (element.dataset.webildOriginalOverflowWrap) { + element.style.overflowWrap = element.dataset.webildOriginalOverflowWrap === 'normal' ? '' : element.dataset.webildOriginalOverflowWrap; + delete element.dataset.webildOriginalOverflowWrap; + } + if (element.dataset.webildOriginalOverflow) { + element.style.overflow = element.dataset.webildOriginalOverflow === 'visible' ? '' : element.dataset.webildOriginalOverflow; + delete element.dataset.webildOriginalOverflow; + } + if (element.dataset.beforeInputHandler === 'true') { element.removeEventListener('beforeinput', () => {}); delete element.dataset.beforeInputHandler; @@ -827,6 +858,9 @@ export default function RootLayout({ const handleScroll = () => { if (!isActive) return; + + if (isEditing) return; + if (selectedElement) { makeUneditable(selectedElement, false); selectedElement.classList.remove(selectedClass); @@ -1200,6 +1234,31 @@ export default function RootLayout({ window.addEventListener('scroll', handleScroll, true); window.addEventListener('message', handleMessage, true); + let lastPathname = window.location.pathname; + + const notifyPageChange = () => { + window.parent.postMessage({ + type: 'webild-page-changed', + data: { pathname: window.location.pathname } + }, '*'); + }; + + window.addEventListener('popstate', () => { + if (lastPathname !== window.location.pathname) { + lastPathname = window.location.pathname; + notifyPageChange(); + } + }, true); + + const urlCheckInterval = setInterval(() => { + if (lastPathname !== window.location.pathname) { + lastPathname = window.location.pathname; + notifyPageChange(); + } + }, 500); + + notifyPageChange(); + window.webildCleanup = () => { isActive = false; @@ -1210,6 +1269,10 @@ export default function RootLayout({ removeHoverOverlay(); removeElementTypeLabel(); + if (urlCheckInterval) { + clearInterval(urlCheckInterval); + } + document.removeEventListener('mouseover', handleMouseOver, true); document.removeEventListener('mouseout', handleMouseOut, true); document.removeEventListener('click', handleClick, true); diff --git a/src/app/page.tsx b/src/app/page.tsx index e33d8d3..d4dafaa 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -2,7 +2,7 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline'; -import HeroSplitDualMedia from '@/components/sections/hero/HeroSplitDualMedia'; +import HeroLogoBillboardSplit from '@/components/sections/hero/HeroLogoBillboardSplit'; import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard'; import FeatureCardNineteen from '@/components/sections/feature/FeatureCardNineteen'; import ProductCardThree from '@/components/sections/product/ProductCardThree'; @@ -69,31 +69,22 @@ export default function SilZemliPage() {