This commit is contained in:
@@ -54,7 +54,7 @@ const Column: FC<Props> = ({
|
||||
const items = tasksData?.pages.flatMap((page) => page.data?.items ?? []) ?? [];
|
||||
|
||||
return [...items]
|
||||
.sort((a, b) => (a.order ?? a.priority ?? 0) - (b.order ?? b.priority ?? 0))
|
||||
.sort((a, b) => (a.priority ?? a.order ?? 0) - (b.priority ?? b.order ?? 0))
|
||||
.map((task, index) => mapTaskItemToTask(task as TaskItemType, column.id, index));
|
||||
}, [tasksData?.pages, column.id]);
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { TaskItemType } from "../types/TaskTypes";
|
||||
export const mapTaskItemToTask = (task: TaskItemType, taskPhaseId: string, fallbackOrder: number): Task => ({
|
||||
id: task.id,
|
||||
columnId: task.taskPhaseId ?? taskPhaseId,
|
||||
order: task.order ?? task.priority ?? fallbackOrder,
|
||||
order: task.priority ?? task.order ?? fallbackOrder,
|
||||
title: task.title,
|
||||
tag: task.tag ?? "",
|
||||
dateRange: task.dateRange ?? "",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import type { TaskItemType } from "../task/types/TaskTypes";
|
||||
|
||||
const getTaskSortOrder = (task: TaskItemType) => task.order ?? task.priority ?? 0;
|
||||
import { getTaskSortOrder } from "./getTaskSortOrder";
|
||||
|
||||
export const getPriorityDestinationTaskId = (
|
||||
items: TaskItemType[],
|
||||
@@ -9,16 +8,19 @@ export const getPriorityDestinationTaskId = (
|
||||
removeSource = true,
|
||||
): string | null => {
|
||||
const sorted = [...items].sort((a, b) => getTaskSortOrder(a) - getTaskSortOrder(b));
|
||||
const sourceIndex = sorted.findIndex((item) => item.id === sourceId);
|
||||
|
||||
if (removeSource && sourceIndex === destIndex) return null;
|
||||
|
||||
const list = removeSource ? sorted.filter((item) => item.id !== sourceId) : sorted;
|
||||
if (list.length === 0) return null;
|
||||
|
||||
if (destIndex >= list.length) {
|
||||
return list[list.length - 1].id;
|
||||
if (!removeSource) {
|
||||
if (sorted.length === 0) return null;
|
||||
if (destIndex >= sorted.length) return sorted[sorted.length - 1].id;
|
||||
return sorted[destIndex].id;
|
||||
}
|
||||
|
||||
return list[destIndex].id;
|
||||
const sourceIndex = sorted.findIndex((item) => item.id === sourceId);
|
||||
if (sourceIndex === -1 || sourceIndex === destIndex) return null;
|
||||
|
||||
// Dest is the task currently at the drop index (مقصد), not after removing source.
|
||||
const destTask = sorted[destIndex];
|
||||
if (!destTask || destTask.id === sourceId) return null;
|
||||
|
||||
return destTask.id;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
import type { TaskItemType } from "../task/types/TaskTypes";
|
||||
|
||||
export const getTaskSortOrder = (task: Pick<TaskItemType, "priority" | "order">) =>
|
||||
task.priority ?? task.order ?? 0;
|
||||
@@ -1,6 +1,5 @@
|
||||
import type { TaskItemType } from "../task/types/TaskTypes";
|
||||
|
||||
const getTaskSortOrder = (task: TaskItemType) => task.order ?? task.priority ?? 0;
|
||||
import { getTaskSortOrder } from "./getTaskSortOrder";
|
||||
|
||||
export const reorderTaskItems = (
|
||||
tasks: TaskItemType[],
|
||||
|
||||
Reference in New Issue
Block a user