Skip to content

Commit 002d8c9

Browse files
committed
feat: fix the track changes functions
1 parent 406e86e commit 002d8c9

1 file changed

Lines changed: 24 additions & 21 deletions

File tree

  • src/components/User/Dashboard/DatasetOrganizer

src/components/User/Dashboard/DatasetOrganizer/index.tsx

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,26 @@ const DatasetOrganizer: React.FC = () => {
3838
const [showLLMPanel, setShowLLMPanel] = useState(false);
3939
const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);
4040
const [error, setError] = useState<string | null>(null);
41-
const isRestoringState = useRef(false);
41+
// Helper to mark as changed
42+
const markAsChanged = () => {
43+
setHasUnsavedChanges(true);
44+
};
45+
46+
// Wrapper functions that mark as changed
47+
const updateFiles = (updater: React.SetStateAction<FileItem[]>) => {
48+
setFiles(updater);
49+
markAsChanged();
50+
};
51+
52+
const updateSelectedIds = (updater: React.SetStateAction<Set<string>>) => {
53+
setSelectedIds(updater);
54+
markAsChanged();
55+
};
56+
57+
const updateExpandedIds = (updater: React.SetStateAction<Set<string>>) => {
58+
setExpandedIds(updater);
59+
markAsChanged();
60+
};
4261

4362
// Load project on mount
4463
useEffect(() => {
@@ -50,28 +69,14 @@ const DatasetOrganizer: React.FC = () => {
5069
// Restore state from project when loaded
5170
useEffect(() => {
5271
if (currentProject && currentProject.extractor_state) {
53-
isRestoringState.current = true; // add
5472
const state = currentProject.extractor_state;
5573
setFiles(state.files || []);
5674
setSelectedIds(new Set(state.selectedIds || []));
5775
setExpandedIds(new Set(state.expandedIds || []));
5876
setHasUnsavedChanges(false);
59-
60-
setTimeout(() => {
61-
isRestoringState.current = false;
62-
}, 0);
6377
}
6478
}, [currentProject]);
6579

66-
// Track changes
67-
useEffect(() => {
68-
if (currentProject && !isRestoringState.current) {
69-
console.log("before set has UnsavedChanges", hasUnsavedChanges);
70-
setHasUnsavedChanges(true);
71-
console.log("after it turns true", hasUnsavedChanges);
72-
}
73-
}, [files, selectedIds, expandedIds, currentProject]);
74-
7580
const handleSave = async () => {
7681
if (!currentProject) return;
7782

@@ -248,11 +253,9 @@ const DatasetOrganizer: React.FC = () => {
248253
sx={{
249254
backgroundColor: Colors.darkGreen,
250255
color: Colors.lightGray,
251-
// transition: "transform .2s ease",
252256
"&:hover": {
253257
backgroundColor: Colors.darkGreen,
254258
border: "none",
255-
// transform: "scale(1.1)",
256259
},
257260
}}
258261
>
@@ -298,7 +301,7 @@ const DatasetOrganizer: React.FC = () => {
298301
<Box sx={{ flex: 1, overflow: "auto", p: 3 }}>
299302
<DropZone
300303
files={files}
301-
setFiles={setFiles}
304+
setFiles={updateFiles} // Pass wrapper
302305
selectedIds={selectedIds}
303306
setSelectedIds={setSelectedIds}
304307
expandedIds={expandedIds}
@@ -309,11 +312,11 @@ const DatasetOrganizer: React.FC = () => {
309312
{/* Right: File Tree */}
310313
<FileTree
311314
files={files}
312-
setFiles={setFiles}
313315
selectedIds={selectedIds}
314-
setSelectedIds={setSelectedIds}
315316
expandedIds={expandedIds}
316-
setExpandedIds={setExpandedIds}
317+
setFiles={updateFiles} // Pass wrapper instead
318+
setSelectedIds={updateSelectedIds} // Pass wrapper
319+
setExpandedIds={updateExpandedIds} // Pass wrapper
317320
/>
318321
</Box>
319322

0 commit comments

Comments
 (0)