%
add_gem_component_stylesheet("share-links")
links ||= []
title ||= false
track_as_sharing ||= false
track_as_follow ||= false
ga4_extra_data ||= {}
stacked ||= false
columns ||= false
brand ||= false
brand_helper = GovukPublishingComponents::AppHelpers::BrandHelper.new(brand)
classes = %w(gem-c-share-links govuk-!-display-none-print)
classes << "gem-c-share-links--stacked" if stacked
classes << "gem-c-share-links--columns" if columns
classes << brand_helper.brand_class
data_attributes ||= {}
((data_attributes[:module] ||= "") << " " << "ga4-link-tracker").strip! if track_as_sharing || track_as_follow
%>
<% if links.any? %>
<%= tag.div(class: classes, data: data_attributes) do %>
<% if title %>
<%= title %>
<% end %>
<%= t('components.share_links.all_opens_in_new_tab') %>
<% links.each_with_index do |link, index| %>
<% link_text = capture do %>
<% if link[:hidden_text] %>
<%= link[:hidden_text] %>
<% else %>
Share on
<% end %>
<%= link[:text] %>
<%= t('components.share_links.opens_in_new_tab') %>
<% end %>
-
<%
if track_as_sharing
ga4_link_data = {
'event_name': 'navigation',
'type': 'share page',
'index_link': index + 1,
'index_total': links.length,
'text': link[:icon],
}.merge(ga4_extra_data)
end
if track_as_follow
ga4_link_data = {
'event_name': 'navigation',
'type': 'follow us',
'index_link': index + 1,
'index_total': links.length,
}.merge(ga4_extra_data)
end
%>
<%
data_attributes = link[:data_attributes] ||= {}
data_attributes[:ga4_link] = ga4_link_data
%>
<%= link_to link[:href],
target: "_blank",
rel: "noopener noreferrer external",
data: data_attributes,
class: "govuk-link govuk-link--no-underline gem-c-share-links__link #{brand_helper.color_class}" do %>
<% if link[:icon] == 'facebook' %>
<% elsif link[:icon] == 'twitter' %>
<% elsif link[:icon] == 'email' %>
<% elsif link[:icon] == 'flickr' %>
<% elsif link[:icon] == 'instagram' %>
<% elsif link[:icon] == 'linkedin' %>
<% elsif link[:icon] == 'youtube' %>
<% elsif link[:icon] == 'whatsapp' %>
<% else %>
<% end %>
<%= link_text %><% end %>
<% end %>
<% end %>
<% end %>