UNPKG

@magicbe/design

Version:

React + Antd Drag Drop Visual design

82 lines (81 loc) 3.69 kB
var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; import { jsx as _jsx } from "react/jsx-runtime"; import React, { createContext, useContext, useImperativeHandle, useState } from "react"; import { DATA_DROP, DATA_DROP_WAPPER, DATA_WIDGET } from "../utils/const"; /**上下文容器 */ export var DesignContext = createContext({}); export var useDesignContext = function () { return useContext(DesignContext); }; var DesignProvider = React.forwardRef(function (props, ref) { var children = props.children, schemas = props.value, onDrag = props.onDrag, onChange = props.onChange, onHoverAttrsChange = props.onHoverAttrsChange, onDragWidgetChange = props.onDragWidgetChange, onDragSchemasChange = props.onDragSchemasChange, onDropWidgetChange = props.onDropWidgetChange, onActiveSchemaKeyChange = props.onActiveSchemaKeyChange; var _a = useState(), hoverAttrs = _a[0], setHoverAttrs = _a[1]; var _b = useState(), dragWidget = _b[0], setDragWidget = _b[1]; var _c = useState(), dragSchemas = _c[0], setDragSchemas = _c[1]; var _d = useState(), dropWidget = _d[0], setDropWidget = _d[1]; var _e = useState(), activeSchemaKey = _e[0], setActiveSchemaKey = _e[1]; var handleHoverAttrs = function (attrs) { setHoverAttrs(attrs); onHoverAttrsChange && onHoverAttrsChange(attrs); }; var handleDragWidget = function (prop) { setDragWidget(prop); onDragWidgetChange && onDragWidgetChange(prop); }; var handleDragSchemas = function (schemas) { setDragSchemas(schemas); onDragSchemasChange && onDragSchemasChange(schemas); }; var handleDropWidget = function (widget) { setDropWidget(widget); onDropWidgetChange && onDropWidgetChange(widget); }; var handleActiveSchemaKey = function (key) { setActiveSchemaKey(key); onActiveSchemaKeyChange && onActiveSchemaKeyChange(key); }; var handleSchemas = function (schemas) { onChange && onChange(__spreadArray([], schemas, true)); }; /**预留暴露方法 */ useImperativeHandle(ref, function () { return ({ setHoverAttrs: setHoverAttrs, setDragWidget: setDragWidget, setDragSchemas: setDragSchemas, setDropWidget: setDropWidget, setActiveSchemaKey: setActiveSchemaKey, }); }); return (_jsx(DesignContext.Provider, __assign({ value: { hoverAttrs: hoverAttrs, setHoverAttrs: handleHoverAttrs, dropWidget: dropWidget, setDropWidget: handleDropWidget, dragWidget: dragWidget, setDragWidget: handleDragWidget, dragSchemas: dragSchemas, setDragSchemas: handleDragSchemas, schemas: schemas, setSchemas: handleSchemas, activeSchemaKey: activeSchemaKey, setActiveSchemaKey: handleActiveSchemaKey, onDrag: onDrag, } }, { children: children }))); }); export default DesignProvider;