Sha256: c545ad78d8ba19f32102012b3f08197895789e59efd9f04fee1196d82eb1f17b

Contents?: true

Size: 1.78 KB

Versions: 6

Compression:

Stored size: 1.78 KB

Contents

import { useState, useRef, useEffect, createContext, useContext } from 'react';
import { _ as _slicedToArray } from './i18n-71c39823.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

6 entries across 6 versions & 1 rubygems

Version Path
pageflow-17.0.4 entry_types/scrolled/package/frontend/useContentElementEditorState-245f1986.js
pageflow-17.0.3 entry_types/scrolled/package/frontend/useContentElementEditorState-245f1986.js
pageflow-17.0.2 entry_types/scrolled/package/frontend/useContentElementEditorState-245f1986.js
pageflow-17.0.1 entry_types/scrolled/package/frontend/useContentElementEditorState-245f1986.js
pageflow-17.0.0 entry_types/scrolled/package/frontend/useContentElementEditorState-245f1986.js
pageflow-16.2.0 entry_types/scrolled/package/frontend/useContentElementEditorState-245f1986.js