From 5cd2c955e7490dd3411fa5cf1e7d276a7e7f3bee Mon Sep 17 00:00:00 2001 From: codedstrings Date: Sat, 23 Aug 2025 13:22:03 +0530 Subject: [PATCH] fix: resolve race condition causing data loss on app init - Move default project creation after API data load - Add initialize() method to TodoApp for proper startup sequence - Prevents updateDataToAPI() from overwriting loaded data --- src/scripts/Modules/TodoApp.js | 5 +++++ src/scripts/Modules/UI.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/scripts/Modules/TodoApp.js b/src/scripts/Modules/TodoApp.js index 57a3ef6..bad7355 100644 --- a/src/scripts/Modules/TodoApp.js +++ b/src/scripts/Modules/TodoApp.js @@ -4,6 +4,11 @@ import TodoItem from './TodoItem'; class TodoApp { constructor() { this.projects = []; + } + + async initialize() { + await this.loadFromAPI(); + // Only create default project if no projects exist after loading if (this.projects.length === 0) { this.addProject("Default"); } diff --git a/src/scripts/Modules/UI.js b/src/scripts/Modules/UI.js index bcb039b..38f03e2 100644 --- a/src/scripts/Modules/UI.js +++ b/src/scripts/Modules/UI.js @@ -20,7 +20,7 @@ export default class UI { } async loadHomepage() { - await this.app.loadFromAPI(); // Fetch projects from the server first + await this.app.initialize(); // Fetch projects from the server first this.loadProjects(); this.OpenProject(this.selectedProject); }