Skip to content

fix: InfoCard element's action block not dispatching action payload#37768

Merged
kodiakhq[bot] merged 3 commits intodevelopfrom
fix/infoCardAction
Dec 11, 2025
Merged

fix: InfoCard element's action block not dispatching action payload#37768
kodiakhq[bot] merged 3 commits intodevelopfrom
fix/infoCardAction

Conversation

@gabriellsh
Copy link
Member

@gabriellsh gabriellsh commented Dec 10, 2025

Proposed changes (including videos or screenshots)

The IconButton element was being rendered the wrong way, bypassing some logic that allows actions to be dispatched.

Issue(s)

VGA-103

Steps to test or reproduce

Further comments

Summary by CodeRabbit

Bug Fixes

  • Fixed action dispatching in the Info Card component, ensuring actions are now properly triggered when interacted with.

✏️ Tip: You can customize this high-level summary in your review settings.

@gabriellsh gabriellsh requested review from a team as code owners December 10, 2025 20:13
@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Dec 10, 2025

Looks like this PR is ready to merge! 🎉
If you have any trouble, please check the PR guidelines

@changeset-bot
Copy link

changeset-bot bot commented Dec 10, 2025

🦋 Changeset detected

Latest commit: e9ae584

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 41 packages
Name Type
@rocket.chat/fuselage-ui-kit Patch
@rocket.chat/meteor Patch
@rocket.chat/uikit-playground Patch
@rocket.chat/core-typings Patch
@rocket.chat/rest-typings Patch
@rocket.chat/api-client Patch
@rocket.chat/apps Patch
@rocket.chat/core-services Patch
@rocket.chat/cron Patch
@rocket.chat/ddp-client Patch
@rocket.chat/freeswitch Patch
@rocket.chat/gazzodown Patch
@rocket.chat/http-router Patch
@rocket.chat/livechat Patch
@rocket.chat/model-typings Patch
@rocket.chat/ui-avatar Patch
@rocket.chat/ui-client Patch
@rocket.chat/ui-contexts Patch
@rocket.chat/ui-voip Patch
@rocket.chat/web-ui-registration Patch
@rocket.chat/account-service Patch
@rocket.chat/authorization-service Patch
@rocket.chat/ddp-streamer Patch
@rocket.chat/omnichannel-transcript Patch
@rocket.chat/presence-service Patch
@rocket.chat/queue-worker Patch
@rocket.chat/stream-hub-service Patch
@rocket.chat/federation-matrix Patch
@rocket.chat/license Patch
@rocket.chat/media-calls Patch
@rocket.chat/omnichannel-services Patch
@rocket.chat/pdf-worker Patch
@rocket.chat/presence Patch
rocketchat-services Patch
@rocket.chat/models Patch
@rocket.chat/network-broker Patch
@rocket.chat/omni-core-ee Patch
@rocket.chat/mock-providers Patch
@rocket.chat/ui-video-conf Patch
@rocket.chat/instance-status Patch
@rocket.chat/omni-core Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 10, 2025

Walkthrough

A changeset entry documents a patch release for @rocket.chat/fuselage-ui-kit. The InfoCard component is updated to use surfaceRenderer.renderActionsBlockElement() instead of directly importing and rendering IconButtonElement, fixing action dispatch behavior.

Changes

Cohort / File(s) Summary
Changeset Documentation
.changeset/happy-news-reflect.md
New changeset entry for patch release documenting the InfoCard action dispatch fix
InfoCard Component Update
packages/fuselage-ui-kit/src/blocks/InfoCard.tsx
Removed IconButtonElement import; replaced direct component usage with surfaceRenderer.renderActionsBlockElement(action, index) to fix action rendering and dispatch behavior

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Review the renderer method signature and understand how surfaceRenderer.renderActionsBlockElement() differs from the previous IconButtonElement approach
  • Verify that the action dispatch behavior is correctly implemented through the renderer
  • Confirm DOM structure changes don't introduce unintended side effects or styling issues

Possibly related PRs

Suggested labels

stat: ready to merge, stat: QA assured

Suggested reviewers

  • tassoevan
  • d-gubert

Poem

🐰 A button was lost in the InfoCard's heart,
So we handed the task to renderer's art,
Now actions dispatch with a jubilant spark,
No more missing clicks in the DOM's dark nook! ✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarizes the main change: fixing the InfoCard element's action block to properly dispatch action payloads, which aligns with the changeset and code modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/infoCardAction

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/fuselage-ui-kit/src/blocks/InfoCard.tsx (1)

55-55: Fix correctly delegates action rendering to surface renderer.

The change properly routes action rendering through surfaceRenderer.renderActionsBlockElement(), which ensures the action dispatch logic is executed. This resolves the issue where directly rendering IconButtonElement bypassed the dispatch mechanism.

For style consistency with the rest of the component, consider using <Box> instead of <div>:

-{action && <div>{surfaceRenderer.renderActionsBlockElement(action, index)}</div>}
+{action && <Box>{surfaceRenderer.renderActionsBlockElement(action, index)}</Box>}
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ddf6717 and 727fe5e.

📒 Files selected for processing (2)
  • .changeset/happy-news-reflect.md (1 hunks)
  • packages/fuselage-ui-kit/src/blocks/InfoCard.tsx (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx,js}

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

**/*.{ts,tsx,js}: Write concise, technical TypeScript/JavaScript with accurate typing in Playwright tests
Avoid code comments in the implementation

Files:

  • packages/fuselage-ui-kit/src/blocks/InfoCard.tsx
🧠 Learnings (2)
📓 Common learnings
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37398
File: packages/fuselage-ui-kit/src/surfaces/FuselageSurfaceRenderer.tsx:357-363
Timestamp: 2025-11-17T15:07:13.273Z
Learning: In packages/fuselage-ui-kit/src/surfaces/FuselageSurfaceRenderer.tsx, IconElement is a presentational, non-actionable element that does not require wrapping in AppIdProvider, similar to plain_text and mrkdwn renderers. Only actionable elements (those with actions, actionId, or interactive behavior) should be wrapped in AppIdProvider.
📚 Learning: 2025-11-17T15:07:13.273Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37398
File: packages/fuselage-ui-kit/src/surfaces/FuselageSurfaceRenderer.tsx:357-363
Timestamp: 2025-11-17T15:07:13.273Z
Learning: In packages/fuselage-ui-kit/src/surfaces/FuselageSurfaceRenderer.tsx, IconElement is a presentational, non-actionable element that does not require wrapping in AppIdProvider, similar to plain_text and mrkdwn renderers. Only actionable elements (those with actions, actionId, or interactive behavior) should be wrapped in AppIdProvider.

Applied to files:

  • packages/fuselage-ui-kit/src/blocks/InfoCard.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: CodeQL-Build
  • GitHub Check: CodeQL-Build
🔇 Additional comments (1)
.changeset/happy-news-reflect.md (1)

1-5: LGTM!

The changeset properly documents the bug fix with an appropriate patch-level version bump.

@gabriellsh gabriellsh modified the milestones: 8.0.0, 7.14.0 Dec 10, 2025
@gabriellsh gabriellsh removed the request for review from a team December 10, 2025 20:22
@github-actions
Copy link
Contributor

github-actions bot commented Dec 10, 2025

📦 Docker Image Size Report

📈 Changes

Service Current Baseline Change Percent
sum of all images 1.2GiB 1.2GiB +12MiB
rocketchat 358MiB 347MiB +12MiB
omnichannel-transcript-service 132MiB 132MiB +666B
queue-worker-service 132MiB 132MiB +1.3KiB
ddp-streamer-service 126MiB 126MiB +593B
account-service 113MiB 113MiB +150B
stream-hub-service 111MiB 111MiB +447B
presence-service 111MiB 111MiB +160B
authorization-service 111MiB 111MiB +393B

📊 Historical Trend

---
config:
  theme: "dark"
  xyChart:
    width: 900
    height: 400
---
xychart
  title "Image Size Evolution by Service (Last 30 Days + This PR)"
  x-axis ["11/15 22:28", "11/16 01:28", "11/17 23:50", "11/18 22:53", "11/19 23:02", "11/21 16:49", "11/24 17:34", "11/27 22:32", "11/28 19:05", "12/01 23:01", "12/02 21:57", "12/03 21:00", "12/04 18:17", "12/05 21:56", "12/08 20:15", "12/09 22:17", "12/10 23:26", "12/11 20:22", "12/11 20:26 (PR)"]
  y-axis "Size (GB)" 0 --> 0.5
  line "account-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11]
  line "authorization-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11]
  line "ddp-streamer-service" [0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12]
  line "omnichannel-transcript-service" [0.14, 0.14, 0.14, 0.14, 0.14, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13]
  line "presence-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11]
  line "queue-worker-service" [0.14, 0.14, 0.14, 0.14, 0.14, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13]
  line "rocketchat" [0.36, 0.36, 0.35, 0.35, 0.35, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.34, 0.35]
  line "stream-hub-service" [0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11]
Loading

Statistics (last 18 days):

  • 📊 Average: 1.5GiB
  • ⬇️ Minimum: 1.2GiB
  • ⬆️ Maximum: 1.6GiB
  • 🎯 Current PR: 1.2GiB
ℹ️ About this report

This report compares Docker image sizes from this build against the develop baseline.

  • Tag: pr-37768
  • Baseline: develop
  • Timestamp: 2025-12-11 20:26:56 UTC
  • Historical data points: 18

Updated: Thu, 11 Dec 2025 20:26:57 GMT

@codecov
Copy link

codecov bot commented Dec 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 67.69%. Comparing base (2527c47) to head (e9ae584).
⚠️ Report is 2 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff            @@
##           develop   #37768   +/-   ##
========================================
  Coverage    67.69%   67.69%           
========================================
  Files         3452     3452           
  Lines       113982   113982           
  Branches     20943    20943           
========================================
+ Hits         77161    77163    +2     
- Misses       34688    34690    +2     
+ Partials      2133     2129    -4     
Flag Coverage Δ
e2e 57.26% <ø> (+<0.01%) ⬆️
e2e-api 42.31% <ø> (+0.03%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@tassoevan tassoevan added the stat: QA assured Means it has been tested and approved by a company insider label Dec 11, 2025
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Dec 11, 2025
@kodiakhq kodiakhq bot merged commit 94b87d9 into develop Dec 11, 2025
48 checks passed
@kodiakhq kodiakhq bot deleted the fix/infoCardAction branch December 11, 2025 20:55
@dougfabris dougfabris modified the milestones: 7.14.0, 8.0.0 Jan 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stat: QA assured Means it has been tested and approved by a company insider stat: ready to merge PR tested and approved waiting for merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants