Skip to content

Commit 6dadaa4

Browse files
authored
Merge pull request #11 from mordachai/dev
Bump version to 1.4.1 and add message ID validation in RecentMessageD…
2 parents 803b9b8 + 32c04d3 commit 6dadaa4

3 files changed

Lines changed: 46 additions & 7 deletions

File tree

module.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"id": "sleek-chat",
33
"title": "Sleek Chat",
44
"description": "A minimalist dice rolling toolbar that integrates seamlessly with the Foundry VTT chat, focusing on a clean and uncluttered interface.",
5-
"version": "1.4.0",
5+
"version": "1.4.1",
66
"compatibility": {
77
"minimum": "12",
88
"verified": "12"

scripts/recent-message-display.js

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
import { debugLog } from './sleek-chat-debug.js';
22
export class RecentMessageDisplay {
3+
4+
5+
static validateMessageIds() {
6+
// Filter out any message IDs that no longer exist in the game.messages collection
7+
this.messageIds = this.messageIds.filter(id => game.messages.has(id));
8+
9+
// If we filtered out messages, adjust the current index to be valid
10+
if (this.currentMessageIndex >= this.messageIds.length) {
11+
this.currentMessageIndex = this.messageIds.length - 1;
12+
}
13+
14+
// Update button states based on new array
15+
this.updateButtonStates();
16+
17+
// If we have a valid message, display it
18+
if (this.messageIds.length > 0 && this.currentMessageIndex >= 0) {
19+
this.updateRecentMessage(this.messageIds[this.currentMessageIndex]);
20+
} else if (this.messageDisplay) {
21+
// Clear the display if no valid messages remain
22+
this.messageDisplay.innerHTML = '';
23+
debugLog("RecentMessageDisplay: No valid messages to display after validation.");
24+
}
25+
}
26+
27+
// Add this to the init method, after populating messageIds
328
static init() {
429
debugLog("RecentMessageDisplay: Initializing...");
530

@@ -8,22 +33,26 @@ export class RecentMessageDisplay {
833
this.messageDisplay = this.recentMessageContainer.querySelector('.message-display');
934
this.prevButton = document.querySelector('.nav-buttons-container .prev-button');
1035
this.nextButton = document.querySelector('.nav-buttons-container .next-button');
11-
36+
1237
this.messageIds = [];
1338
this.currentMessageIndex = -1;
14-
39+
1540
this.populateMessageIds(); // Fill the message IDs
41+
42+
// Add this line to validate messages on initialization
43+
this.validateMessageIds();
44+
1645
this.setupNavigationButtons();
17-
this.setupDeleteFunctionality(); // Initialize delete functionality
18-
46+
this.setupDeleteFunctionality();
47+
1948
// Display the last message at startup
2049
if (this.messageIds.length > 0) {
2150
debugLog("RecentMessageDisplay: Displaying the last message on initialization.");
2251
this.updateRecentMessage(this.messageIds[this.currentMessageIndex]);
2352
}
24-
53+
2554
this.hookChatLog();
26-
RecentMessageDisplay.applyFadeOutEffect(this.recentMessageContainer); // Apply the fade-out effect at startup
55+
RecentMessageDisplay.applyFadeOutEffect(this.recentMessageContainer);
2756
}
2857

2958
static populateMessageIds() {
@@ -117,6 +146,16 @@ export class RecentMessageDisplay {
117146

118147
static navigateMessages(direction) {
119148
debugLog("RecentMessageDisplay: Navigating messages with direction:", direction);
149+
150+
// Validate message IDs before navigation
151+
this.validateMessageIds();
152+
153+
// If no valid messages, don't try to navigate
154+
if (this.messageIds.length === 0) {
155+
debugLog("RecentMessageDisplay: No valid messages to navigate.");
156+
return;
157+
}
158+
120159
this.currentMessageIndex += direction;
121160
if (this.currentMessageIndex < 0) {
122161
this.currentMessageIndex = 0;

sleek-chat.zip

248 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)