/** * Creates sidebar blocks. */ import { useState } from '@wordpress/element'; import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd'; import { Icon } from '@wordpress/components'; function DragAndDropComponent( { initialItems, updateDefaultAllowedQuickSidebarBlocks, saveOptionToDatabase, } ) { const [ items, setItems ] = useState( initialItems ); const onDragEnd = ( result ) => { if ( ! result.destination ) { return; } const reorderedItems = Array.from( items ); const [ removed ] = reorderedItems.splice( result.source.index, 1 ); reorderedItems.splice( result.destination.index, 0, removed ); const namesArray = reorderedItems.map( ( item ) => item.name ); saveOptionToDatabase( namesArray ); setItems( reorderedItems ); updateDefaultAllowedQuickSidebarBlocks( namesArray ); }; return ( { ( provided ) => (
{ items.map( ( item, index ) => ( { ( provided // eslint-disable-line no-shadow ) => (
) }
) ) } { provided.placeholder }
) }
); } export default DragAndDropComponent;