wix-style-react
Version:
wix-style-react
31 lines • 1.29 kB
JavaScript
import draggableDriverFactory from '../DragAndDrop/Draggable/Draggable.driver';
import { dataAttributes } from '../DragAndDrop/Draggable/constants';
import { dataHooks } from './constants';
const sortableListBaseFactory = ({ element }) => {
const draggableDriver = draggableDriverFactory({
element: element.querySelector(`[data-hook="${dataHooks.provider}"]`),
});
return {
/** checks if exists */
exists: () => !!element,
/** reorder sortable list items */
reorder: ({ dataHookFrom, dataHookTo }) => {
draggableDriver.beginDrag({
dataHook: dataHookFrom,
});
draggableDriver.dragOver({ dataHook: dataHookTo });
draggableDriver.endDrag();
},
/** get draggable item position */
getItemPosition: ({ dataHook }) => {
const draggableItems = [
...element.querySelectorAll(`[${dataAttributes.draggableTarget}]`),
];
return draggableItems.findIndex(item => item
.querySelectorAll(`[${dataAttributes.draggableSource}]`)[0]
.getAttribute('data-hook') === dataHook);
},
};
};
export default sortableListBaseFactory;
//# sourceMappingURL=SortableListBase.driver.js.map