From ad60fd19e6fd14ca917f2400e7479286ce5a9032 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 12 May 2026 19:55:03 -0500 Subject: [PATCH] feat: add InboxActivity component with find-in-document text highlighting and navigation --- app/assets/css/main.css | 13 +++++++++++++ app/components/inbox/InboxActivity.vue | 10 +++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/assets/css/main.css b/app/assets/css/main.css index 738e134..aa318c5 100755 --- a/app/assets/css/main.css +++ b/app/assets/css/main.css @@ -75,3 +75,16 @@ mark.search-match.is-current { 70% { box-shadow: 0 0 0 14px rgba(249, 115, 22, 0), 0 0 0 2px #8cff32 inset; } 100% { box-shadow: 0 0 0 0 rgba(249, 115, 22, 0), 0 0 0 2px #8cff32 inset; } } + +/* Colors for Typesense rich text */ +.red { + color: #C00000 !important; +} + +.purple { + color: #7030A0 !important; +} + +.blue { + color: #0070C0 !important; +} diff --git a/app/components/inbox/InboxActivity.vue b/app/components/inbox/InboxActivity.vue index 5577315..811f1ac 100755 --- a/app/components/inbox/InboxActivity.vue +++ b/app/components/inbox/InboxActivity.vue @@ -305,7 +305,15 @@ async function renderBody() { const el = bodyContainer.value if (!el) return - const raw = props.activity?.body + let raw = props.activity?.body || '' + + if (raw) { + raw = raw + .replaceAll('#00ccff', '#0070C0') + .replaceAll('#FF0000', '#C00000') + .replaceAll('#333399', '#7030A0') + } + el.innerHTML = raw ? ((fixLink(raw) as string) || '') : '' if (scrollContainer.value) scrollContainer.value.scrollTop = 0