Skip to content

Commit c16b6fc

Browse files
committed
only make the read_at post request if message is unread
1 parent 28a07cc commit c16b6fc

File tree

3 files changed

+28
-21
lines changed

3 files changed

+28
-21
lines changed

app/javascript/controllers/better_together/message_visibility_controller.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export default class extends Controller {
2222
const messageId = this.element.dataset.messageId;
2323
console.log(`Message ${messageId} is on screen.`);
2424

25-
this.markAsRead(messageId);
25+
if (this.element.dataset.readStatus === 'unread') { this.markAsRead(messageId); }
2626

2727
observer.unobserve(this.element);
2828
}
@@ -40,13 +40,13 @@ export default class extends Controller {
4040
record_id: messageId
4141
})
4242
})
43-
.then(response => {
44-
if (response.ok) {
45-
console.log(`Notification for message ${messageId} marked as read.`)
46-
} else {
47-
console.error(`Failed to mark notification for message ${messageId} as read.`)
48-
}
49-
})
43+
.then(response => {
44+
if (response.ok) {
45+
console.log(`Notification for message ${messageId} marked as read.`)
46+
} else {
47+
console.error(`Failed to mark notification for message ${messageId} as read.`)
48+
}
49+
})
5050
}
5151

5252
getCSRFToken() {

app/views/better_together/conversations/_conversation_content.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<%= turbo_stream_from conversation %>
1818

1919
<div id="conversation_messages" class="card-body p-4" data-controller="better_together--conversation-messages" data-better_together--conversation-messages-current-person-id-value="<%= current_person.id %>">
20-
<%= render(partial: 'better_together/messages/message', collection: messages, as: :message) || render(partial: 'better_together/conversations/empty', locals: { conversation: }) %>
20+
<%= render(partial: 'better_together/messages/message', collection: messages, as: :message, locals: {read_status: 'read'}) || render(partial: 'better_together/conversations/empty', locals: { conversation: }) %>
2121
</div>
2222

2323
<div class="card-footer">
Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
11
<!-- app/views/messages/_message.html.erb -->
22

3-
<%# locals: (message:, me: false) %>
3+
<%# locals: (message:, me: false, read_status: 'unread') %>
44

5-
<div id="<%= dom_id(message) %>" class="<%= dom_class(message, :conversation) %> d-flex mb-3 <% if me %>me<% end %>" data-sender-id="<%= message.sender_id %>">
6-
<div class="message-container">
7-
<div class="message-header d-flex">
8-
<strong class="me-2"><%= message.sender.name %></strong>
9-
<small class="text-muted"><%= l(message.created_at, format: :short) %></small>
10-
</div>
11-
<div class="message-bubble p-3 rounded" data-controller="better-together--message_visibility" data-message-id="<%= message.id %>">
12-
<%= message.content %>
13-
</div>
14-
</div>
15-
</div>
5+
6+
<div id="<%= dom_id(message) %>" class="<%= dom_class(message, :conversation) %> d-flex mb-3 <% if me %>me<% end %>"
7+
data-sender-id="<%= message.sender_id %>">
8+
<div class="message-container">
9+
<div class="message-header d-flex">
10+
<strong class="me-2">
11+
<%= message.sender.name %>
12+
</strong>
13+
<small class="text-muted">
14+
<%= l(message.created_at, format: :short) %>
15+
</small>
16+
</div>
17+
<div class="message-bubble p-3 rounded" data-controller="better-together--message_visibility"
18+
data-message-id="<%= message.id %>" data-read-status="<%= read_status %>">
19+
<%= message.content %>
20+
</div>
21+
</div>
22+
</div>

0 commit comments

Comments
 (0)