Sha256: 349abe5a98b750c6a27180bfd08db7717a8811ec16e5474b2ad314836bb0ef8a
Contents?: true
Size: 1.78 KB
Versions: 1
Compression:
Stored size: 1.78 KB
Contents
import { useState, useRef, useEffect, createContext, useContext } from 'react'; import { _ as _slicedToArray } from './i18n-ddd92820.js'; function useDelayedBoolean(value, _ref) { var fromFalseToTrue = _ref.fromFalseToTrue, fromTrueToFalse = _ref.fromTrueToFalse; var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), setFlag = _useState2[1]; var timeoutRef = useRef(null); var ref = useRef(value); useEffect(function () { if (value && !fromFalseToTrue || !value && !fromTrueToFalse) { ref.current = value; } else if (ref.current !== value) { timeoutRef.current = setTimeout(function () { ref.current = value; setFlag(function (flag) { return !flag; }); }, ref.current ? fromTrueToFalse : fromFalseToTrue); return function () { return clearTimeout(timeoutRef.current); }; } }, [value, fromTrueToFalse, fromFalseToTrue]); return !fromFalseToTrue && value || ref.current && (!!fromTrueToFalse || value); } var ContentElementEditorStateContext = createContext({ isSelected: false, isEditable: false, setTransientState: function setTransientState() {} }); /** * Use inside a content element component to determine whether the * component is being rendered inside the editor iframe, and whether * the content element is currently selected. This can be used to * implement simple inline editing capabilities like displaying extra * information when the content element is selected. * * @example * const {isEditable, isSelected} = useContentElementEditorState(); */ function useContentElementEditorState() { return useContext(ContentElementEditorStateContext); } export { ContentElementEditorStateContext as C, useContentElementEditorState as a, useDelayedBoolean as u };
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pageflow-16.1.0 | entry_types/scrolled/package/frontend/useContentElementEditorState-63045393.js |