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