From bf705afc216bb7e0193b1771c0f5527c969fad37 Mon Sep 17 00:00:00 2001
From: ItzCrazyKns <95534749+ItzCrazyKns@users.noreply.github.com>
Date: Sat, 5 Apr 2025 22:32:56 +0530
Subject: [PATCH] feat(message-box): change styles, lint & beautify
---
src/components/MessageBox.tsx | 51 ++++++++++++++---------------------
1 file changed, 20 insertions(+), 31 deletions(-)
diff --git a/src/components/MessageBox.tsx b/src/components/MessageBox.tsx
index 2b2144a..4617103 100644
--- a/src/components/MessageBox.tsx
+++ b/src/components/MessageBox.tsx
@@ -68,45 +68,34 @@ const MessageBox = ({
) {
setParsedMessage(
processedMessage.replace(
- citationRegex, // Use the updated regex
- (match, capturedContent) => { // match is the full "[1,2,3]", capturedContent is "1,2,3"
- // Split the captured content by comma, trim whitespace, and filter out non-digits
+ citationRegex,
+ (_, capturedContent: string) => {
const numbers = capturedContent
.split(',')
- .map(numStr => numStr.trim())
- .filter(numStr => /^\d+$/.test(numStr)); // Ensure it's only digits
+ .map((numStr) => numStr.trim())
- // If no valid numbers found after split/filter (e.g., "[]" or "[abc]"), return original match
- if (numbers.length === 0) {
- return match;
- }
+ const linksHtml = numbers
+ .map((numStr) => {
+ const number = parseInt(numStr);
- // Generate an HTML link for each valid number found
- const linksHtml = numbers.map(numStr => {
- const number = parseInt(numStr, 10); // Convert string to integer for array indexing
+ if (isNaN(number) || number <= 0) {
+ return `[${numStr}]`;
+ }
- // Basic validation: Ensure it's a positive number
- if (isNaN(number) || number <= 0) {
- // Return the original number part as text if invalid for lookup
- return `[${numStr}]`;
- }
+ const source = message.sources?.[number - 1];
+ const url = source?.metadata?.url;
- // Get the corresponding source, adjusting for 0-based index
- const source = message.sources?.[number - 1];
- const url = source?.metadata?.url;
-
- // If URL exists, create the link
- if (url) {
- return `${numStr}`;
- } else {
- // If no URL found for this number, return the number styled similarly but red
- return `${numStr}`;
- }
- }).join(''); // Join the generated links (or fallback text) together without separators
+ if (url) {
+ return `${numStr}`;
+ } else {
+ return `[${numStr}]`;
+ }
+ })
+ .join('');
return linksHtml;
- }
- )
+ },
+ ),
);
return;
}