Skip to content

Conversation

@gabriellsh
Copy link
Member

@gabriellsh gabriellsh commented Dec 4, 2025

Proposed changes (including videos or screenshots)

Issue(s)

VGA-98

Steps to test or reproduce

Further comments

Summary by CodeRabbit

  • Tests

    • Enhanced test coverage with accessibility validation across component stories using automated accessibility checking.
  • Refactor

    • Consolidated UI component imports to use a centralized shared package, improving code maintainability and consistency across the application.

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

@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Dec 4, 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 4, 2025

⚠️ No Changeset found

Latest commit: 2130e68

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 4, 2025

Walkthrough

This PR migrates InfoPanel components from local module paths to the centralized @rocket.chat/ui-client package across multiple consuming files, refactors RetentionPolicyCallout tests to use Storybook-driven testing with accessibility checks, and updates the ui-client package to re-export InfoPanel components.

Changes

Cohort / File(s) Summary
RetentionPolicyCallout test refactoring
apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
Refactored tests to use Storybook stories via composeStories, replaced direct component rendering with data-driven test cases using test.each, added axe-based accessibility validation per story, and switched to real timers for axe compatibility.
RetentionPolicyCallout stories
apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.stories.tsx
New Storybook stories file with two stories: Default and InvalidSettings, demonstrating component behavior under different settings using fake room fixtures and mock configurations.
InfoPanel imports migration to ui-client
apps/meteor/client/views/admin/deviceManagement/DeviceManagementInfo/DeviceManagementInfo.tsx, apps/meteor/client/views/omnichannel/additionalForms/MaxChatsPerAgentDisplay.tsx, apps/meteor/client/views/omnichannel/agents/AgentInfo.tsx, apps/meteor/client/views/omnichannel/components/CustomField.tsx, apps/meteor/client/views/omnichannel/directory/calls/contextualBar/InfoField.tsx, apps/meteor/client/views/omnichannel/directory/calls/contextualBar/VoipInfo.tsx, apps/meteor/client/views/omnichannel/directory/chats/ChatInfo/ChatInfo.tsx, apps/meteor/client/views/room/contextualBar/Info/RoomInfo/ABAC/RoomInfoABACSection.tsx, apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfo.tsx, apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfoActions.tsx, apps/meteor/client/views/teams/contextualBar/info/TeamsInfo.tsx
Replaced InfoPanel component imports from local relative paths to @rocket.chat/ui-client package; no changes to component usage or runtime logic.
UserInfo and related import reorganization
apps/meteor/client/components/UserInfo/UserInfo.tsx
Reorganized and consolidated imports from @rocket.chat/ui-client and local modules; added type and hook imports; no functional logic changes.
ui-client package updates
packages/ui-client/src/components/InfoPanel/InfoPanel.stories.tsx
Removed RetentionPolicyCallout component from InfoPanel story (import, metadata entry, and JSX usage deleted); removed fakeRoom dependency.
ui-client barrel export
packages/ui-client/src/components/index.ts
Added new public export: export * from './InfoPanel' to expose InfoPanel components through the barrel.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

  • Note: While the scope spans 15+ files, the changes follow a highly consistent and repetitive import-migration pattern, reducing per-file cognitive load. However, verify each context to ensure imports are correctly sourced and complete, especially for files with multiple InfoPanel subcomponents.
  • Attention areas:
    • RetentionPolicyCallout test refactor—verify accessibility checks and Storybook story integration maintain adequate test coverage
    • Consistency of import sources across all affected files to prevent accidental mismatches

Possibly related PRs

Suggested labels

stat: ready to merge, stat: QA assured

Suggested reviewers

  • tassoevan

Poem

🐰 InfoPanel hops to ui-client, neat,
Tests now dance with Storybook's beat,
Imports aligned in a harmonious way,
Accessibility checks save the day! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description uses the template but provides no content in the 'Proposed changes', 'Steps to test', or 'Further comments' sections, leaving the rationale and testing approach undocumented. Add detailed explanation of proposed changes, testing steps, and any migration notes or breaking changes to the PR description.
Out of Scope Changes check ❓ Inconclusive All changes are directly related to moving InfoPanel to ui-client package. However, RetentionPolicyCallout refactoring in the spec and new stories file appear tangential to the main component migration objective. Clarify whether RetentionPolicyCallout refactoring and story creation are required dependencies for the InfoPanel migration or separate improvements that should be in a different PR.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: moving the InfoPanel component to the ui-client package, which aligns with the primary objective of the changeset across multiple files.
Linked Issues check ✅ Passed The PR fulfills the objective to move InfoPanel components to ui-client package: it updates multiple files to import from @rocket.chat/ui-client, adds exports in the ui-client barrel file, and creates necessary story files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ 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 move/infoPanel

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.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 4, 2025

📦 Docker Image Size Report

📈 Changes

Service Current Baseline Change Percent
sum of all images 1.2GiB 1.2GiB +12MiB
rocketchat 359MiB 347MiB +12MiB
omnichannel-transcript-service 132MiB 132MiB -636B
queue-worker-service 132MiB 132MiB -610B
ddp-streamer-service 126MiB 126MiB -1.3KiB
account-service 113MiB 113MiB -65B
stream-hub-service 111MiB 111MiB -788B
authorization-service 111MiB 111MiB -1014B
presence-service 111MiB 111MiB -34B

📊 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 12:40", "12/05 13:40 (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]
  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]
  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]
  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]
  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]
  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]
  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.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]
Loading

Statistics (last 14 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-37701
  • Baseline: develop
  • Timestamp: 2025-12-05 13:40:49 UTC
  • Historical data points: 14

Updated: Fri, 05 Dec 2025 13:40:50 GMT

@gabriellsh gabriellsh marked this pull request as ready for review December 4, 2025 20:45
@gabriellsh gabriellsh requested a review from a team as a code owner December 4, 2025 20:45
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 (2)
apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.stories.tsx (1)

11-18: Ensure fakeRoom data is deterministic for snapshot-driven tests.

fakeRoom is created once at module load via createFakeRoom(), which internally relies on faker. Unless faker is globally seeded elsewhere, Story-rendered markup may vary between runs and make Jest snapshots (which consume these stories) flaky. Consider either:

  • passing explicit, fixed overrides into createFakeRoom(...) so the rendered content is stable, or
  • seeding faker in a shared test/setup file before these stories are imported.
apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx (1)

9-23: Tighten timer handling and async usage in tests.

The first test switches to fake timers and sets a fixed system time, while the second switches back to real timers for jest-axe. This works, but future tests in this file could be affected if they assume a default timer mode. Consider centralizing timer setup/teardown (e.g., in beforeEach/afterEach) and/or explicitly restoring timers at the end of the first test, and drop the unnecessary async on the first test since nothing is awaited.

📜 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 dc67590 and 61994a0.

⛔ Files ignored due to path filters (2)
  • apps/meteor/client/components/InfoPanel/__snapshots__/RetentionPolicyCallout.spec.tsx.snap is excluded by !**/*.snap
  • packages/ui-client/src/components/InfoPanel/__snapshots__/InfoPanel.spec.tsx.snap is excluded by !**/*.snap
📒 Files selected for processing (16)
  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx (1 hunks)
  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.stories.tsx (1 hunks)
  • apps/meteor/client/components/UserInfo/UserInfo.tsx (2 hunks)
  • apps/meteor/client/views/admin/deviceManagement/DeviceManagementInfo/DeviceManagementInfo.tsx (1 hunks)
  • apps/meteor/client/views/omnichannel/additionalForms/MaxChatsPerAgentDisplay.tsx (1 hunks)
  • apps/meteor/client/views/omnichannel/agents/AgentInfo.tsx (1 hunks)
  • apps/meteor/client/views/omnichannel/components/CustomField.tsx (1 hunks)
  • apps/meteor/client/views/omnichannel/directory/calls/contextualBar/InfoField.tsx (1 hunks)
  • apps/meteor/client/views/omnichannel/directory/calls/contextualBar/VoipInfo.tsx (1 hunks)
  • apps/meteor/client/views/omnichannel/directory/chats/ChatInfo/ChatInfo.tsx (1 hunks)
  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/ABAC/RoomInfoABACSection.tsx (1 hunks)
  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfo.tsx (1 hunks)
  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfoActions.tsx (1 hunks)
  • apps/meteor/client/views/teams/contextualBar/info/TeamsInfo.tsx (1 hunks)
  • packages/ui-client/src/components/InfoPanel/InfoPanel.stories.tsx (0 hunks)
  • packages/ui-client/src/components/index.ts (1 hunks)
💤 Files with no reviewable changes (1)
  • packages/ui-client/src/components/InfoPanel/InfoPanel.stories.tsx
🧰 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:

  • apps/meteor/client/views/omnichannel/agents/AgentInfo.tsx
  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.stories.tsx
  • apps/meteor/client/views/omnichannel/directory/chats/ChatInfo/ChatInfo.tsx
  • apps/meteor/client/components/UserInfo/UserInfo.tsx
  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfoActions.tsx
  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfo.tsx
  • packages/ui-client/src/components/index.ts
  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/ABAC/RoomInfoABACSection.tsx
  • apps/meteor/client/views/omnichannel/directory/calls/contextualBar/VoipInfo.tsx
  • apps/meteor/client/views/teams/contextualBar/info/TeamsInfo.tsx
  • apps/meteor/client/views/admin/deviceManagement/DeviceManagementInfo/DeviceManagementInfo.tsx
  • apps/meteor/client/views/omnichannel/additionalForms/MaxChatsPerAgentDisplay.tsx
  • apps/meteor/client/views/omnichannel/directory/calls/contextualBar/InfoField.tsx
  • apps/meteor/client/views/omnichannel/components/CustomField.tsx
🧠 Learnings (14)
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Utilize Playwright fixtures (`test`, `page`, `expect`) for consistency in test files

Applied to files:

  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Ensure tests run reliably in parallel without shared state conflicts

Applied to files:

  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Use `expect` matchers for assertions (`toEqual`, `toContain`, `toBeTruthy`, `toHaveLength`, etc.) instead of `assert` statements in Playwright tests

Applied to files:

  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Use `test.step()` for complex test scenarios to improve organization in Playwright tests

Applied to files:

  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Maintain test isolation between test cases in Playwright tests

Applied to files:

  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,spec.ts} : Follow Page Object Model pattern consistently in Playwright tests

Applied to files:

  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Prefer web-first assertions (`toBeVisible`, `toHaveText`, etc.) in Playwright tests

Applied to files:

  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Group related tests in the same file

Applied to files:

  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Ensure clean state for each test execution in Playwright tests

Applied to files:

  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
📚 Learning: 2025-11-24T17:08:17.065Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat PR: 0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-11-24T17:08:17.065Z
Learning: Applies to **/*.spec.ts : Use descriptive test names that clearly communicate expected behavior in Playwright tests

Applied to files:

  • apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx
📚 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:

  • apps/meteor/client/components/UserInfo/UserInfo.tsx
  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfoActions.tsx
📚 Learning: 2025-10-28T16:53:42.761Z
Learnt from: ricardogarim
Repo: RocketChat/Rocket.Chat PR: 37205
File: ee/packages/federation-matrix/src/FederationMatrix.ts:296-301
Timestamp: 2025-10-28T16:53:42.761Z
Learning: In the Rocket.Chat federation-matrix integration (ee/packages/federation-matrix/), the createRoom method from rocket.chat/federation-sdk will support a 4-argument signature (userId, roomName, visibility, displayName) in newer versions. Code using this 4-argument call is forward-compatible with planned library updates and should not be flagged as an error.

Applied to files:

  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfoActions.tsx
  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfo.tsx
  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/ABAC/RoomInfoABACSection.tsx
📚 Learning: 2025-11-27T17:56:26.050Z
Learnt from: MartinSchoeler
Repo: RocketChat/Rocket.Chat PR: 37557
File: apps/meteor/client/views/admin/ABAC/AdminABACRooms.tsx:115-116
Timestamp: 2025-11-27T17:56:26.050Z
Learning: In Rocket.Chat, the GET /v1/abac/rooms endpoint (implemented in ee/packages/abac/src/index.ts) only returns rooms where abacAttributes exists and is not an empty array (query: { abacAttributes: { $exists: true, $ne: [] } }). Therefore, in components consuming this endpoint (like AdminABACRooms.tsx), room.abacAttributes is guaranteed to be defined for all returned rooms, and optional chaining before calling array methods like .join() is sufficient without additional null coalescing.

Applied to files:

  • apps/meteor/client/views/room/contextualBar/Info/RoomInfo/ABAC/RoomInfoABACSection.tsx
📚 Learning: 2025-11-19T18:20:07.720Z
Learnt from: gabriellsh
Repo: RocketChat/Rocket.Chat PR: 37419
File: packages/i18n/src/locales/en.i18n.json:918-921
Timestamp: 2025-11-19T18:20:07.720Z
Learning: Repo: RocketChat/Rocket.Chat — i18n/formatting
Learning: This repository uses a custom message formatting parser in UI blocks/messages; do not assume standard Markdown rules. For keys like Call_ended_bold, Call_not_answered_bold, Call_failed_bold, and Call_transferred_bold in packages/i18n/src/locales/en.i18n.json, retain the existing single-asterisk emphasis unless maintainers request otherwise.

Applied to files:

  • apps/meteor/client/views/omnichannel/additionalForms/MaxChatsPerAgentDisplay.tsx
🧬 Code graph analysis (1)
apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.stories.tsx (1)
apps/meteor/tests/mocks/data.ts (1)
  • createFakeRoom (46-61)
⏰ 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). (18)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 5.0 (4/5)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 5.0 (5/5)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 8.2 [legacy watchers] coverage (2/5)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 5.0 (3/5)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 5.0 (2/5)
  • GitHub Check: 🔨 Test UI (CE) / MongoDB 8.2 (4/4)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 5.0 (1/5)
  • GitHub Check: 🔨 Test UI (CE) / MongoDB 8.2 (2/4)
  • GitHub Check: 🔨 Test API (EE) / MongoDB 8.2 coverage (1/1)
  • GitHub Check: 🔨 Test UI (CE) / MongoDB 8.2 (3/4)
  • GitHub Check: 🔨 Test UI (CE) / MongoDB 8.2 (1/4)
  • GitHub Check: 🔨 Test API (EE) / MongoDB 5.0 (1/1)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 8.2 [legacy watchers] coverage (5/5)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 8.2 [legacy watchers] coverage (3/5)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 8.2 [legacy watchers] coverage (4/5)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 8.2 [legacy watchers] coverage (1/5)
  • GitHub Check: 🔨 Test API (CE) / MongoDB 8.2 (1/1)
  • GitHub Check: 🔨 Test Federation Matrix
🔇 Additional comments (14)
apps/meteor/client/views/omnichannel/components/CustomField.tsx (1)

1-3: Import migration to @rocket.chat/ui-client is correct and complete

The refactor cleanly switches InfoPanelField, InfoPanelLabel, and InfoPanelText to the shared @rocket.chat/ui-client package. The components are properly exported from packages/ui-client/src/components/InfoPanel/index.ts and re-exported at the package root via export * from './components', making the import valid. No remaining imports of these three components from the old path exist in the codebase.

packages/ui-client/src/components/index.ts (1)

23-23: LGTM! Clean barrel export addition.

The InfoPanel export follows the established pattern in this index file and properly exposes InfoPanel components through the public API.

apps/meteor/client/views/omnichannel/additionalForms/MaxChatsPerAgentDisplay.tsx (1)

1-1: LGTM! Import successfully migrated to ui-client package.

The import source change from local path to @rocket.chat/ui-client is clean and aligns with the PR's objective to centralize InfoPanel components.

apps/meteor/client/views/omnichannel/agents/AgentInfo.tsx (1)

8-10: LGTM! InfoPanel components properly migrated.

The import migration to @rocket.chat/ui-client is correct and maintains existing functionality.

apps/meteor/client/views/teams/contextualBar/info/TeamsInfo.tsx (1)

4-24: LGTM! Import reorganization completed successfully.

The migration of InfoPanel components to @rocket.chat/ui-client is clean. The import block is well-organized and all necessary components are properly sourced from the centralized package.

apps/meteor/client/views/omnichannel/directory/calls/contextualBar/InfoField.tsx (1)

1-1: LGTM! Import migrated correctly.

Clean migration of InfoPanel components to the centralized @rocket.chat/ui-client package.

apps/meteor/client/views/room/contextualBar/Info/RoomInfo/ABAC/RoomInfoABACSection.tsx (1)

3-3: LGTM! Import source updated correctly.

The migration to @rocket.chat/ui-client is clean and maintains existing functionality.

apps/meteor/client/components/UserInfo/UserInfo.tsx (1)

3-21: LGTM! Comprehensive import reorganization completed.

The migration successfully moves all InfoPanel components to @rocket.chat/ui-client while properly organizing the import block. The reorganization improves code maintainability without affecting functionality.

apps/meteor/client/views/omnichannel/directory/chats/ChatInfo/ChatInfo.tsx (1)

4-4: LGTM! Import consolidation successful.

The migration consolidates InfoPanel component imports into the @rocket.chat/ui-client package, improving import organization while maintaining existing functionality.

apps/meteor/client/views/omnichannel/directory/calls/contextualBar/VoipInfo.tsx (1)

12-16: InfoPanel imports correctly migrated to @rocket.chat/ui-client.

Importing InfoPanel and related components from the ui-client barrel keeps usage unchanged and aligns with the centralization goal; nothing else in this file needs adjustment.

apps/meteor/client/views/admin/deviceManagement/DeviceManagementInfo/DeviceManagementInfo.tsx (1)

10-14: Centralizing InfoPanel imports looks good.

Switching InfoPanel* to the @rocket.chat/ui-client barrel is consistent with the rest of the PR and keeps the component’s behavior intact in this file.

apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfoActions.tsx (1)

2-2: InfoPanelAction import migration is consistent and safe.

Using InfoPanelAction from @rocket.chat/ui-client matches the new pattern and doesn’t alter how RoomInfoActions renders its actions.

apps/meteor/client/views/room/contextualBar/Info/RoomInfo/RoomInfo.tsx (1)

21-25: InfoPanel and related imports correctly consolidated.

Importing all Contextualbar* and InfoPanel* pieces from @rocket.chat/ui-client, alongside the explicit useTranslation and RoomInfoActions imports, keeps RoomInfo behavior intact and aligns with the new barrel usage.

apps/meteor/client/components/InfoPanel/RetentionPolicyCallout.spec.tsx (1)

1-15: Story-driven, per-variant tests look solid.

Using composeStories with testCases to exercise each RetentionPolicyCallout story, plus per-story snapshots, is a good way to keep tests aligned with Storybook variants.

@codecov
Copy link

codecov bot commented Dec 4, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.78%. Comparing base (75bd3e4) to head (2130e68).
⚠️ Report is 8 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop   #37701      +/-   ##
===========================================
+ Coverage    67.89%   68.78%   +0.89%     
===========================================
  Files         3449     3362      -87     
  Lines       114020   114173     +153     
  Branches     20956    20612     -344     
===========================================
+ Hits         77410    78538    +1128     
+ Misses       34491    33537     -954     
+ Partials      2119     2098      -21     
Flag Coverage Δ
e2e 57.24% <ø> (-0.06%) ⬇️
e2e-api 42.20% <ø> (-0.98%) ⬇️

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.

@gabriellsh gabriellsh added the stat: QA assured Means it has been tested and approved by a company insider label Dec 4, 2025
Copy link
Member

@dougfabris dougfabris left a comment

Choose a reason for hiding this comment

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

LGTM!

@dougfabris dougfabris added stat: QA assured Means it has been tested and approved by a company insider and removed stat: QA assured Means it has been tested and approved by a company insider labels Dec 5, 2025
@dougfabris dougfabris added this to the 7.14.0 milestone Dec 5, 2025
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Dec 5, 2025
@dionisio-bot dionisio-bot bot removed the stat: ready to merge PR tested and approved waiting for merge label Dec 5, 2025
@dougfabris dougfabris added stat: QA assured Means it has been tested and approved by a company insider and removed stat: QA assured Means it has been tested and approved by a company insider labels Dec 5, 2025
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Dec 5, 2025
@kodiakhq kodiakhq bot merged commit e96bb84 into develop Dec 5, 2025
90 of 92 checks passed
@kodiakhq kodiakhq bot deleted the move/infoPanel branch December 5, 2025 15:04
@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