import { useCanvasOpen } from '@agent/components/Canvas'; import { usePortal } from '@agent/hooks/usePortal'; import { useGlobalStore } from '@agent/state/global'; import { createPortal, useEffect } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { chevronDown, Icon } from '@wordpress/icons'; import { AnimatePresence, motion } from 'framer-motion'; export const MobileLayout = ({ children }) => { const mountNode = usePortal('extendify-agent-mount'); const { minimized, setMinimized, open, mode } = useGlobalStore(); const canvasOpen = useCanvasOpen(); const minimize = () => setMinimized(true); // The full-screen chat would cover the canvas the user just opened. useEffect(() => { if (canvasOpen) setMinimized(true); }, [canvasOpen, setMinimized]); useEffect(() => { if (!mountNode || minimized) return; document.body.style.overflow = 'hidden'; return () => { document.body.style.overflow = ''; }; }, [mountNode, minimized]); // Only the frontend agent may show while the store says closed. if (!mountNode || (!open && mode !== 'docked-left')) return null; return createPortal(
{window.extSharedData.partnerName}
{children}
, mountNode, ); };