diff --git a/src/app/components/board/board.component.html b/src/app/components/board/board.component.html
index d6ad9f7..7f53a47 100644
--- a/src/app/components/board/board.component.html
+++ b/src/app/components/board/board.component.html
@@ -33,8 +33,8 @@
description
checkSubtasks(tasks[id].id)
diff --git a/src/app/components/board/task/task.component.scss b/src/app/components/board/task/task.component.scss
index b0e40a9..bdbd8f6 100644
--- a/src/app/components/board/task/task.component.scss
+++ b/src/app/components/board/task/task.component.scss
@@ -30,8 +30,8 @@ section {
border-radius: 24px;
background-color: var(--white);
box-shadow: 0px 0px 10px 3px rgba(0, 0, 0, 0.08);
- cursor: pointer;
margin-bottom: 16px;
+ cursor: pointer;
&:hover {
box-shadow: 0px 0px 10px 3px rgba(0, 0, 0, 0.3);
}
diff --git a/src/app/components/board/task/task.component.ts b/src/app/components/board/task/task.component.ts
index e3d816f..7cc5ad3 100644
--- a/src/app/components/board/task/task.component.ts
+++ b/src/app/components/board/task/task.component.ts
@@ -1,10 +1,16 @@
-import { Component } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { Component, Input } from '@angular/core';
+import { DragDropService } from '../../../services/drag-drop.service';
@Component({
selector: 'app-task',
standalone: true,
- imports: [],
+ imports: [CommonModule],
templateUrl: './task.component.html',
styleUrl: './task.component.scss',
})
-export class TaskComponent {}
+export class TaskComponent {
+ @Input() index: number | undefined;
+
+ constructor(public dragDropService: DragDropService) {}
+}
diff --git a/src/app/services/drag-drop.service.ts b/src/app/services/drag-drop.service.ts
new file mode 100644
index 0000000..f76bc26
--- /dev/null
+++ b/src/app/services/drag-drop.service.ts
@@ -0,0 +1,29 @@
+import { Injectable, EventEmitter } from '@angular/core';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class DragDropService {
+ itemDropped = new EventEmitter<{ index: number; status: string }>();
+
+ constructor() {}
+
+ startDragging(event: DragEvent, index: number) {
+ event.dataTransfer?.setData('text/plain', index.toString());
+ }
+
+ allowDrop(event: DragEvent) {
+ event.preventDefault();
+ }
+
+ drop(event: DragEvent, status: string) {
+ event.preventDefault();
+ const dataTransfer = event.dataTransfer;
+ if (dataTransfer) {
+ const index = +dataTransfer.getData('text/plain');
+ if (!isNaN(index)) {
+ this.itemDropped.emit({ index, status });
+ }
+ }
+ }
+}