Fix subtasks dissapearing issue (#811)

This commit is contained in:
Chris 2026-02-01 14:16:04 +02:00 committed by GitHub
parent 74316dc352
commit f562101ca5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -61,6 +61,7 @@ const TaskDetails: React.FC = () => {
const [pendingSubtasks, setPendingSubtasks] = useState<Task[]>([]);
const [actionsMenuOpen, setActionsMenuOpen] = useState(false);
const actionsMenuRef = useRef<HTMLDivElement>(null);
const lastKnownSubtaskCount = useRef<number>(0);
useEffect(() => {
const handleClickOutside = (e: MouseEvent) => {
const target = e.target as Node;
@ -479,21 +480,24 @@ const TaskDetails: React.FC = () => {
useEffect(() => {
setHasLoadedSubtasks(false);
lastKnownSubtaskCount.current = 0;
}, [uid]);
useEffect(() => {
const loadSubtasks = async () => {
const subtasksAlreadyLoaded = task?.subtasks && task.subtasks.length > 0;
if (activePill !== 'subtasks' || !task?.uid) {
return;
}
if (
activePill === 'subtasks' &&
task?.uid &&
!hasLoadedSubtasks &&
!subtasksAlreadyLoaded
) {
const currentCount = task?.subtasks?.length || 0;
const subtasksDisappeared = lastKnownSubtaskCount.current > 0 && currentCount === 0;
const needsInitialLoad = !hasLoadedSubtasks && currentCount === 0;
if (needsInitialLoad || subtasksDisappeared) {
try {
const fetchedSubtasks = await fetchSubtasks(task.uid);
setHasLoadedSubtasks(true);
lastKnownSubtaskCount.current = fetchedSubtasks.length;
const existingIndex = tasksStore.tasks.findIndex(
(t: Task) => t.uid === task.uid
@ -510,6 +514,8 @@ const TaskDetails: React.FC = () => {
console.error('Error loading subtasks:', error);
setHasLoadedSubtasks(true);
}
} else if (currentCount > 0) {
lastKnownSubtaskCount.current = currentCount;
}
};
@ -624,6 +630,7 @@ const TaskDetails: React.FC = () => {
if (uid) {
const updatedTask = await fetchTaskByUid(uid);
lastKnownSubtaskCount.current = updatedTask.subtasks?.length || 0;
const existingIndex = tasksStore.tasks.findIndex(
(t: Task) => t.uid === uid
);