@emberai-engg/task-board 0.3.5 → 0.3.6
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.
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +15 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +15 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -361,6 +361,7 @@ declare function useTaskBoard(isDragging?: React.RefObject<boolean>): {
|
|
|
361
361
|
tasks: TasksByStatus;
|
|
362
362
|
setTasks: React$1.Dispatch<React$1.SetStateAction<TasksByStatus>>;
|
|
363
363
|
columnTotals: ColumnTotals;
|
|
364
|
+
setColumnTotals: React$1.Dispatch<React$1.SetStateAction<ColumnTotals>>;
|
|
364
365
|
columnUnreads: ColumnUnreads;
|
|
365
366
|
setColumnUnreads: React$1.Dispatch<React$1.SetStateAction<ColumnUnreads>>;
|
|
366
367
|
boardLoading: boolean;
|
|
@@ -373,7 +374,7 @@ declare function useTaskBoard(isDragging?: React.RefObject<boolean>): {
|
|
|
373
374
|
loadMoreTasks: (statusKey: string) => Promise<void>;
|
|
374
375
|
};
|
|
375
376
|
|
|
376
|
-
declare function useTaskActions(tasks: TasksByStatus, setTasks: React.Dispatch<React.SetStateAction<TasksByStatus>>, fetchTasks: () => Promise<void>, isDragging?: React.RefObject<boolean
|
|
377
|
+
declare function useTaskActions(tasks: TasksByStatus, setTasks: React.Dispatch<React.SetStateAction<TasksByStatus>>, fetchTasks: () => Promise<void>, isDragging?: React.RefObject<boolean>, setColumnTotals?: React.Dispatch<React.SetStateAction<ColumnTotals>>): {
|
|
377
378
|
createTask: (data: CreateTaskPayload) => Promise<Task>;
|
|
378
379
|
updateTask: (taskId: string, data: UpdateTaskPayload) => Promise<Task>;
|
|
379
380
|
deleteTask: (taskId: string) => Promise<void>;
|
package/dist/index.d.ts
CHANGED
|
@@ -361,6 +361,7 @@ declare function useTaskBoard(isDragging?: React.RefObject<boolean>): {
|
|
|
361
361
|
tasks: TasksByStatus;
|
|
362
362
|
setTasks: React$1.Dispatch<React$1.SetStateAction<TasksByStatus>>;
|
|
363
363
|
columnTotals: ColumnTotals;
|
|
364
|
+
setColumnTotals: React$1.Dispatch<React$1.SetStateAction<ColumnTotals>>;
|
|
364
365
|
columnUnreads: ColumnUnreads;
|
|
365
366
|
setColumnUnreads: React$1.Dispatch<React$1.SetStateAction<ColumnUnreads>>;
|
|
366
367
|
boardLoading: boolean;
|
|
@@ -373,7 +374,7 @@ declare function useTaskBoard(isDragging?: React.RefObject<boolean>): {
|
|
|
373
374
|
loadMoreTasks: (statusKey: string) => Promise<void>;
|
|
374
375
|
};
|
|
375
376
|
|
|
376
|
-
declare function useTaskActions(tasks: TasksByStatus, setTasks: React.Dispatch<React.SetStateAction<TasksByStatus>>, fetchTasks: () => Promise<void>, isDragging?: React.RefObject<boolean
|
|
377
|
+
declare function useTaskActions(tasks: TasksByStatus, setTasks: React.Dispatch<React.SetStateAction<TasksByStatus>>, fetchTasks: () => Promise<void>, isDragging?: React.RefObject<boolean>, setColumnTotals?: React.Dispatch<React.SetStateAction<ColumnTotals>>): {
|
|
377
378
|
createTask: (data: CreateTaskPayload) => Promise<Task>;
|
|
378
379
|
updateTask: (taskId: string, data: UpdateTaskPayload) => Promise<Task>;
|
|
379
380
|
deleteTask: (taskId: string) => Promise<void>;
|
package/dist/index.js
CHANGED
|
@@ -374,6 +374,7 @@ function useTaskBoard(isDragging) {
|
|
|
374
374
|
tasks,
|
|
375
375
|
setTasks,
|
|
376
376
|
columnTotals,
|
|
377
|
+
setColumnTotals,
|
|
377
378
|
columnUnreads,
|
|
378
379
|
setColumnUnreads,
|
|
379
380
|
boardLoading,
|
|
@@ -389,7 +390,7 @@ function useTaskBoard(isDragging) {
|
|
|
389
390
|
|
|
390
391
|
// src/hooks/useTaskActions.ts
|
|
391
392
|
var import_react3 = require("react");
|
|
392
|
-
function useTaskActions(tasks, setTasks, fetchTasks, isDragging) {
|
|
393
|
+
function useTaskActions(tasks, setTasks, fetchTasks, isDragging, setColumnTotals) {
|
|
393
394
|
const { service, config } = useTaskBoardContext();
|
|
394
395
|
const internalDragging = (0, import_react3.useRef)(false);
|
|
395
396
|
const draggingRef = isDragging ?? internalDragging;
|
|
@@ -443,6 +444,13 @@ function useTaskActions(tasks, setTasks, fetchTasks, isDragging) {
|
|
|
443
444
|
}
|
|
444
445
|
return newTasks;
|
|
445
446
|
});
|
|
447
|
+
if (sourceStatus !== destStatus && setColumnTotals) {
|
|
448
|
+
setColumnTotals((prev) => ({
|
|
449
|
+
...prev,
|
|
450
|
+
[sourceStatus]: Math.max(0, (prev[sourceStatus] || 0) - 1),
|
|
451
|
+
[destStatus]: (prev[destStatus] || 0) + 1
|
|
452
|
+
}));
|
|
453
|
+
}
|
|
446
454
|
try {
|
|
447
455
|
await service.updateTask(taskId, { status: destStatus, position: newPosition });
|
|
448
456
|
} catch {
|
|
@@ -450,7 +458,7 @@ function useTaskActions(tasks, setTasks, fetchTasks, isDragging) {
|
|
|
450
458
|
} finally {
|
|
451
459
|
draggingRef.current = false;
|
|
452
460
|
}
|
|
453
|
-
}, [setTasks, service, fetchTasks]);
|
|
461
|
+
}, [setTasks, setColumnTotals, service, fetchTasks]);
|
|
454
462
|
return { createTask, updateTask, deleteTask, markTaskRead, moveTask };
|
|
455
463
|
}
|
|
456
464
|
|
|
@@ -696,18 +704,20 @@ var TaskCard = (0, import_react5.memo)(function TaskCard2({ task, index, onClick
|
|
|
696
704
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
697
705
|
function LoadMoreSentinel({ loading, onLoadMore, remaining }) {
|
|
698
706
|
const sentinelRef = (0, import_react6.useRef)(null);
|
|
707
|
+
const onLoadMoreRef = (0, import_react6.useRef)(onLoadMore);
|
|
708
|
+
onLoadMoreRef.current = onLoadMore;
|
|
699
709
|
(0, import_react6.useEffect)(() => {
|
|
700
710
|
const el = sentinelRef.current;
|
|
701
711
|
if (!el) return;
|
|
702
712
|
const observer = new IntersectionObserver(
|
|
703
713
|
([entry]) => {
|
|
704
|
-
if (entry.isIntersecting && !loading)
|
|
714
|
+
if (entry.isIntersecting && !loading) onLoadMoreRef.current();
|
|
705
715
|
},
|
|
706
716
|
{ threshold: 0.1 }
|
|
707
717
|
);
|
|
708
718
|
observer.observe(el);
|
|
709
719
|
return () => observer.disconnect();
|
|
710
|
-
}, [loading
|
|
720
|
+
}, [loading]);
|
|
711
721
|
const skeletonCount = loading ? Math.min(remaining, 10) : 0;
|
|
712
722
|
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { ref: sentinelRef, className: "space-y-2 pt-2", children: Array.from({ length: skeletonCount }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SkeletonCard, {}, i)) });
|
|
713
723
|
}
|
|
@@ -2102,7 +2112,7 @@ function TaskBoard({
|
|
|
2102
2112
|
const { columns, features, service } = useTaskBoardContext();
|
|
2103
2113
|
const isDraggingRef = (0, import_react13.useRef)(false);
|
|
2104
2114
|
const board = useTaskBoard(isDraggingRef);
|
|
2105
|
-
const actions = useTaskActions(board.tasks, board.setTasks, board.fetchTasks, isDraggingRef);
|
|
2115
|
+
const actions = useTaskActions(board.tasks, board.setTasks, board.fetchTasks, isDraggingRef, board.setColumnTotals);
|
|
2106
2116
|
const { copiedTaskId, copyShareLink } = useShareLink();
|
|
2107
2117
|
const [selectedTask, setSelectedTask] = (0, import_react13.useState)(null);
|
|
2108
2118
|
const [createForStatus, setCreateForStatus] = (0, import_react13.useState)("");
|