1.0.2 • Published 2 years ago

lee-react-drag v1.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

Installation

npm install lee-react-drag

Usage

import React, { useState } from "react";
import LeeReactDrag from "lee-react-drag";

// 组件属性类型
interface ComponentType {
  id: string; // 组件唯一id
  attr: string; // 组件配置信息,x-横坐标点,y-纵坐标点,w-宽度,h-高度,opacity-透明度 .....
  children: ComponentType[]; // 属性同父组件
  hideStatus: number; // 隐藏状态 1-隐藏 2-展示
  lockStatus: number; // 锁定状态 1-锁定 2-解锁
}

export default ()=> {
  // 组件集合
  const [components, setComponents] = useState<ComponentType[]>([{
        id: "123",
        children: [],
        attr: '{"x":50,"y":50,"w":200,"h":200,"opacity":100}',
        hideStatus: 2,
        lockStatus: 2
      }]);
  // 选中组件id集合
  const [selectedIds, setSelectedIds] = useState<(string | number)[]>([]);

  // 更新组件
  const handleUpdateCom = (data: ComponentType | ComponentType[]) => {
    if (data instanceof Array) {
      setComponents(data);
    } else {
      setSelectedIds([data.id]);
    }
  };

  // 选择组件
  const handleSelectCom = (ids: (string | number)[]) => {
    setSelectedIds(ids);
  };

  return (
    <>
      <LeeReactDrag
        components={components}
        selectedIds={selectedIds}
        onChange={handleUpdateCom}
        onSelect={handleSelectCom}
        isEdit
      />
    </>
  );
}

Lee React Drag Props

components: ComponentType[],
selectedIds: string[], // 选中的组件id集合
onChange: (data: ComponentType | ComponentType[]) => void, // 更新组件信息
onSelect: (ids: (string | number)[]) => void, // 选择组件
isEdit: boolean = true, // 是否编辑状态