File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -218,6 +218,16 @@ function createMessage(message) {
218218 } ) ;
219219}
220220
221+ function updateMessage ( message , id ) {
222+ return fetch ( `/messages/${ id } ` , {
223+ method : 'PATCH' ,
224+ headers : {
225+ 'Content-Type' : 'application/json'
226+ } ,
227+ body : JSON . stringify ( message )
228+ } ) ;
229+ }
230+
221231function renderMessages ( messages = [ ] ) {
222232 return messages
223233 . map (
@@ -227,6 +237,7 @@ function renderMessages(messages = []) {
227237 <strong>${ message . id } </strong>
228238 ${ message . username } -
229239 ${ message . body }
240+ <i data-id="${ message . id } " data-flagged="${ message . flagged } " class="flag-button fa fa-lg fa-flag${ message . flagged ? "" : "-o" } "></i>
230241 </p>
231242 <button data-id="${ message . id } " class="delete-button">
232243 Delete
@@ -290,6 +301,16 @@ document.addEventListener('DOMContentLoaded', () => {
290301 refreshMessages ( messagesUl ) ;
291302 } ) ;
292303 }
304+
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+ } ) ;
312+ }
313+
293314 } ) ;
294315} ) ;
295316
Original file line number Diff line number Diff line change 33 <head >
44 <title >Chatr Express</title >
55 <link rel =" stylesheet" href =" /stylesheets/main.css" />
6+ <link rel =" stylesheet" href =" https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" >
67 <script src =" https://code.jquery.com/jquery-3.6.0.min.js" ></script >
78 <script type =" text/javascript" src =" /scripts/main.js" ></script >
89 </head >
You can’t perform that action at this time.
0 commit comments