@@ -55,6 +55,11 @@ export default class UI {
5555
5656 const newProjectBtn = document . querySelector ( ".button-add-project" ) ;
5757 newProjectBtn . addEventListener ( 'click' , ( event ) => this . openAddProjectPopup ( event ) ) ;
58+
59+ const deleteBtns = document . querySelectorAll ( '.right-project-panel' ) ;
60+ deleteBtns . forEach ( ( btn ) => {
61+ btn . addEventListener ( 'click' , ( event ) => this . onProjectDelete ( event ) ) ; //arrow function binds this context to button
62+ } ) ;
5863 }
5964
6065 openAddProjectPopup ( event ) {
@@ -123,6 +128,27 @@ export default class UI {
123128 createNewTodoBtn . addEventListener ( 'click' , ( ) => this . onCreateNewTodo ( projectName ) ) ;
124129 }
125130
131+ onProjectDelete ( event ) {
132+ try {
133+ const projectItem = event . currentTarget . closest ( '.project-item' ) ;
134+ const projectButton = projectItem . querySelector ( '.button-project' ) ;
135+ const projectName = projectButton . getAttribute ( 'data-project-name' ) ;
136+
137+ if ( ! projectName ) {
138+ throw new Error ( 'Could not find project name' ) ;
139+ }
140+
141+ // Confirm before deleting
142+ if ( confirm ( `Are you sure you want to delete the project "${ projectName } "?` ) ) {
143+ this . app . removeProject ( projectName ) ;
144+ console . log ( `${ projectName } deleted` ) ;
145+ this . loadProjects ( ) ; // Refresh the project list
146+ }
147+ } catch ( error ) {
148+ console . error ( 'Error deleting project:' , error . message ) ;
149+ }
150+ }
151+
126152 handleTodoCompletion ( event , todotitle , projectName ) {
127153 this . app . updateTodoCompletion ( todotitle , projectName ) ;
128154 }
0 commit comments