diff --git a/app/helpers/accounts_helper.rb b/app/helpers/accounts_helper.rb
index 99ef891ce..90966cec9 100644
--- a/app/helpers/accounts_helper.rb
+++ b/app/helpers/accounts_helper.rb
@@ -1,4 +1,6 @@
module AccountsHelper
+ ACTIVITY_HIGHLIGHT_MARKUP = '\1'.freeze
+
def summary_card(title:, &block)
content = capture(&block)
render "accounts/summary_card", title: title, content: content
@@ -8,4 +10,11 @@ module AccountsHelper
# Always use the account sync path, which handles syncing all providers
sync_account_path(account)
end
+
+ def highlight_activity_entry_name(name, query = params.dig(:q, :search))
+ search = query.to_s.strip
+ return name if search.blank?
+
+ highlight(name, search, highlighter: ACTIVITY_HIGHLIGHT_MARKUP)
+ end
end
diff --git a/app/views/trades/_trade.html.erb b/app/views/trades/_trade.html.erb
index 04b67e645..a614b0251 100644
--- a/app/views/trades/_trade.html.erb
+++ b/app/views/trades/_trade.html.erb
@@ -32,10 +32,10 @@
- <%= link_to entry.name,
+ <%= link_to(highlight_activity_entry_name(entry.name),
entry_path(entry),
data: { turbo_frame: "drawer", turbo_prefetch: false },
- class: "hover:underline" %>
+ class: "hover:underline") %>
<% end %>
diff --git a/app/views/transactions/_split_parent_row.html.erb b/app/views/transactions/_split_parent_row.html.erb
index 6813609c3..c54bdfe35 100644
--- a/app/views/transactions/_split_parent_row.html.erb
+++ b/app/views/transactions/_split_parent_row.html.erb
@@ -29,10 +29,10 @@
- <%= link_to entry.name,
+ <%= link_to(highlight_activity_entry_name(entry.name),
entry_path(entry),
data: { turbo_frame: "drawer", turbo_prefetch: false },
- class: "hover:underline" %>
+ class: "hover:underline") %>
@@ -51,7 +51,7 @@
<%= link_to entry.account.name,
account_path(entry.account, tab: "transactions"),
data: { turbo_frame: "_top" },
- class: "hover:underline" %>
+ class: "hover:underline") %>
diff --git a/app/views/transactions/_transaction.html.erb b/app/views/transactions/_transaction.html.erb
index b0ee1ae0a..1c19f8f32 100644
--- a/app/views/transactions/_transaction.html.erb
+++ b/app/views/transactions/_transaction.html.erb
@@ -59,7 +59,7 @@
<% if transaction.transfer? %>
<%= link_to(
- entry.name,
+ highlight_activity_entry_name(entry.name),
transaction.transfer.present? ? transfer_path(transaction.transfer) : entry_path(entry),
data: {
turbo_frame: "drawer",
@@ -69,7 +69,7 @@
) %>
<% else %>
<%= link_to(
- entry.name,
+ highlight_activity_entry_name(entry.name),
entry_path(entry),
data: {
turbo_frame: "drawer",
diff --git a/app/views/valuations/_valuation.html.erb b/app/views/valuations/_valuation.html.erb
index e377eda0f..d19a78f5d 100644
--- a/app/views/valuations/_valuation.html.erb
+++ b/app/views/valuations/_valuation.html.erb
@@ -17,10 +17,10 @@
<%= render DS::FilledIcon.new(icon: icon, size: "md", hex_color: color, rounded: true) %>
- <%= link_to entry.name,
+ <%= link_to(highlight_activity_entry_name(entry.name),
entry_path(entry),
data: { turbo_frame: "drawer", turbo_prefetch: false },
- class: "hover:underline" %>
+ class: "hover:underline") %>