@@ -24,7 +24,7 @@ document.addEventListener("DOMContentLoaded", () => {
2424 <div class="excerpt">${ blog . excerpt } </div>
2525 <div class="blog-save">
2626 <a class="read-more" href="${ blog . link } ">Read More</a>
27- <div class="save-btn">${ isBlogSaved ( blog ) ? 'Saved ' : '<i class="fa fa-save"></i> Save Blog' } </div>
27+ <div class="save-btn">${ isBlogSaved ( blog ) ? '<i class="fa fa-trash"></i> Unsave Blog ' : '<i class="fa fa-save"></i> Save Blog' } </div>
2828 </div>
2929 </div>
3030 ` ;
@@ -38,11 +38,15 @@ document.addEventListener("DOMContentLoaded", () => {
3838
3939 saveBtn . addEventListener ( 'click' , ( ) => {
4040 if ( isBlogSaved ( blog ) ) {
41- alert ( 'Blog already saved.' ) ;
41+ unsaveBlog ( blog ) ;
42+ saveBtn . innerHTML = '<i class="fa fa-save"></i> Save Blog' ;
43+ saveBtn . classList . remove ( 'saved' ) ;
44+ showToast ( "Blog Unsaved" , "like" ) ;
4245 } else {
4346 saveBlog ( blog ) ;
44- saveBtn . textContent = 'Saved ' ;
47+ saveBtn . innerHTML = '<i class="fa fa-trash"></i> Unsave Blog ' ;
4548 saveBtn . classList . add ( 'saved' ) ;
49+ showToast ( "Blog Saved For Later" , "like" ) ;
4650 }
4751 } ) ;
4852
@@ -67,10 +71,15 @@ document.addEventListener("DOMContentLoaded", () => {
6771 if ( ! savedBlogs . find ( b => b . title === blog . title ) ) {
6872 savedBlogs . push ( blog ) ;
6973 localStorage . setItem ( 'savedBlogs' , JSON . stringify ( savedBlogs ) ) ;
70- showToast ( "Blog Saved For Later" , "like" )
7174 }
7275 }
7376
77+ function unsaveBlog ( blog ) {
78+ let savedBlogs = JSON . parse ( localStorage . getItem ( 'savedBlogs' ) ) || [ ] ;
79+ savedBlogs = savedBlogs . filter ( b => b . title !== blog . title ) ;
80+ localStorage . setItem ( 'savedBlogs' , JSON . stringify ( savedBlogs ) ) ;
81+ }
82+
7483 function isBlogSaved ( blog ) {
7584 const savedBlogs = JSON . parse ( localStorage . getItem ( 'savedBlogs' ) ) || [ ] ;
7685 return savedBlogs . some ( b => b . title === blog . title ) ;
@@ -88,21 +97,22 @@ function showToast(message, type) {
8897
8998 // Add close button
9099 const closeBtn = document . createElement ( 'span' ) ;
91- let line = document . createElement ( 'div' )
100+ let line = document . createElement ( 'div' ) ;
92101 closeBtn . className = 'close-btn' ;
93102 closeBtn . textContent = '×' ;
94103 closeBtn . onclick = ( ) => {
95- toast . remove ( ) ;
104+ toast . remove ( ) ;
96105 } ;
97- line . className = "line"
106+ line . className = "line" ;
98107 toast . appendChild ( closeBtn ) ;
99- toastContainer . appendChild ( line )
108+ toastContainer . appendChild ( line ) ;
109+
100110 // Append toast to container
101111 toastContainer . appendChild ( toast ) ;
102112
103113 // Remove toast after a delay
104114 setTimeout ( ( ) => {
105- toast . classList . remove ( 'show' ) ;
106- toastContainer . removeChild ( line )
115+ toast . classList . remove ( 'show' ) ;
116+ toastContainer . removeChild ( line ) ;
107117 } , 3000 ) ;
108- }
118+ }
0 commit comments