@kkkarsss/ui 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -8,8 +8,11 @@ export * from './calendar-item-wrapper';
|
|
|
8
8
|
export * from './calendar-item';
|
|
9
9
|
const DEFAULT_HOURS = Array.from({ length: 24 }, (_, i) => i);
|
|
10
10
|
export const CalendarLike = ({ tasks, hours = DEFAULT_HOURS, renderTask, onTaskDrop, onTaskResize, onCreateTask, }) => {
|
|
11
|
+
console.log('CalendarLike: tasks received:', tasks);
|
|
11
12
|
const tasksWithPosition = useMemo(() => calculateTaskPositions(tasks), [tasks]);
|
|
13
|
+
console.log('CalendarLike: tasksWithPosition:', tasksWithPosition);
|
|
12
14
|
const tasksByHour = useMemo(() => groupTasksByHour(tasksWithPosition), [tasksWithPosition]);
|
|
15
|
+
console.log('CalendarLike: tasksByHour:', tasksByHour);
|
|
13
16
|
const handleDragStart = (e, taskId) => {
|
|
14
17
|
e.dataTransfer.setData('taskId', taskId);
|
|
15
18
|
};
|
|
@@ -21,6 +24,7 @@ export const CalendarLike = ({ tasks, hours = DEFAULT_HOURS, renderTask, onTaskD
|
|
|
21
24
|
};
|
|
22
25
|
return (_jsx("div", { className: "relative border-l border-secondary/20 ml-12 select-none", children: hours.map((hour) => {
|
|
23
26
|
const tasksForHour = tasksByHour[hour];
|
|
27
|
+
console.log(`CalendarLike: hour ${hour} has ${tasksForHour?.length || 0} tasks`);
|
|
24
28
|
return (_jsx(CalendarHourSlot, { hour: hour, onDrop: handleDrop, onCreateTask: onCreateTask, children: tasksForHour?.map((task) => (_jsx(CalendarItemWrapper, { task: task, position: task.position, onDragStart: handleDragStart, onResize: onTaskResize, renderTask: renderTask }, task.id))) }, hour));
|
|
25
29
|
}) }));
|
|
26
30
|
};
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
export const calculateTaskPositions = (tasks) => {
|
|
2
|
+
console.log('calculateTaskPositions: input:', tasks);
|
|
2
3
|
const tasksToRender = [...tasks]
|
|
3
4
|
.map((t) => ({
|
|
4
5
|
...t,
|
|
5
6
|
dueDate: t.dueDate instanceof Date ? t.dueDate : new Date(t.dueDate),
|
|
6
7
|
}))
|
|
7
|
-
.filter((t) =>
|
|
8
|
+
.filter((t) => {
|
|
9
|
+
const isValid = t.dueDate && !isNaN(t.dueDate.getTime());
|
|
10
|
+
if (!isValid)
|
|
11
|
+
console.warn('calculateTaskPositions: invalid date for task:', t.id, t.dueDate);
|
|
12
|
+
return isValid;
|
|
13
|
+
})
|
|
8
14
|
.sort((a, b) => a.dueDate.getTime() - b.dueDate.getTime());
|
|
15
|
+
console.log('calculateTaskPositions: tasksToRender:', tasksToRender);
|
|
9
16
|
const columns = [];
|
|
10
17
|
tasksToRender.forEach((task) => {
|
|
11
18
|
const startTime = task.dueDate.getTime();
|
|
@@ -56,6 +63,7 @@ export const calculateTaskPositions = (tasks) => {
|
|
|
56
63
|
const left = clusterColumnsCount > 1 ? `${(colIndex * 100) / clusterColumnsCount}%` : '0%';
|
|
57
64
|
const top = `${(task.dueDate.getMinutes() / 60) * 80}px`;
|
|
58
65
|
const height = `${(task.estimatedTime / 60) * 80}px`;
|
|
66
|
+
console.log(`calculateTaskPositions: task ${task.id} position:`, { width, left, top, height });
|
|
59
67
|
result.push({
|
|
60
68
|
...task,
|
|
61
69
|
position: { width, left, top, height },
|
|
@@ -66,12 +74,14 @@ export const calculateTaskPositions = (tasks) => {
|
|
|
66
74
|
return result;
|
|
67
75
|
};
|
|
68
76
|
export const groupTasksByHour = (tasksWithPosition) => {
|
|
77
|
+
console.log('groupTasksByHour: input count:', tasksWithPosition.length);
|
|
69
78
|
const map = {};
|
|
70
79
|
tasksWithPosition.forEach((task) => {
|
|
71
80
|
const hour = task.dueDate.getHours();
|
|
72
81
|
if (!map[hour])
|
|
73
82
|
map[hour] = [];
|
|
74
83
|
map[hour].push(task);
|
|
84
|
+
console.log(`groupTasksByHour: task ${task.id} (${task.title}) assigned to hour ${hour}`);
|
|
75
85
|
});
|
|
76
86
|
return map;
|
|
77
87
|
};
|