Skip to content

Commit

Permalink
FIX: Post copy link not working (#25086)
Browse files Browse the repository at this point in the history
Followup to c6cb319,
the actionCallback function was double-wrapped with () => {}
which meant that copyClipboard did not return a promise.
  • Loading branch information
martin-brennan committed Jan 2, 2024
1 parent 6b8e051 commit b92993f
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
9 changes: 6 additions & 3 deletions app/assets/javascripts/discourse/app/widgets/post.js
Expand Up @@ -22,7 +22,10 @@ import RawHtml from "discourse/widgets/raw-html";
import { applyDecorators, createWidget } from "discourse/widgets/widget";
import { isTesting } from "discourse-common/config/environment";
import { avatarUrl, translateSize } from "discourse-common/lib/avatar-utils";
import getURL, { getURLWithCDN } from "discourse-common/lib/get-url";
import getURL, {
getAbsoluteURL,
getURLWithCDN,
} from "discourse-common/lib/get-url";
import { iconNode } from "discourse-common/lib/icon-library";
import I18n from "discourse-i18n";

Expand Down Expand Up @@ -653,7 +656,7 @@ createWidget("post-contents", {
const post = this.findAncestorModel();
const postId = post.id;

let actionCallback = () => clipboardCopy(post.shareUrl);
let actionCallback = () => clipboardCopy(getAbsoluteURL(post.shareUrl));

// Can't use clipboard in JS tests.
if (isTesting()) {
Expand All @@ -664,7 +667,7 @@ createWidget("post-contents", {
postId,
actionClass: "post-action-menu__copy-link",
messageKey: "post.controls.link_copied",
actionCallback: () => actionCallback,
actionCallback,
errorCallback: () => this.share(),
});
},
Expand Down
2 changes: 2 additions & 0 deletions spec/system/page_objects/pages/topic.rb
Expand Up @@ -86,6 +86,8 @@ def click_post_action_button(post, button)
post_by_number(post).find(".post-controls .reply").click
when :flag
post_by_number(post).find(".post-controls .create-flag").click
when :copy_link
post_by_number(post).find(".post-controls .post-action-menu__copy-link").click
end
end

Expand Down
22 changes: 22 additions & 0 deletions spec/system/post_menu_spec.rb
@@ -0,0 +1,22 @@
# frozen_string_literal: true

describe "Post menu", type: :system, js: true do
fab!(:current_user) { Fabricate(:user) }
fab!(:post)

let(:topic_page) { PageObjects::Pages::Topic.new }

before { sign_in(current_user) }

describe "copy link" do
let(:cdp) { PageObjects::CDP.new }

before { cdp.allow_clipboard }

xit "copies the absolute link to the post when clicked" do
topic_page.visit_topic(post.topic)
topic_page.click_post_action_button(post, :copy_link)
expect(cdp.read_clipboard).to eq(post.full_url + "?u=#{current_user.username}")
end
end
end

1 comment on commit b92993f

@discoursebot
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commit has been mentioned on Discourse Meta. There might be relevant details there:

https://meta.discourse.org/t/copy-link-button-not-responding/290488/8

Please sign in to comment.