Skip to content

Commit 306129b

Browse files
committed
fix(ui): selected project issues
1 parent a9e34e5 commit 306129b

1 file changed

Lines changed: 17 additions & 7 deletions

File tree

src/scripts/Modules/UI.js

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import TodoItem from './TodoItem';
44
export default class UI {
55
constructor() {
66
this.app = new TodoApp(); // Store the TodoApp instance in the UI class
7+
this.selectedProject = 'Default';
78
this.newProjectPopup = document.querySelector(".add-project-popup");
89
this.newProjectPopupAddBtn = document.querySelector(".button-add-project-popup");
910
this.newProjectNameInput = document.querySelector(".input-add-project-popup");
@@ -24,15 +25,17 @@ export default class UI {
2425

2526
let projectNames = this.app.listProjects();
2627
projectNames.forEach((projectName) => {
27-
UI.createProjectTab(projectName, ProjectsDiv);
28+
UI.createProjectTab(projectName, ProjectsDiv, projectName === this.selectedProject);
2829
});
2930
this.initProjectButtons();
3031
}
3132

32-
static createProjectTab(name, ProjectsDiv) {
33-
console.log(name);
33+
static createProjectTab(name, ProjectsDiv, isSelected) {
3434
const userProject = document.createElement("div");
3535
userProject.classList.add("project-item");
36+
if (isSelected) {
37+
userProject.classList.add("selected-project");
38+
}
3639
userProject.innerHTML = `
3740
<span class="left-project-panel">
3841
<button class="button-project" data-project-name="${name}">
@@ -73,7 +76,9 @@ export default class UI {
7376
const selectedprojectItem = document.querySelector('.selected-project');
7477
if(newProjectName && !exisitingProjects.includes(newProjectName)){
7578
this.app.addProject(newProjectName);
79+
this.selectedProject = newProjectName; // Set the new project as selected and opens it
7680
this.loadProjects();
81+
this.OpenProject(newProjectName);
7782
}
7883
else{
7984
alert("Project Name cannot be duplicate or null!")
@@ -83,13 +88,13 @@ export default class UI {
8388

8489
onProjectButtonClick(event){
8590
const project = event.currentTarget; // The clicked button
86-
const allprojectItems = document.querySelectorAll('.project-item');
87-
allprojectItems.forEach(item=>item.classList.remove("selected-project"));
88-
const selectedprojectItem = project.closest('.project-item');
89-
selectedprojectItem.classList.add("selected-project");
9091
let projectName = project.getAttribute("data-project-name");
9192
console.log(projectName);
9293
this.OpenProject(projectName);
94+
95+
// Update the selected project
96+
this.selectedProject = projectName;
97+
this.loadProjects();
9398
}
9499

95100
OpenProject(projectName) {
@@ -142,7 +147,12 @@ export default class UI {
142147
if (confirm(`Are you sure you want to delete the project "${projectName}"?`)) {
143148
this.app.removeProject(projectName);
144149
console.log(`${projectName} deleted`);
150+
// If the deleted project was the selected one, select the default project
151+
if (this.selectedProject === projectName) {
152+
this.selectedProject = 'Default'; // Or the first available project
153+
}
145154
this.loadProjects(); // Refresh the project list
155+
this.OpenProject(this.selectedProject);
146156
}
147157
} catch (error) {
148158
console.error('Error deleting project:', error.message);

0 commit comments

Comments
 (0)