File tree Expand file tree Collapse file tree 3 files changed +12
-4
lines changed
packages/core/src/features Expand file tree Collapse file tree 3 files changed +12
-4
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ " @headless-tree/core " : patch
3+ ---
4+
5+ drag-and-drop feature is no longer dependent on selection feature, and fill default to focused item if selection feature is missing (#143 )
Original file line number Diff line number Diff line change @@ -46,7 +46,6 @@ const handleAutoOpenFolder = (
4646const defaultCanDropForeignDragObject = ( ) => false ;
4747export const dragAndDropFeature : FeatureImplementation = {
4848 key : "drag-and-drop" ,
49- deps : [ "selection" ] ,
5049
5150 getDefaultConfig : ( defaultConfig , tree ) => ( {
5251 canDrop : ( _ , target ) => target . item . isFolder ( ) ,
@@ -185,12 +184,14 @@ export const dragAndDropFeature: FeatureImplementation = {
185184 onDragEnter : ( e : DragEvent ) => e . preventDefault ( ) ,
186185
187186 onDragStart : ( e : DragEvent ) => {
188- const selectedItems = tree . getSelectedItems ( ) ;
187+ const selectedItems = tree . getSelectedItems
188+ ? tree . getSelectedItems ( )
189+ : [ tree . getFocusedItem ( ) ] ;
189190 const items = selectedItems . includes ( item ) ? selectedItems : [ item ] ;
190191 const config = tree . getConfig ( ) ;
191192
192193 if ( ! selectedItems . includes ( item ) ) {
193- tree . setSelectedItems ( [ item . getItemMeta ( ) . itemId ] ) ;
194+ tree . setSelectedItems ?. ( [ item . getItemMeta ( ) . itemId ] ) ;
194195 }
195196
196197 if ( ! ( config . canDrag ?.( items ) ?? true ) ) {
Original file line number Diff line number Diff line change @@ -191,7 +191,9 @@ export const keyboardDragAndDropFeature: FeatureImplementation = {
191191 preventDefault : true ,
192192 isEnabled : ( tree ) => ! tree . getState ( ) . dnd ,
193193 handler : ( _ , tree ) => {
194- const selectedItems = tree . getSelectedItems ( ) ;
194+ const selectedItems = tree . getSelectedItems ?.( ) ?? [
195+ tree . getFocusedItem ( ) ,
196+ ] ;
195197 const focusedItem = tree . getFocusedItem ( ) ;
196198
197199 tree . startKeyboardDrag (
You can’t perform that action at this time.
0 commit comments