1 line
1.1 KiB
JSON
1 line
1.1 KiB
JSON
{"ast":null,"code":"import ownerDocument from 'dom-helpers/ownerDocument';\nimport { useState, useEffect } from 'react';\n\nvar resolveRef = function resolveRef(ref) {\n if (typeof document === 'undefined') return undefined;\n if (ref == null) return ownerDocument().body;\n if (typeof ref === 'function') ref = ref();\n if (ref && ref.current) ref = ref.current;\n if (ref && ref.nodeType) return ref;\n return null;\n};\n\nexport default function useWaitForDOMRef(ref, onResolved) {\n var _useState = useState(function () {\n return resolveRef(ref);\n }),\n resolvedRef = _useState[0],\n setRef = _useState[1];\n\n if (!resolvedRef) {\n var earlyRef = resolveRef(ref);\n if (earlyRef) setRef(earlyRef);\n }\n\n useEffect(function () {\n if (onResolved && resolvedRef) {\n onResolved(resolvedRef);\n }\n }, [onResolved, resolvedRef]);\n useEffect(function () {\n var nextRef = resolveRef(ref);\n\n if (nextRef !== resolvedRef) {\n setRef(nextRef);\n }\n }, [ref, resolvedRef]);\n return resolvedRef;\n}","map":null,"metadata":{},"sourceType":"module"} |