From 24cb470f4e6649ceaf7b3438a7da9acbc2fd4c9a Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 11 Nov 2025 13:19:07 +0100 Subject: [PATCH] Extract shared helper --- app/helpers/my/menu_helper.rb | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/helpers/my/menu_helper.rb b/app/helpers/my/menu_helper.rb index ef4ebb459..7924c4d97 100644 --- a/app/helpers/my/menu_helper.rb +++ b/app/helpers/my/menu_helper.rb @@ -18,29 +18,25 @@ module My::MenuHelper end def my_menu_board_item(board) - tag.li(class: "popup__item", data: { filter_target: "item", navigable_list_target: "item", id: "filter-board-#{board.id}" }) do - icon_tag("board", class: "popup__icon") + + my_menu_item("board", board) do link_to(tag.span(board.name, class: "overflow-ellipsis"), board, class: "popup__btn btn") end end def my_menu_tag_item(the_tag) - tag.li(class: "popup__item", data: { filter_target: "item", navigable_list_target: "item", id: "filter-tag-#{the_tag.id}" }) do - icon_tag("tag", class: "popup__icon") + + my_menu_item("tag", tag) do link_to(tag.span("#{the_tag.title} (#{the_tag.cards_count})", class: "overflow-ellipsis"), cards_path(tag_ids: [ the_tag ]), class: "popup__btn btn") end end def my_menu_user_item(user) - tag.li(class: "popup__item", data: { filter_target: "item", navigable_list_target: "item", id: "filter-user-#{user.id}" }) do - icon_tag("person", class: "popup__icon") + + my_menu_item("person", user) do link_to(tag.span(user.name, class: "overflow-ellipsis"), user, class: "popup__btn btn") end end def my_menu_filter_item(filter) - tag.li(class: "popup__item", data: { filter_target: "item", navigable_list_target: "item", id: "filter-custom-#{filter.id}" }) do - icon_tag("bookmark", class: "popup__icon") + + my_menu_item("bookmark", filter) do link_to(cards_path(filter_id: filter.id), class: "popup__btn btn") do tag.div(class: "txt-tight-lines min-width txt-small overflow-ellipsis") do tag.div(tag.strong(filter.boards_label)) + @@ -49,4 +45,10 @@ module My::MenuHelper end end end + + def my_menu_item(item, record) + tag.li(class: "popup__item", data: { filter_target: "item", navigable_list_target: "item", id: "filter-#{item}-#{record.id}" }) do + icon_tag(item, class: "popup__icon") + yield + end + end end