From 8b86e2f1233aab000bcde620daaae585feec9406 Mon Sep 17 00:00:00 2001 From: Andreas Nedbal Date: Wed, 18 Oct 2023 20:01:59 +0200 Subject: [PATCH] Set text and URL separately for `navigator.share` Apparently for most mobile OSses `url` is a required share option --- app/controllers/ajax/answer_controller.rb | 6 +++--- app/javascript/retrospring/features/inbox/entry/answer.ts | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/controllers/ajax/answer_controller.rb b/app/controllers/ajax/answer_controller.rb index 0c401638..65f8f29d 100644 --- a/app/controllers/ajax/answer_controller.rb +++ b/app/controllers/ajax/answer_controller.rb @@ -3,9 +3,7 @@ require "cgi" class Ajax::AnswerController < AjaxController - include SocialHelper::TwitterMethods - include SocialHelper::TumblrMethods - include SocialHelper::TelegramMethods + include SocialHelper def create params.require :id @@ -73,6 +71,8 @@ class Ajax::AnswerController < AjaxController private def sharing_hash(answer) = { + url: answer_share_url(answer), + text: prepare_tweet(answer, nil, true), twitter: twitter_share_url(answer), tumblr: tumblr_share_url(answer), telegram: telegram_share_url(answer), diff --git a/app/javascript/retrospring/features/inbox/entry/answer.ts b/app/javascript/retrospring/features/inbox/entry/answer.ts index c515dc30..b5a142ab 100644 --- a/app/javascript/retrospring/features/inbox/entry/answer.ts +++ b/app/javascript/retrospring/features/inbox/entry/answer.ts @@ -32,7 +32,8 @@ export function answerEntryHandler(event: Event): void { const shareButton = inboxEntry.querySelector('[data-controller="share"]'); if (shareButton != null) { - shareButton.dataset.shareTextValue = decodeURIComponent(data.sharing.custom).replaceAll('+', ' '); + shareButton.dataset.shareUrlValue = data.sharing.url; + shareButton.dataset.shareTextValue = data.sharing.text; } const sharing = inboxEntry.querySelector('.inbox-entry__sharing');