UNPKG

fluid-dnd

Version:

An agnostic drag and drop library to sort all kind of lists. With current support for vue, react and svelte

2 lines (1 loc) 1.04 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),b=require("../HandlerPublisher-Cpyuw-Zi.cjs"),v=require("../index-BY5Nh97M.cjs"),S=require("react-dom");function y(f,i){const[e,r]=u.useState(f),a=u.useRef(e);u.useEffect(()=>{a.current=e},[e]);function d(t,s=!1){const c=a.current[t],n=()=>{r(o=>[...o.slice(0,t),...o.slice(t+1)])};return s?S.flushSync(n):n(),c}function g(t,s,c=!1){const n=()=>{r(o=>[...o.slice(0,t),s,...o.slice(t)])};c?S.flushSync(n):n()}function h(){return e.length}function m(t){return e[t]}function l(t,s,c){Promise.resolve().then(()=>require("../insert-Be27yj34.cjs")).then(({insertToListEmpty:n})=>{n(t,i.current,s,c)})}return[e,r,{removeAtEvent:d,insertEvent:g,getLength:h,getValue:m,insertToListEmpty:l}]}const A=new b.HandlerPublisher;function D(f,i){const e=u.useRef(null),[r,a,d]=y(f,e),[g,h,m]=v.dragAndDrop(d,A,i,"data-index");return u.useEffect(()=>{const l=m(e.current);return()=>{l&&l.disconnect()}},[r.length,i]),[e,r,a,h,g]}exports.useDragAndDrop=D;