moving column
deploy to danak / build_and_deploy (push) Has been cancelled

This commit is contained in:
hamid zarghami
2026-06-20 10:22:06 +03:30
parent f836abd8f4
commit f3153c6793
3 changed files with 140 additions and 7 deletions
+23 -1
View File
@@ -5,12 +5,16 @@ import HeaderWorkspace from "./components/HeaderWorkspace";
import TaskDetailModal from "./components/task-detail/TaskDetailModal";
import tasksData from "./data/tasks.json";
import type { Task, WorkspaceData } from "./types";
import { reorderColumns } from "./utils/reorderColumns";
import { reorderTasks } from "./utils/reorderTasks";
const Workspace: FC = () => {
const { columns } = tasksData as WorkspaceData;
const [columns, setColumns] = useState(
(tasksData as WorkspaceData).columns,
);
const [tasks, setTasks] = useState<Task[]>(tasksData.tasks as Task[]);
const [draggedTaskId, setDraggedTaskId] = useState<string | null>(null);
const [draggedColumnId, setDraggedColumnId] = useState<string | null>(null);
const [selectedTask, setSelectedTask] = useState<Task | null>(null);
const tasksByColumn = useMemo(() => {
@@ -36,6 +40,20 @@ const Workspace: FC = () => {
setDraggedTaskId(null);
};
const handleColumnDragStart = (columnId: string) => {
setDraggedColumnId(columnId);
};
const handleColumnDragEnd = () => {
setDraggedColumnId(null);
};
const handleColumnDrop = (overColumnId: string) => {
if (!draggedColumnId || draggedColumnId === overColumnId) return;
setColumns((prev) => reorderColumns(prev, draggedColumnId, overColumnId));
setDraggedColumnId(null);
};
const selectedTaskColumn = selectedTask
? columns.find((column) => column.id === selectedTask.columnId)
: null;
@@ -51,9 +69,13 @@ const Workspace: FC = () => {
column={column}
tasks={tasksByColumn[column.id] ?? []}
draggedTaskId={draggedTaskId}
draggedColumnId={draggedColumnId}
onDragStart={handleDragStart}
onDragEnd={handleDragEnd}
onDrop={handleDrop}
onColumnDragStart={handleColumnDragStart}
onColumnDragEnd={handleColumnDragEnd}
onColumnDrop={handleColumnDrop}
onTaskClick={setSelectedTask}
/>
))}