Skip to content

Commit cc67b16

Browse files
committed
refactor(tasks): enhance task change tracking logic
- add setDisplayedData function to manage displayed data state - improve grid change handling with displayedDataRef for better accuracy - streamline data processing during task creation, update, and deletion operations - enhance readability and maintainability with consistent formatting and comments
1 parent 7c5872f commit cc67b16

2 files changed

Lines changed: 279 additions & 182 deletions

File tree

apps/framework-editor/app/(pages)/tasks/TasksClientPage.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import PageLayout from "@/app/components/PageLayout";
44
import { useRouter } from "next/navigation"; // Added for potential refresh
5-
import { useMemo } from "react";
5+
import { useMemo, useEffect } from "react";
66
import { toast } from "sonner"; // Import toast for user feedback
77
import {
88
relationalColumn,
@@ -126,6 +126,7 @@ export function TasksClientPage({ initialTasks }: TasksClientPageProps) {
126126
isDirty,
127127
changesSummaryString,
128128
createdRowIds,
129+
setDisplayedData,
129130
} = useTaskChangeTracking(initialGridData);
130131

131132
// Log isDirty value on every render of TasksClientPage
@@ -161,6 +162,10 @@ export function TasksClientPage({ initialTasks }: TasksClientPageProps) {
161162
});
162163
}, [sortedDataWithPotentialTimestamps]);
163164

165+
useEffect(() => {
166+
setDisplayedData(dataForDisplay);
167+
}, [dataForDisplay, setDisplayedData]);
168+
164169
// Define columns for DataSheetGrid
165170
const columns: Column<TasksPageGridData>[] = [
166171
{ ...keyColumn("name", textColumn), title: "Name", minWidth: 250 },
@@ -292,10 +297,10 @@ export function TasksClientPage({ initialTasks }: TasksClientPageProps) {
292297
<div className="mt-4">
293298
<DataSheetGrid
294299
value={dataForDisplay} // Use the fully processed data
300+
rowKey="id"
295301
height={600} // Adjust as needed
296302
onChange={handleGridChange}
297303
columns={columns}
298-
rowKey="id"
299304
rowClassName={getRowClassName}
300305
createRow={() => ({
301306
// Default structure for new rows created directly in grid

0 commit comments

Comments
 (0)