Skip to content

Commit 5dcfb35

Browse files
authored
Merge pull request #293 from Ayushmaanagarwal1211/profile
Added a Feature to unsave the blog
2 parents 5a08bda + 4eecb78 commit 5dcfb35

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

scripts/blog.js

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)