diff --git a/app/helpers/snippets_helper.rb b/app/helpers/snippets_helper.rb index dc4db2c2021dc5e0be66537e204c8dd70125efb9..efe87500b4c59f8d01db07777eddcd22996a5a55 100644 --- a/app/helpers/snippets_helper.rb +++ b/app/helpers/snippets_helper.rb @@ -76,10 +76,19 @@ def snippet_file_count(snippet) tooltip = n_('%d file', '%d files', file_count) % file_count - tag.span(class: 'file_count', title: tooltip, data: { toggle: 'tooltip', container: 'body' }) do - concat(sprite_icon('documents', css_class: 'gl-align-middle')) + render Pajamas::ButtonComponent.new( + category: :tertiary, + size: :small, + icon: 'documents', + button_options: { + title: tooltip, + data: { toggle: 'tooltip', container: 'body' }, + aria: { label: tooltip }, + class: "file_count gl-min-h-0 gl-min-w-0 !gl-bg-transparent !gl-p-0" + } + ) do concat(' ') - concat(file_count) + concat(file_count.to_s) end end diff --git a/app/views/shared/snippets/_snippet.html.haml b/app/views/shared/snippets/_snippet.html.haml index 6e19f2b199bda1cfe5fc946fbe2584ed4d99a63e..2989d379268f4b3cba0e9765ffdd7dd62032db40 100644 --- a/app/views/shared/snippets/_snippet.html.haml +++ b/app/views/shared/snippets/_snippet.html.haml @@ -26,12 +26,11 @@ = _('created %{timeAgo} by %{author}').html_safe % { timeAgo: created_at, author: author } .sm:gl-flex.gl-flex-col.gl-items-end{ data: { testid: 'snippet-file-count-content', qa_snippet_files: snippet.statistics&.file_count } } - .gl-flex.gl-gap-4.gl-items-center + .gl-flex.gl-gap-3.gl-items-center - if notes_count > 0 - %span.has-tooltip{ title: _('Comments') } - = sprite_icon('comments') + = render Pajamas::ButtonComponent.new(category: :tertiary, size: :small, icon: 'comments', button_options: { class: 'has-tooltip !gl-bg-transparent !gl-p-0', title: _('Comments'), aria: { label: _('Comments') } }) do = notes_count = snippet_file_count(snippet) - %span.has-tooltip{ title: visibility_level_label(snippet.visibility_level), data: { testid: 'snippet-visibility-content', qa_snippet_visibility: visibility_level_label(snippet.visibility_level) } } + = render Pajamas::ButtonComponent.new(category: :tertiary, size: :small, button_options: { class: 'has-tooltip !gl-bg-transparent !gl-p-0', title: _(visibility_level_label(snippet.visibility_level)), aria: { label: _(snippet.visibility_level) }, data: { testid: 'snippet-visibility-content', qa_snippet_visibility: visibility_level_label(snippet.visibility_level) } }) do = visibility_level_icon(snippet.visibility_level) .gl-whitespace-nowrap.gl-text-sm.gl-text-subtle= _('updated %{timeAgo}').html_safe % { timeAgo: time_ago_with_tooltip(snippet.updated_at, placement: 'bottom') } diff --git a/spec/views/shared/snippets/_snippet.html.haml_spec.rb b/spec/views/shared/snippets/_snippet.html.haml_spec.rb index ae33821c79a30c32e2cb9e3ec28d8691d2db6957..ec0116e4bbf8c73842c8011b18a8c46956fcb802 100644 --- a/spec/views/shared/snippets/_snippet.html.haml_spec.rb +++ b/spec/views/shared/snippets/_snippet.html.haml_spec.rb @@ -20,8 +20,8 @@ render 'shared/snippets/snippet', snippet: snippet - expect(rendered).to have_selector("span.file_count", text: '3') - expect(rendered).to have_selector("span.file_count[title=\"3 files\"]") + expect(rendered).to have_selector(".file_count", text: '3') + expect(rendered).to have_selector(".file_count[title=\"3 files\"]") end it 'renders correct file count and tooltip when file_count is 1' do @@ -29,8 +29,8 @@ render 'shared/snippets/snippet', snippet: snippet - expect(rendered).to have_selector("span.file_count", text: '1') - expect(rendered).to have_selector("span.file_count[title=\"1 file\"]") + expect(rendered).to have_selector(".file_count", text: '1') + expect(rendered).to have_selector(".file_count[title=\"1 file\"]") end it 'does not render file count when file count is 0' do @@ -38,7 +38,7 @@ render 'shared/snippets/snippet', snippet: snippet - expect(rendered).not_to have_selector('span.file_count') + expect(rendered).not_to have_selector('.file_count') end end @@ -48,7 +48,7 @@ render 'shared/snippets/snippet', snippet: snippet - expect(rendered).not_to have_selector('span.file_count') + expect(rendered).not_to have_selector('.file_count') end end @@ -63,7 +63,7 @@ end it 'does not render tooltip' do - expect(rendered).not_to have_selector("span.has-tooltip[title='This snippet is hidden because its author has been banned']") + expect(rendered).not_to have_selector(".has-tooltip[title='This snippet is hidden because its author has been banned']") end end @@ -80,7 +80,7 @@ end it 'renders tooltip' do - expect(rendered).to have_selector("span.has-tooltip[title='This snippet is hidden because its author has been banned']") + expect(rendered).to have_selector(".has-tooltip[title='This snippet is hidden because its author has been banned']") end end end