Skip to content

Commit e7bd2d3

Browse files
committed
Alternative flagging solution with buttons
1 parent bbf1c03 commit e7bd2d3

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

public/scripts/main.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ function renderMessages(messages = []) {
237237
<strong>${message.id}</strong>
238238
${message.username} -
239239
${message.body}
240-
<i data-id="${message.id}" data-flagged="${message.flagged}" class="flag-button fa fa-lg fa-flag${message.flagged ? "" : "-o"}"></i>
240+
<button data-id="${message.id}" data-flagged="${message.flagged}" class="flag-button" style="background:${message.flagged ? 'lightblue' : 'yellow'}">Flag</button>
241241
</p>
242242
<button data-id="${message.id}" class="delete-button">
243243
Delete
@@ -293,6 +293,7 @@ document.addEventListener('DOMContentLoaded', () => {
293293
// This is called event delegation.
294294
messagesUl.addEventListener('click', event => {
295295
const { target } = event;
296+
const flagButton = target.closest('.flag-button')
296297

297298
if (target.matches('.delete-button')) {
298299
event.preventDefault();
@@ -302,13 +303,22 @@ document.addEventListener('DOMContentLoaded', () => {
302303
});
303304
}
304305

305-
if (target.matches('.flag-button')) {
306-
event.preventDefault();
307-
const messageId = target.getAttribute('data-id');
308-
const flagged = target.getAttribute('data-flagged') === "false";
309-
updateMessage({ flagged }, messageId).then(() => {
310-
refreshMessages(messagesUl);
311-
});
306+
307+
if (flagButton) {
308+
const messageId = target.getAttribute('data-id')
309+
let messageFlagged = target.getAttribute('data-flagged');
310+
311+
if (messageFlagged === 'false'){
312+
event.preventDefault();
313+
updateMessage({ "flagged": true }, messageId).then(() => {
314+
refreshMessages(messagesUl);
315+
});
316+
} else {
317+
event.preventDefault();
318+
updateMessage({ "flagged": false }, messageId).then(() => {
319+
refreshMessages(messagesUl);
320+
});
321+
}
312322
}
313323

314324
});

public/stylesheets/main.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,11 @@ input[type='submit'] {
6666
background-color: #e67e22;
6767
color: #fff;
6868
}
69+
70+
.flag-button blue {
71+
background: blue;
72+
}
73+
74+
.flag-button green {
75+
background: green;
76+
}

0 commit comments

Comments
 (0)