UNPKG

@sanity/form-builder

Version:
37 lines (36 loc) 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useObjectEditFormBuilderFocus = useObjectEditFormBuilderFocus; var _isEqual2 = _interopRequireDefault(require("lodash/isEqual")); var _portableTextEditor = require("@sanity/portable-text-editor"); var _react = require("react"); var _paths = require("@sanity/util/paths"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var onBlur = () => { // We don't need to act on these. }; function useObjectEditFormBuilderFocus(onFocus) { var editor = (0, _portableTextEditor.usePortableTextEditor)(); var selection = (0, _portableTextEditor.usePortableTextEditorSelection)(); var onEditObjectFormBuilderFocus = (0, _react.useCallback)(nextPath => { var newPath; if (selection) { if ((0, _isEqual2.default)(nextPath, selection.focus.path)) { newPath = [...nextPath, _paths.FOCUS_TERMINATOR]; } _portableTextEditor.PortableTextEditor.blur(editor); } onFocus(newPath || nextPath); }, [editor, onFocus, selection]); var onEditObjectFormBuilderBlur = onBlur; var onEditObjectClose = (0, _react.useCallback)(() => { onFocus([]); }, [onFocus]); return (0, _react.useMemo)(() => ({ onEditObjectFormBuilderFocus, onEditObjectFormBuilderBlur, onEditObjectClose }), [onEditObjectFormBuilderBlur, onEditObjectFormBuilderFocus, onEditObjectClose]); }