UNPKG

@schema-render/core-react

Version:

Through a set of simple JSON Schema, efficiently build a set of forms.

35 lines (34 loc) 1.08 kB
import { useEffect, useState } from "react"; import { generateUID } from "../utils/base"; import useLatest from "./useLatest"; const DEV_TOOL_KEY = '__schema_render_tool__'; export default function useDevTool({ valueRef, props }) { const [uid] = useState(()=>generateUID()); const propsRef = useLatest(props); useEffect(()=>{ if (!window[DEV_TOOL_KEY]) { window[DEV_TOOL_KEY] = {}; } if (!window[DEV_TOOL_KEY][uid]) { window[DEV_TOOL_KEY][uid] = {}; } Object.assign(window[DEV_TOOL_KEY][uid], { exportProps: ()=>propsRef.current, exportSchema: ()=>{ var _propsRef_current; return (_propsRef_current = propsRef.current) === null || _propsRef_current === void 0 ? void 0 : _propsRef_current.schema; }, exportValue: ()=>valueRef.current }); return ()=>{ delete window[DEV_TOOL_KEY][uid]; }; }, [ uid, propsRef, valueRef ]); return { uid }; }