Files
openfoodnetwork/app/helpers/link_helper.rb
2025-09-05 09:38:20 +01:00

50 lines
1.2 KiB
Ruby

# frozen_string_literal: true
module LinkHelper
def link_to_or_disabled(name = nil, options = nil, html_options = nil, &block)
html_options, options, name = options, name, block if block_given?
html_options ||= {}
if !!html_options.delete(:disabled)
# https://www.scottohara.me/blog/2021/05/28/disabled-links.html
html_options.merge!(
'aria-disabled': true,
class: (html_options[:class].to_s.split + ["disabled"]).uniq.join(" "),
role: "link"
)
if block_given?
content_tag("a", name, **html_options, &block)
else
content_tag("a", name, **html_options)
end
elsif block_given?
link_to options, html_options, &block
else
link_to name, options, html_options
end
end
def link_to_service(baseurl, name, html_options = {}, &)
return if name.blank?
html_options = html_options.merge target: '_blank'
link_to(ext_url(baseurl, name), html_options, &)
end
def ext_url(prefix, url)
if url =~ %r{^https?://}i
url
else
prefix + url
end
end
def new_tab_option
if feature?(:open_in_same_tab, spree_current_user)
{}
else
{ target: "_blank" }
end
end
end