@magicbe/design
Version:
React + Antd Drag Drop Visual design
54 lines (53 loc) • 2.01 kB
TypeScript
import React from "react";
import { CopyInfo } from "./types";
import { Schema } from "../utils/schema";
type targetLocal = "leftTop" | "rightBottom";
export type HolderContextMenuAttr = {
local: [number, number];
items: {
label: React.ReactNode;
onClick?: () => void;
}[];
target?: string;
};
export interface DesignViewsContextProps {
/**容器 */
wapperRef: React.RefObject<HTMLDivElement>;
/**复制信息 */
copyInfo?: CopyInfo;
setCopyInfo: React.Dispatch<React.SetStateAction<CopyInfo | undefined>>;
/**当前剪切对象 */
shearKey?: string;
setShearKey: React.Dispatch<React.SetStateAction<string | undefined>>;
/**根组件聚焦状态 */
holderToRoot: boolean;
setHolderToRoot: React.Dispatch<React.SetStateAction<boolean>>;
/**插槽聚焦状态 */
holderToDrop?: string;
setHolderToDrop: React.Dispatch<React.SetStateAction<string | undefined>>;
/**插槽容器聚焦状态 */
holderToDropWapper?: string;
setHolderToDropWapper: React.Dispatch<React.SetStateAction<string | undefined>>;
/**组件聚焦状态 */
holderToWidget?: string;
setHolderToWidget: React.Dispatch<React.SetStateAction<string | undefined>>;
/**组件聚焦的位置 */
holderToWidgetLocal?: targetLocal;
setHolderToWidgetLocal: React.Dispatch<React.SetStateAction<targetLocal | undefined>>;
/**右键菜单 */
holderContextMenuAttr?: HolderContextMenuAttr;
setHolderContextMenuAttr: React.Dispatch<React.SetStateAction<HolderContextMenuAttr | undefined>>;
}
export declare const DesignViewsContextProvider: React.FC<{
children?: React.ReactNode;
}>;
export declare const useDesignViewsContext: () => DesignViewsContextProps;
export interface SchemaContextProps {
schema: Schema;
}
export declare const SchemaContextProvider: React.FC<{
children?: React.ReactNode;
value: SchemaContextProps;
}>;
export declare const useSchemaContext: () => SchemaContextProps;
export {};