/* global React, ReactDOM, useTweaks, TweaksPanel, TweakRadio, TweakSection */ const { useState, useEffect } = React; function App() { const [lang, setLang] = useState('pl'); const defaults = /*EDITMODE-BEGIN*/{ "density": "comfortable", "direction": "a" }/*EDITMODE-END*/; const [tweaks, setTweaks] = useTweaks(defaults); // Apply density to document useEffect(() => { document.documentElement.setAttribute('data-density', tweaks.density); }, [tweaks.density]); // Scroll reveal useEffect(() => { const io = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) e.target.classList.add('in'); }); }, { threshold: 0.12, rootMargin: '0px 0px -60px 0px' }); const observe = () => { document.querySelectorAll('.reveal:not(.in)').forEach(el => io.observe(el)); }; observe(); const mo = new MutationObserver(observe); mo.observe(document.body, { childList: true, subtree: true }); return () => { io.disconnect(); mo.disconnect(); }; }, []); return ( <> {/* */}