import { useDark, usePage } from '@rspress/core/runtime'; import { useCallback, useEffect, useRef, useState } from 'react'; // @ts-expect-error import { normalizeId } from '../../dist/utils'; import { getPageFullUrl, getPageUrl } from './common/getPageUrl'; import MobileOperation from './common/PreviewOperations'; import './FixedDevice.css'; export default () => { const { page } = usePage(); const pageName = `${normalizeId(page.pagePath)}`; const demoId = `_${pageName}`; const { haveIframeFixedDemos } = page; const [iframeKey, setIframeKey] = useState(0); const dark = useDark(); const refresh = useCallback(() => { setIframeKey(Math.random()); }, []); const iframeRef = useRef(null); useEffect(() => { iframeRef.current?.contentWindow?.postMessage( { type: 'theme-change', dark, }, '*', ); }, [dark]); return haveIframeFixedDemos ? (
{/* hide the outline */}