File tree Expand file tree Collapse file tree 4 files changed +9
-15
lines changed
angular/projects/demo/src/environments Expand file tree Collapse file tree 4 files changed +9
-15
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -94,6 +94,7 @@ Change log
9494
9595## 8.3.0-dev (TBD)
9696* feat [ #2378 ] ( https://github.com/gridstack/gridstack.js/pull/2378 ) attribute ` DDRemoveOpt.decline ` to deny the removal of a specific class.
97+ * fix: dragging onto trash now calls removeWidget() and therefore ` GridStack.addRemoveCB ` (for component cleanup)
9798
9899## 8.3.0 (2023-06-13)
99100* feat [ #2358 ] ( https://github.com/gridstack/gridstack.js/issues/2358 ) column(N, 'list'|'compact'|...) resizing now support reflowing content as list
Original file line number Diff line number Diff line change @@ -547,8 +547,9 @@ export class GridStackEngine {
547547 if ( removeDOM ) node . _removeDOM = true ; // let CB remove actual HTML (used to set _id to null, but then we loose layout info)
548548 // don't use 'faster' .splice(findIndex(),1) in case node isn't in our list, or in multiple times.
549549 this . nodes = this . nodes . filter ( n => n . _id !== node . _id ) ;
550- return this . _packNodes ( )
551- . _notify ( [ node ] ) ;
550+ if ( ! node . _isAboutToRemove ) this . _packNodes ( ) ; // if dragged out, no need to relayout as already done...
551+ this . _notify ( [ node ] ) ;
552+ return this ;
552553 }
553554
554555 public removeAll ( removeDOM = true ) : GridStackEngine {
Original file line number Diff line number Diff line change @@ -2113,17 +2113,12 @@ export class GridStack {
21132113 node . el = target ;
21142114
21152115 if ( node . _isAboutToRemove ) {
2116- let gridToNotify = el . gridstackNode . grid ;
2117- if ( gridToNotify . _gsEventHandler [ event . type ] ) {
2118- gridToNotify . _gsEventHandler [ event . type ] ( event , target ) ;
2116+ let grid = el . gridstackNode . grid ;
2117+ if ( grid . _gsEventHandler [ event . type ] ) {
2118+ grid . _gsEventHandler [ event . type ] ( event , target ) ;
21192119 }
2120- this . _removeDD ( el ) ;
2121- gridToNotify . engine . removedNodes . push ( node ) ;
2122- gridToNotify . _triggerRemoveEvent ( ) ;
2123- // break circular links and remove DOM
2124- delete el . gridstackNode ;
2125- delete node . el ;
2126- el . remove ( ) ;
2120+ grid . engine . nodes . push ( node ) ; // temp add it back so we can proper remove it next
2121+ grid . removeWidget ( el , true , true ) ;
21272122 } else {
21282123 Utils . removePositioningStyles ( target ) ;
21292124 if ( node . _temporaryRemoved ) {
You can’t perform that action at this time.
0 commit comments