diff --git a/apps/client/src/widgets/view_widgets/board_view/column_drag_handler.ts b/apps/client/src/widgets/view_widgets/board_view/column_drag_handler.ts index 7ea12c48c..32e6349e9 100644 --- a/apps/client/src/widgets/view_widgets/board_view/column_drag_handler.ts +++ b/apps/client/src/widgets/view_widgets/board_view/column_drag_handler.ts @@ -5,23 +5,20 @@ export class ColumnDragHandler implements BaseDragHandler { private $container: JQuery; private api: BoardApi; private context: DragContext; - private onBoardRefresh: () => Promise; constructor( $container: JQuery, api: BoardApi, context: DragContext, - onBoardRefresh: () => Promise ) { this.$container = $container; this.api = api; this.context = context; - this.onBoardRefresh = onBoardRefresh; } setupColumnDrag($columnEl: JQuery, columnValue: string) { const $titleEl = $columnEl.find('h3[data-column-value]'); - + $titleEl.attr("draggable", "true"); // Delay drag start to allow click detection @@ -79,7 +76,7 @@ export class ColumnDragHandler implements BaseDragHandler { this.context.draggedColumnElement = null; this.cleanupColumnDropIndicators(); this.cleanupGlobalColumnDragTracking(); - + // Re-enable draggable $titleEl.attr("draggable", "true"); }); @@ -160,7 +157,7 @@ export class ColumnDragHandler implements BaseDragHandler { if (this.context.draggedColumnElement) { $allColumns = $allColumns.not(this.context.draggedColumnElement); } - + let $targetColumn: JQuery = $(); let insertBefore = false; @@ -197,7 +194,7 @@ export class ColumnDragHandler implements BaseDragHandler { if ($targetColumn.length > 0) { const $dropIndicator = $("
").addClass("column-drop-indicator"); - + if (insertBefore) { $targetColumn.before($dropIndicator); } else { @@ -210,7 +207,7 @@ export class ColumnDragHandler implements BaseDragHandler { private async handleColumnDrop() { console.log("handleColumnDrop called for:", this.context.draggedColumn); - + if (!this.context.draggedColumn || !this.context.draggedColumnElement) { console.log("No dragged column or element found"); return; @@ -220,22 +217,22 @@ export class ColumnDragHandler implements BaseDragHandler { // Find the drop indicator to determine insert position const $dropIndicator = this.$container.find(".column-drop-indicator.show"); console.log("Drop indicator found:", $dropIndicator.length > 0); - + if ($dropIndicator.length > 0) { // Get current column order from the API (source of truth) const currentOrder = [...this.api.columns]; let newOrder = [...currentOrder]; - + // Remove dragged column from current position newOrder = newOrder.filter(col => col !== this.context.draggedColumn); // Determine insertion position based on drop indicator position const $nextColumn = $dropIndicator.next('.board-column'); const $prevColumn = $dropIndicator.prev('.board-column'); - + let insertIndex = -1; - + if ($nextColumn.length > 0) { // Insert before the next column const nextColumnValue = $nextColumn.attr('data-column'); @@ -263,9 +260,6 @@ export class ColumnDragHandler implements BaseDragHandler { // Update column order in API await this.api.reorderColumns(newOrder); - - // Refresh the board to reflect the changes - await this.onBoardRefresh(); } else { console.warn("No drop indicator found for column drop"); } diff --git a/apps/client/src/widgets/view_widgets/board_view/drag_handler.ts b/apps/client/src/widgets/view_widgets/board_view/drag_handler.ts index 8cda22f50..42ddf47d9 100644 --- a/apps/client/src/widgets/view_widgets/board_view/drag_handler.ts +++ b/apps/client/src/widgets/view_widgets/board_view/drag_handler.ts @@ -7,8 +7,7 @@ export class BoardDragHandler { private $container: JQuery; private api: BoardApi; private context: DragContext; - private onBoardRefresh: () => Promise; - + private noteDragHandler: NoteDragHandler; private columnDragHandler: ColumnDragHandler; @@ -16,16 +15,14 @@ export class BoardDragHandler { $container: JQuery, api: BoardApi, context: DragContext, - onBoardRefresh: () => Promise ) { this.$container = $container; this.api = api; this.context = context; - this.onBoardRefresh = onBoardRefresh; // Initialize specialized drag handlers - this.noteDragHandler = new NoteDragHandler($container, api, context, onBoardRefresh); - this.columnDragHandler = new ColumnDragHandler($container, api, context, onBoardRefresh); + this.noteDragHandler = new NoteDragHandler($container, api, context); + this.columnDragHandler = new ColumnDragHandler($container, api, context); } // Note drag methods - delegate to NoteDragHandler diff --git a/apps/client/src/widgets/view_widgets/board_view/index.ts b/apps/client/src/widgets/view_widgets/board_view/index.ts index 1c09047cd..c8959eacf 100644 --- a/apps/client/src/widgets/view_widgets/board_view/index.ts +++ b/apps/client/src/widgets/view_widgets/board_view/index.ts @@ -334,8 +334,7 @@ export default class BoardView extends ViewMode { this.dragHandler = new BoardDragHandler( this.$container, this.api, - this.dragContext, - async () => { await this.renderList(); } + this.dragContext ); this.renderer = new DifferentialBoardRenderer( diff --git a/apps/client/src/widgets/view_widgets/board_view/note_drag_handler.ts b/apps/client/src/widgets/view_widgets/board_view/note_drag_handler.ts index 042f1a630..6be711846 100644 --- a/apps/client/src/widgets/view_widgets/board_view/note_drag_handler.ts +++ b/apps/client/src/widgets/view_widgets/board_view/note_drag_handler.ts @@ -6,18 +6,15 @@ export class NoteDragHandler implements BaseDragHandler { private $container: JQuery; private api: BoardApi; private context: DragContext; - private onBoardRefresh: () => Promise; constructor( $container: JQuery, api: BoardApi, context: DragContext, - onBoardRefresh: () => Promise ) { this.$container = $container; this.api = api; this.context = context; - this.onBoardRefresh = onBoardRefresh; } setupNoteDrag($noteEl: JQuery, note: any, branch: any) { @@ -308,9 +305,6 @@ export class NoteDragHandler implements BaseDragHandler { // Update the data attributes draggedNoteElement.attr("data-current-column", column); - - // Refresh the board to reflect the changes - await this.onBoardRefresh(); } catch (error) { console.error("Failed to update note position:", error); } finally {