Sha256: 66f8e9ce957fce74050209393cf38b825353555de06531e5c2a823e15754be22

Contents?: true

Size: 1.21 KB

Versions: 8

Compression:

Stored size: 1.21 KB

Contents

module Pageflow
  module SocialShareLinksHelper
    include SocialShareHelper

    PROVIDER_URL_TEMPLATES = {
      email: 'mailto:?body=%{url}',
      facebook: 'http://www.facebook.com/sharer/sharer.php?u=%{url}',
      google: 'https://plus.google.com/share?url=%{url}',
      linked_in: 'https://www.linkedin.com/shareArticle?mini=true&url=%{url}',
      telegram: 'tg://msg?text=%{url}',
      twitter: 'http://twitter.com/home?status=%{url}',
      whats_app: 'WhatsApp://send?text=%{url}'
    }.freeze

    def social_share_link(provider, entry, &block)
      block ||= ->() {}
      page_share_link_url = social_share_link_url(provider, social_share_page_url(entry, 'permaId'))
      data_attributes = entry.share_url.present? ? {} : {share_page: page_share_link_url}

      link_to(social_share_link_url(provider, social_share_entry_url(entry)),
              target: '_blank',
              tabindex: '2',
              class: ['share', provider],
              data: data_attributes,
              &block)
    end

    private

    def social_share_link_url(provider, url)
      return nil if url.blank?
      encoded_url = ERB::Util.url_encode(url)
      PROVIDER_URL_TEMPLATES[provider] % {url: encoded_url}
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
pageflow-14.4.0 app/helpers/pageflow/social_share_links_helper.rb
pageflow-15.0.0.beta2 app/helpers/pageflow/social_share_links_helper.rb
pageflow-15.0.0.beta1 app/helpers/pageflow/social_share_links_helper.rb
pageflow-14.3.0 app/helpers/pageflow/social_share_links_helper.rb
pageflow-14.2.1 app/helpers/pageflow/social_share_links_helper.rb
pageflow-14.2.0 app/helpers/pageflow/social_share_links_helper.rb
pageflow-14.1.1 app/helpers/pageflow/social_share_links_helper.rb
pageflow-14.1.0 app/helpers/pageflow/social_share_links_helper.rb