/* * @Author: yehuozhili * @Date: 2021-07-17 10:12:11 * @LastEditors: yehuozhili * @LastEditTime: 2021-07-17 22:13:20 * @FilePath: \dooringx\packages\dooringx-example\src\pages\iframeTest.tsx */ import { RightConfig, Container, useStoreState, innerContainerDragUp, LeftConfig, IframeContainerWrapper, Control, postMessage, useIframePostMessage, } from 'dooringx-lib'; import { useContext, useState } from 'react'; import { configContext } from '@/layouts'; import { useCallback } from 'react'; import { PREVIEWSTATE } from '@/constant'; import { useEffect } from 'react'; export const HeaderHeight = '40px'; export default function IndexPage() { const config = useContext(configContext); const everyFn = () => {}; const subscribeFn = useCallback(() => { localStorage.setItem(PREVIEWSTATE, JSON.stringify(config.getStore().getData())); }, [config]); const [state] = useStoreState(config, subscribeFn, everyFn); const [iframeReady, setIframeReady] = useState(false); const [fnx] = useIframePostMessage(`${location.origin}/container`, config, iframeReady); useEffect(() => { const fn = (e: MessageEvent) => { console.log(e, '收到'); if (e.data === 'ready') { setIframeReady(true); fnx(); } if (typeof e.data === 'object') { if (e.data.type === 'update') { if (e.data.column === 'scale') { config.scaleState = e.data.data; config.getStore().forceUpdate(); config.refreshIframe(); } } } }; window.addEventListener('message', fn); return () => { window.removeEventListener('message', fn); }; }, []); const scaleState = config.getScaleState(); return (
head
} > <>
); }