diff --git a/app/assets/javascripts/discourse/app/lib/lightbox/process-html.js b/app/assets/javascripts/discourse/app/lib/lightbox/process-html.js index 5c9113646c2..9f95e615a17 100644 --- a/app/assets/javascripts/discourse/app/lib/lightbox/process-html.js +++ b/app/assets/javascripts/discourse/app/lib/lightbox/process-html.js @@ -54,7 +54,10 @@ export async function processHTML({ container, selector, clickTarget }) { .querySelector(SELECTORS.FILE_DETAILS_CONTAINER) ?.innerText.trim() || null; - const _dominantColor = innerImage.dataset?.dominantColor || null; + const _dominantColor = + item.dataset?.dominantColor ?? + innerImage.dataset?.dominantColor ?? + null; const _cssVars = [ _dominantColor && `--dominant-color: #${_dominantColor};`, diff --git a/plugins/chat/assets/javascripts/discourse/components/chat-upload.hbs b/plugins/chat/assets/javascripts/discourse/components/chat-upload.hbs index f96f0cb53e7..24939311a5c 100644 --- a/plugins/chat/assets/javascripts/discourse/components/chat-upload.hbs +++ b/plugins/chat/assets/javascripts/discourse/components/chat-upload.hbs @@ -8,6 +8,7 @@ style={{this.imageStyle}} loading="lazy" tabindex="0" + data-dominant-color={{@upload.dominant_color}} {{on "load" this.imageLoaded}} /> {{else if (eq this.type this.VIDEO_TYPE)}} diff --git a/plugins/chat/spec/system/uploads_spec.rb b/plugins/chat/spec/system/uploads_spec.rb index 102228d3421..7889f1b26b0 100644 --- a/plugins/chat/spec/system/uploads_spec.rb +++ b/plugins/chat/spec/system/uploads_spec.rb @@ -39,6 +39,20 @@ describe "Uploading files in chat messages", type: :system do expect(Chat::Message.last.uploads.count).to eq(1) end + it "adds dominant color attribute to images" do + chat.visit_channel(channel_1) + file_path = file_from_fixtures("logo.png", "images").path + + attach_file(file_path) do + channel_page.open_action_menu + channel_page.click_action_button("chat-upload-btn") + end + + channel_page.click_send_message + + expect(channel_page.messages).to have_css(".chat-img-upload[data-dominant-color]", count: 1) + end + it "allows uploading multiple files" do chat.visit_channel(channel_1)