Skip to content

Conversation

@tassoevan
Copy link
Contributor

@tassoevan tassoevan commented Jan 13, 2026

Proposed changes (including videos or screenshots)

It enables the react/no-children-prop lint rule.

Issue(s)

Steps to test or reproduce

Further comments

Summary by CodeRabbit

  • Refactor

    • Updated React component syntax across the application to use standard JSX children notation instead of the explicit children prop, improving code consistency and maintainability.
  • Chores

    • Added ESLint rules to enforce React best practices for children prop usage going forward.

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

@tassoevan tassoevan added this to the 8.1.0 milestone Jan 13, 2026
@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Jan 13, 2026

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 Jan 13, 2026

⚠️ No Changeset found

Latest commit: fbafc28

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 Jan 13, 2026

Walkthrough

A systematic refactoring replacing the explicit children prop pattern with standard React children composition syntax across context providers, UI components, error boundaries, and test utilities throughout the codebase.

Changes

Cohort / File(s) Summary
Provider Components - Core
apps/meteor/client/providers/{AuthenticationProvider,AuthorizationProvider,AvatarUrlProvider,CustomSoundProvider,LayoutProvider,OmnichannelProvider,RouterProvider,ServerProvider,SessionProvider,SettingsProvider,UserProvider,AppsProvider}.tsx
Refactored all context providers to nest children as JSX content instead of passing via children prop
Provider Components - Specialized
apps/meteor/client/providers/{AttachmentProvider,ToastMessagesProvider,TranslationProvider}.tsx
Updated context provider rendering to use nested children pattern; ToastMessagesProvider updated multiple nested providers
Error Boundaries & Portals
apps/meteor/client/sidebar/header/MatrixFederationSearch/FederatedRoomListErrorBoundary.tsx, apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardCardErrorBoundary.tsx, apps/meteor/client/sidebar/hooks/useRoomList.spec.tsx, apps/meteor/client/views/room/MessageList/MessageListErrorBoundary.tsx, apps/meteor/client/portals/SidebarPortal/index.tsx
Changed error boundary and portal components from children prop to nested child rendering
UI Components - Buttons & Tags
apps/meteor/client/components/{PageSkeleton,UserCard/UserCardRole,UserInfo/UserInfoABACAttribute}.tsx, apps/meteor/client/views/admin/settings/{SettingsGroupPage,SettingsSection}/\*
Updated button and tag components to render labels as nested children
UI Components - Message & Attachments
apps/meteor/client/components/message/content/attachments/structure/AttachmentBlock.tsx
Changed Box rendering to use nested children pattern
Home Cards
apps/meteor/client/views/home/cards/{AddUsersCard,CreateChannelsCard,DesktopAppsCard,DocumentationCard,JoinRoomsCard,MobileAppsCard}.tsx
Updated GenericCardButton usage to render labels as JSX children instead of prop
Admin Views - Engagement Dashboard
apps/meteor/client/views/admin/engagementDashboard/{EngagementDashboardPage.stories,channels/ChannelsTab.stories,dataView/LegendSymbol.stories,messages/MessagesTab.stories,users/UsersTab.stories}.tsx
Updated story decorators using Margins to nest children as JSX content
Admin Views - Other
apps/meteor/client/views/admin/{customUserStatus/CustomUserStatusDisabledModal,engagementDashboard/EngagementDashboardPage.stories,invites/InvitesPage,settings/groups/LDAPGroupPage}.tsx
Updated GenericModal and button usage to nest children; refactored confirmation dialogs
Room & Modals
apps/meteor/client/views/room/{modals/DeleteMessageConfirmModal,providers/ComposerPopupProvider,MessageList/MessageListErrorBoundary}.tsx
Updated modal and provider components to use nested children
Root & Auth Views
apps/meteor/client/views/root/MainLayout/{AuthenticationCheck,LoginPage}.tsx
Changed RegistrationRoute to accept nested children
Omnichannel Views
apps/meteor/client/views/omnichannel/{directory/providers/ChatsProvider,modals/ForwardChatModal}.tsx
Updated provider and divider components to use nested children
Story & Mock Components
apps/meteor/client/stories/contexts/{ModalContextMock,RouterContextMock,ServerContextMock,TranslationContextMock}.tsx, apps/meteor/tests/mocks/client/{FakeChatProvider,ModalContextMock,ServerProviderMock}.tsx
Updated all mock context providers and story utilities to use nested children
Test Utilities
apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.spec.tsx
Changed QueryClientProvider test wrapper to use nested children
UIKit Playground Components
apps/uikit-playground/src/Components/{Draggable/DraggableList,NavBar/BurgerIcon/Wrapper,Templates/Container/{Container,Section},ToggleTabs/index,navMenu/Menu/Wrapper}.tsx
Refactored components to render children as JSX content; added React list keys; relocated memo wrapper
PDF Worker Components
ee/packages/pdf-worker/src/templates/ChatTranscript/markup/{blocks/{OrderedListBlock,ParagraphBlock,UnorderedListBlock},elements/{BoldSpan,InlineElements,ItalicSpan,LinkSpan,StrikeSpan}}.tsx
Updated InlineElements and span components to accept nested children
Gazzodown Markup Components
packages/gazzodown/src/{Markup,PreviewMarkup,blocks/{OrderedListBlock,ParagraphBlock,QuoteBlock,TaskListBlock,UnorderedListBlock},elements/{BoldSpan,InlineElements,ItalicSpan,LinkSpan,PreviewInlineElements,StrikeSpan},katex/KatexErrorBoundary}.tsx
Systematically converted markup and element rendering to use nested children pattern
Livechat Components
packages/livechat/src/components/{Messages/MessageBlocks/stories,uiKit/message/{ActionsBlock.stories,Block,ButtonElement/{index,stories},ContextBlock.stories,DividerBlock.stories,ImageBlock/{stories,index},SectionBlock.stories,Surface},providers/ServerProvider}.tsx
Updated livechat message blocks and providers to use nested children; refactored decorators
UI Client Components
packages/ui-client/src/components/{AnchorPortal.spec,Modal/ModalBackdrop,Page/Page.stories}.tsx, packages/ui-client/src/providers/ModalProvider/ModalProvider.tsx
Updated modal and portal components to render children as JSX content; updated test assertions
Shared UI Components
packages/web-ui-registration/src/LoginServices.tsx, packages/fuselage-ui-kit/.storybook/preview.tsx
Refactored Divider and QueryClientProvider decorators to use nested children
ESLint Configuration
packages/eslint-config/react.js, packages/livechat/.eslintrc.json, apps/uikit-playground/.eslintrc.json, apps/uikit-playground/package.json
Added react/no-children-prop ESLint rule enforcement and installed eslint-plugin-react

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 From props to nests, a children's delight,
The rabbit refactored from morning to night,
Each context now cozier, wrapped up just right,
No more explicit children in sight!
hop hop

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: enabling the ESLint rule react/no-children-prop. The summary confirms the changeset primarily involves enabling this rule and refactoring code to comply with it.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 refactor/no-children-prop

🧹 Recent nitpick comments
packages/gazzodown/src/blocks/TaskListBlock.tsx (1)

13-13: Nitpick: Typo in component name.

Pre-existing issue, but since you're touching this file: TaksListBlockTaskListBlock.

✏️ Suggested fix
-const TaksListBlock = ({ tasks }: TaskListBlockProps): ReactElement => {
+const TaskListBlock = ({ tasks }: TaskListBlockProps): ReactElement => {

Also update the export on line 27:

-export default TaksListBlock;
+export default TaskListBlock;

📜 Recent review details

Configuration used: Organization 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 6d41283 and fbafc28.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (104)
  • apps/meteor/client/components/PageSkeleton.tsx
  • apps/meteor/client/components/UserCard/UserCardRole.tsx
  • apps/meteor/client/components/UserInfo/UserInfoABACAttribute.tsx
  • apps/meteor/client/components/message/content/attachments/structure/AttachmentBlock.tsx
  • apps/meteor/client/portals/SidebarPortal/index.tsx
  • apps/meteor/client/providers/AppsProvider.tsx
  • apps/meteor/client/providers/AttachmentProvider.tsx
  • apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx
  • apps/meteor/client/providers/AuthorizationProvider.tsx
  • apps/meteor/client/providers/AvatarUrlProvider.tsx
  • apps/meteor/client/providers/CustomSoundProvider/CustomSoundProvider.tsx
  • apps/meteor/client/providers/LayoutProvider.tsx
  • apps/meteor/client/providers/OmnichannelProvider.tsx
  • apps/meteor/client/providers/RouterProvider.tsx
  • apps/meteor/client/providers/ServerProvider.tsx
  • apps/meteor/client/providers/SessionProvider.tsx
  • apps/meteor/client/providers/SettingsProvider.tsx
  • apps/meteor/client/providers/ToastMessagesProvider.tsx
  • apps/meteor/client/providers/TranslationProvider.tsx
  • apps/meteor/client/providers/UserProvider/UserProvider.tsx
  • apps/meteor/client/sidebar/header/MatrixFederationSearch/FederatedRoomListErrorBoundary.tsx
  • apps/meteor/client/sidebar/hooks/useRoomList.spec.tsx
  • apps/meteor/client/stories/contexts/ModalContextMock.tsx
  • apps/meteor/client/stories/contexts/RouterContextMock.tsx
  • apps/meteor/client/stories/contexts/ServerContextMock.tsx
  • apps/meteor/client/stories/contexts/TranslationContextMock.tsx
  • apps/meteor/client/views/admin/customUserStatus/CustomUserStatusDisabledModal.tsx
  • apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardCardErrorBoundary.tsx
  • apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardPage.stories.tsx
  • apps/meteor/client/views/admin/engagementDashboard/channels/ChannelsTab.stories.tsx
  • apps/meteor/client/views/admin/engagementDashboard/dataView/LegendSymbol.stories.tsx
  • apps/meteor/client/views/admin/engagementDashboard/messages/MessagesTab.stories.tsx
  • apps/meteor/client/views/admin/engagementDashboard/users/UsersTab.stories.tsx
  • apps/meteor/client/views/admin/invites/InvitesPage.tsx
  • apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPage.tsx
  • apps/meteor/client/views/admin/settings/SettingsSection/SettingsSection.tsx
  • apps/meteor/client/views/admin/settings/groups/LDAPGroupPage.tsx
  • apps/meteor/client/views/home/cards/AddUsersCard.tsx
  • apps/meteor/client/views/home/cards/CreateChannelsCard.tsx
  • apps/meteor/client/views/home/cards/DesktopAppsCard.tsx
  • apps/meteor/client/views/home/cards/DocumentationCard.tsx
  • apps/meteor/client/views/home/cards/JoinRoomsCard.tsx
  • apps/meteor/client/views/home/cards/MobileAppsCard.tsx
  • apps/meteor/client/views/omnichannel/directory/providers/ChatsProvider.tsx
  • apps/meteor/client/views/omnichannel/modals/ForwardChatModal.tsx
  • apps/meteor/client/views/room/MessageList/MessageListErrorBoundary.tsx
  • apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.spec.tsx
  • apps/meteor/client/views/room/modals/DeleteMessageConfirmModal/DeleteMessageConfirmModal.tsx
  • apps/meteor/client/views/room/providers/ComposerPopupProvider.tsx
  • apps/meteor/client/views/root/MainLayout/AuthenticationCheck.tsx
  • apps/meteor/client/views/root/MainLayout/LoginPage.tsx
  • apps/meteor/tests/mocks/client/FakeChatProvider.tsx
  • apps/meteor/tests/mocks/client/ModalContextMock.tsx
  • apps/meteor/tests/mocks/client/ServerProviderMock.tsx
  • apps/uikit-playground/.eslintrc.json
  • apps/uikit-playground/package.json
  • apps/uikit-playground/src/Components/Draggable/DraggableList.tsx
  • apps/uikit-playground/src/Components/NavBar/BurgerIcon/Wrapper.tsx
  • apps/uikit-playground/src/Components/Templates/Container/Container.tsx
  • apps/uikit-playground/src/Components/Templates/Container/Section.tsx
  • apps/uikit-playground/src/Components/ToggleTabs/index.tsx
  • apps/uikit-playground/src/Components/navMenu/Menu/Wrapper.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/OrderedListBlock.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/ParagraphBlock.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/UnorderedListBlock.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/BoldSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/InlineElements.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/ItalicSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/LinkSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/StrikeSpan.tsx
  • packages/eslint-config/react.js
  • packages/fuselage-ui-kit/.storybook/preview.tsx
  • packages/gazzodown/src/Markup.tsx
  • packages/gazzodown/src/PreviewMarkup.tsx
  • packages/gazzodown/src/blocks/OrderedListBlock.tsx
  • packages/gazzodown/src/blocks/ParagraphBlock.tsx
  • packages/gazzodown/src/blocks/QuoteBlock.tsx
  • packages/gazzodown/src/blocks/TaskListBlock.tsx
  • packages/gazzodown/src/blocks/UnorderedListBlock.tsx
  • packages/gazzodown/src/elements/BoldSpan.tsx
  • packages/gazzodown/src/elements/InlineElements.tsx
  • packages/gazzodown/src/elements/ItalicSpan.tsx
  • packages/gazzodown/src/elements/LinkSpan.tsx
  • packages/gazzodown/src/elements/PreviewInlineElements.tsx
  • packages/gazzodown/src/elements/StrikeSpan.tsx
  • packages/gazzodown/src/katex/KatexErrorBoundary.tsx
  • packages/livechat/.eslintrc.json
  • packages/livechat/src/components/Messages/MessageBlocks/stories.tsx
  • packages/livechat/src/components/uiKit/message/ActionsBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/Block.tsx
  • packages/livechat/src/components/uiKit/message/ButtonElement/index.tsx
  • packages/livechat/src/components/uiKit/message/ButtonElement/stories.tsx
  • packages/livechat/src/components/uiKit/message/ContextBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/DividerBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/ImageBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/ImageBlock/index.tsx
  • packages/livechat/src/components/uiKit/message/SectionBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/Surface.tsx
  • packages/livechat/src/providers/ServerProvider.tsx
  • packages/ui-client/src/components/AnchorPortal.spec.tsx
  • packages/ui-client/src/components/Modal/ModalBackdrop.tsx
  • packages/ui-client/src/components/Page/Page.stories.tsx
  • packages/ui-client/src/providers/ModalProvider/ModalProvider.tsx
  • packages/web-ui-registration/src/LoginServices.tsx
🚧 Files skipped from review as they are similar to previous changes (60)
  • packages/gazzodown/src/blocks/ParagraphBlock.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/StrikeSpan.tsx
  • apps/meteor/client/components/UserCard/UserCardRole.tsx
  • apps/uikit-playground/package.json
  • packages/gazzodown/src/Markup.tsx
  • packages/gazzodown/src/PreviewMarkup.tsx
  • apps/meteor/client/views/root/MainLayout/LoginPage.tsx
  • packages/ui-client/src/components/Page/Page.stories.tsx
  • apps/meteor/client/providers/CustomSoundProvider/CustomSoundProvider.tsx
  • packages/livechat/src/components/uiKit/message/DividerBlock.stories.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/ParagraphBlock.tsx
  • packages/livechat/src/components/uiKit/message/Block.tsx
  • apps/uikit-playground/src/Components/navMenu/Menu/Wrapper.tsx
  • apps/meteor/client/stories/contexts/TranslationContextMock.tsx
  • apps/meteor/client/views/room/modals/DeleteMessageConfirmModal/DeleteMessageConfirmModal.tsx
  • apps/meteor/client/views/admin/engagementDashboard/messages/MessagesTab.stories.tsx
  • apps/meteor/client/providers/AuthorizationProvider.tsx
  • packages/livechat/src/components/uiKit/message/ButtonElement/stories.tsx
  • apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardCardErrorBoundary.tsx
  • apps/uikit-playground/src/Components/Templates/Container/Container.tsx
  • packages/gazzodown/src/elements/StrikeSpan.tsx
  • apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardPage.stories.tsx
  • packages/ui-client/src/components/AnchorPortal.spec.tsx
  • packages/gazzodown/src/elements/InlineElements.tsx
  • apps/meteor/client/providers/AttachmentProvider.tsx
  • apps/meteor/client/views/admin/settings/SettingsSection/SettingsSection.tsx
  • apps/meteor/client/views/admin/engagementDashboard/dataView/LegendSymbol.stories.tsx
  • packages/livechat/src/components/uiKit/message/Surface.tsx
  • apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx
  • packages/gazzodown/src/blocks/UnorderedListBlock.tsx
  • apps/meteor/client/providers/LayoutProvider.tsx
  • packages/livechat/src/components/uiKit/message/ButtonElement/index.tsx
  • apps/uikit-playground/src/Components/ToggleTabs/index.tsx
  • apps/meteor/tests/mocks/client/ModalContextMock.tsx
  • apps/meteor/client/views/room/MessageList/MessageListErrorBoundary.tsx
  • packages/gazzodown/src/elements/PreviewInlineElements.tsx
  • packages/eslint-config/react.js
  • packages/gazzodown/src/blocks/OrderedListBlock.tsx
  • apps/meteor/tests/mocks/client/FakeChatProvider.tsx
  • apps/meteor/client/views/admin/engagementDashboard/channels/ChannelsTab.stories.tsx
  • apps/meteor/client/stories/contexts/ModalContextMock.tsx
  • apps/meteor/client/providers/OmnichannelProvider.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/UnorderedListBlock.tsx
  • packages/ui-client/src/providers/ModalProvider/ModalProvider.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/InlineElements.tsx
  • apps/meteor/client/providers/UserProvider/UserProvider.tsx
  • apps/meteor/client/views/home/cards/DesktopAppsCard.tsx
  • apps/uikit-playground/.eslintrc.json
  • apps/meteor/client/views/omnichannel/modals/ForwardChatModal.tsx
  • packages/gazzodown/src/blocks/QuoteBlock.tsx
  • apps/uikit-playground/src/Components/Draggable/DraggableList.tsx
  • apps/meteor/client/views/admin/engagementDashboard/users/UsersTab.stories.tsx
  • apps/meteor/client/stories/contexts/RouterContextMock.tsx
  • packages/web-ui-registration/src/LoginServices.tsx
  • packages/livechat/.eslintrc.json
  • apps/meteor/client/views/home/cards/JoinRoomsCard.tsx
  • packages/fuselage-ui-kit/.storybook/preview.tsx
  • apps/meteor/client/sidebar/header/MatrixFederationSearch/FederatedRoomListErrorBoundary.tsx
  • apps/uikit-playground/src/Components/NavBar/BurgerIcon/Wrapper.tsx
  • apps/meteor/client/components/PageSkeleton.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/room/providers/ComposerPopupProvider.tsx
  • packages/livechat/src/components/Messages/MessageBlocks/stories.tsx
  • packages/livechat/src/components/uiKit/message/ActionsBlock.stories.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/LinkSpan.tsx
  • apps/meteor/client/providers/SettingsProvider.tsx
  • apps/meteor/client/stories/contexts/ServerContextMock.tsx
  • apps/meteor/client/views/home/cards/MobileAppsCard.tsx
  • packages/ui-client/src/components/Modal/ModalBackdrop.tsx
  • apps/meteor/client/views/omnichannel/directory/providers/ChatsProvider.tsx
  • packages/gazzodown/src/blocks/TaskListBlock.tsx
  • apps/meteor/client/views/admin/invites/InvitesPage.tsx
  • apps/meteor/tests/mocks/client/ServerProviderMock.tsx
  • apps/meteor/client/components/message/content/attachments/structure/AttachmentBlock.tsx
  • packages/livechat/src/providers/ServerProvider.tsx
  • packages/livechat/src/components/uiKit/message/ImageBlock/index.tsx
  • apps/meteor/client/portals/SidebarPortal/index.tsx
  • packages/gazzodown/src/elements/ItalicSpan.tsx
  • apps/meteor/client/sidebar/hooks/useRoomList.spec.tsx
  • apps/meteor/client/providers/SessionProvider.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/OrderedListBlock.tsx
  • apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPage.tsx
  • packages/gazzodown/src/katex/KatexErrorBoundary.tsx
  • apps/meteor/client/providers/AvatarUrlProvider.tsx
  • apps/meteor/client/providers/AppsProvider.tsx
  • apps/meteor/client/providers/RouterProvider.tsx
  • apps/meteor/client/components/UserInfo/UserInfoABACAttribute.tsx
  • apps/meteor/client/views/admin/settings/groups/LDAPGroupPage.tsx
  • apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.spec.tsx
  • apps/uikit-playground/src/Components/Templates/Container/Section.tsx
  • apps/meteor/client/views/home/cards/DocumentationCard.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/BoldSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/ItalicSpan.tsx
  • packages/livechat/src/components/uiKit/message/SectionBlock.stories.tsx
  • apps/meteor/client/views/home/cards/CreateChannelsCard.tsx
  • packages/livechat/src/components/uiKit/message/ContextBlock.stories.tsx
  • apps/meteor/client/providers/ToastMessagesProvider.tsx
  • apps/meteor/client/providers/ServerProvider.tsx
  • apps/meteor/client/providers/TranslationProvider.tsx
  • apps/meteor/client/views/root/MainLayout/AuthenticationCheck.tsx
  • packages/gazzodown/src/elements/LinkSpan.tsx
  • packages/livechat/src/components/uiKit/message/ImageBlock.stories.tsx
  • apps/meteor/client/views/home/cards/AddUsersCard.tsx
  • packages/gazzodown/src/elements/BoldSpan.tsx
  • apps/meteor/client/views/admin/customUserStatus/CustomUserStatusDisabledModal.tsx
🧠 Learnings (3)
📚 Learning: 2025-10-30T19:30:46.541Z
Learnt from: MartinSchoeler
Repo: RocketChat/Rocket.Chat PR: 37244
File: apps/meteor/client/views/admin/ABAC/AdminABACRoomAttributesForm.spec.tsx:125-146
Timestamp: 2025-10-30T19:30:46.541Z
Learning: In the AdminABACRoomAttributesForm component (apps/meteor/client/views/admin/ABAC/AdminABACRoomAttributesForm.tsx), the first attribute value field is mandatory and does not have a Remove button. Only additional values beyond the first have Remove buttons. This means trashButtons[0] corresponds to the second value's Remove button, not the first value's.

Applied to files:

  • apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPage.tsx
  • apps/meteor/client/components/UserInfo/UserInfoABACAttribute.tsx
📚 Learning: 2025-12-10T21:00:54.909Z
Learnt from: KevLehman
Repo: RocketChat/Rocket.Chat PR: 37091
File: ee/packages/abac/jest.config.ts:4-7
Timestamp: 2025-12-10T21:00:54.909Z
Learning: Rocket.Chat monorepo: Jest testMatch pattern '<rootDir>/src/**/*.spec.(ts|js|mjs)' is valid in this repo and used across multiple packages (e.g., packages/tools, ee/packages/omnichannel-services). Do not flag it as invalid in future reviews.

Applied to files:

  • apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.spec.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:

  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/BoldSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/ItalicSpan.tsx
🧬 Code graph analysis (8)
apps/meteor/client/providers/SettingsProvider.tsx (1)
packages/ui-contexts/src/index.ts (1)
  • SettingsContext (12-12)
apps/meteor/client/providers/SessionProvider.tsx (1)
packages/ui-contexts/src/index.ts (1)
  • SessionContext (11-11)
apps/meteor/client/providers/AvatarUrlProvider.tsx (1)
packages/ui-contexts/src/index.ts (1)
  • AvatarUrlContext (4-4)
apps/meteor/client/providers/AppsProvider.tsx (1)
apps/meteor/client/contexts/AppsContext.tsx (1)
  • AppsContext (29-29)
apps/meteor/client/providers/RouterProvider.tsx (1)
packages/ui-contexts/src/RouterContext.ts (1)
  • RouterContext (79-107)
apps/meteor/client/views/admin/settings/groups/LDAPGroupPage.tsx (1)
packages/livechat/src/components/uiKit/message/ActionsBlock.stories.tsx (1)
  • Button (153-169)
apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.spec.tsx (1)
packages/mock-providers/src/MockedAppRootBuilder.tsx (1)
  • queryClient (270-280)
apps/meteor/client/providers/ServerProvider.tsx (1)
packages/ui-contexts/src/ServerContext.ts (1)
  • ServerContext (57-79)
⏰ 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). (3)
  • GitHub Check: 📦 Build Packages
  • GitHub Check: CodeQL-Build
  • GitHub Check: CodeQL-Build
🔇 Additional comments (46)
apps/meteor/client/components/message/content/attachments/structure/AttachmentBlock.tsx (1)

11-21: LGTM — JSX children composition aligns with react/no-children-prop.

packages/livechat/src/components/uiKit/message/SectionBlock.stories.tsx (1)

15-25: LGTM — children rendered inline for decorators and Surface.

Consistent with react/no-children-prop and preserves the story rendering flow.

apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPage.tsx (1)

166-168: JSX children usage looks good.

Keeps behavior intact and aligns with the no-children-prop rule.

apps/meteor/client/views/admin/settings/groups/LDAPGroupPage.tsx (1)

141-149: JSX children conversion is consistent.

Matches the lint rule intent without changing click/disabled behavior.

apps/meteor/client/views/admin/invites/InvitesPage.tsx (1)

64-66: LGTM!

The refactoring correctly moves the modal content from a children prop to standard JSX children composition, aligning with the react/no-children-prop ESLint rule enablement.

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

7-9: LGTM!

Clean refactor from explicit children prop to standard JSX children composition, aligning with the react/no-children-prop ESLint rule.

apps/meteor/client/views/home/cards/MobileAppsCard.tsx (1)

21-26: LGTM — children now nested for rule compliance.

Matches the react/no-children-prop expectation without altering behavior.

apps/meteor/client/views/home/cards/AddUsersCard.tsx (1)

19-23: LGTM — children now nested for rule compliance.

No functional changes; aligns with the eslint rule intent.

apps/meteor/client/views/home/cards/CreateChannelsCard.tsx (1)

18-22: LGTM — children now nested for rule compliance.

Keeps the same behavior while satisfying the lint rule.

apps/meteor/client/views/home/cards/DocumentationCard.tsx (1)

19-23: LGTM — children now nested for rule compliance.

No behavior change; consistent with the refactor goal.

packages/ui-client/src/components/Modal/ModalBackdrop.tsx (1)

92-94: LGTM!

Clean refactor from explicit children prop to standard JSX children composition. This aligns with the react/no-children-prop ESLint rule being enabled and follows idiomatic React patterns.

packages/livechat/src/components/Messages/MessageBlocks/stories.tsx (1)

13-13: LGTM!

Clean refactor from explicit children prop to standard JSX children composition. This aligns with the react/no-children-prop ESLint rule and follows idiomatic React/Preact patterns.

apps/meteor/client/views/admin/customUserStatus/CustomUserStatusDisabledModal.tsx (1)

18-24: LGTM!

Clean refactor from children prop to standard JSX children syntax in both the admin and non-admin modal branches. This properly aligns with the react/no-children-prop ESLint rule being enabled.

packages/gazzodown/src/elements/BoldSpan.tsx (1)

59-63: LGTM: JSX children usage aligns with rule.
This change conforms to react/no-children-prop without altering render behavior.

packages/gazzodown/src/elements/ItalicSpan.tsx (1)

59-64: LGTM: consistent children composition.
Refactor matches react/no-children-prop and preserves rendering.

ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/OrderedListBlock.tsx (1)

27-27: LGTM: JSX children use is correct here.
Change aligns with ESLint rule and keeps output the same.

packages/gazzodown/src/elements/LinkSpan.tsx (1)

31-38: LGTM: children composition refactor is safe.
This keeps rendering intact while satisfying react/no-children-prop.

ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/ItalicSpan.tsx (1)

50-54: LGTM: JSX children refactor is correct.
Matches the rule enablement and preserves behavior.

ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/BoldSpan.tsx (1)

50-54: LGTM — aligns with react/no-children-prop.

Clean switch to nested children while preserving the render behavior.

ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/LinkSpan.tsx (1)

23-28: LGTM — consistent nested-children usage.

This keeps output the same and satisfies the new lint rule.

packages/livechat/src/components/uiKit/message/ActionsBlock.stories.tsx (1)

12-24: LGTM!

The decorators are correctly refactored to use nested JSX children instead of the explicit children prop, aligning with the react/no-children-prop ESLint rule being enabled in this PR.

packages/livechat/src/components/uiKit/message/ImageBlock/index.tsx (1)

72-81: LGTM!

The anchor element correctly renders imageUrl as nested content. Since the link uses background-image for visual display, this text serves as accessible fallback content. The refactor properly converts to nested JSX children syntax.

packages/livechat/src/components/uiKit/message/ContextBlock.stories.tsx (1)

11-11: LGTM!

The decorator is correctly refactored to use nested JSX children instead of the explicit children prop.

packages/livechat/src/components/uiKit/message/ImageBlock.stories.tsx (1)

11-11: LGTM!

The decorator is correctly refactored to use nested JSX children instead of the explicit children prop, consistent with the other story files in this PR.

packages/gazzodown/src/blocks/TaskListBlock.tsx (1)

20-20: LGTM!

The refactor correctly replaces the explicit children prop with standard JSX children composition syntax, aligning with the react/no-children-prop ESLint rule.

packages/livechat/src/providers/ServerProvider.tsx (1)

158-158: LGTM!

The refactor from the children prop to nested children syntax correctly aligns with the react/no-children-prop ESLint rule and follows idiomatic React/Preact patterns.

apps/meteor/client/views/omnichannel/directory/providers/ChatsProvider.tsx (1)

48-48: LGTM!

The refactor correctly adopts nested children syntax, complying with the react/no-children-prop rule.

apps/meteor/client/views/room/providers/ComposerPopupProvider.tsx (1)

405-405: LGTM!

The refactor to nested children syntax is correct and maintains the existing provider functionality.

apps/meteor/client/providers/ServerProvider.tsx (1)

107-107: LGTM!

The refactor correctly adopts the standard React nested children pattern for the ServerContext.Provider.

apps/meteor/client/providers/SessionProvider.tsx (1)

18-20: LGTM!

Clean refactor to nested children syntax with an implicit arrow function return. The change correctly aligns with the react/no-children-prop ESLint rule.

apps/meteor/client/providers/SettingsProvider.tsx (1)

124-124: LGTM!

The refactor correctly converts from children prop to nested children syntax, aligning with the react/no-children-prop ESLint rule and standard React conventions.

apps/meteor/client/providers/AvatarUrlProvider.tsx (1)

37-37: LGTM!

Correctly adopts the nested children pattern for the context provider.

apps/meteor/tests/mocks/client/ServerProviderMock.tsx (1)

86-86: LGTM!

Test mock correctly updated to use nested children syntax, maintaining consistency with the production providers.

apps/meteor/client/stories/contexts/ServerContextMock.tsx (1)

184-184: LGTM!

Storybook mock correctly updated to use the standard nested children pattern.

apps/meteor/client/views/root/MainLayout/AuthenticationCheck.tsx (1)

32-32: LGTM!

Correctly converts RegistrationRoute to use nested children syntax, consistent with the PR-wide refactor.

apps/meteor/client/providers/AppsProvider.tsx (1)

10-11: Looks good — children nesting is the right pattern.

apps/meteor/client/providers/RouterProvider.tsx (1)

14-14: LGTM — standard children composition.

apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.spec.tsx (1)

28-32: Good update to nested children in test wrapper.

apps/meteor/client/sidebar/hooks/useRoomList.spec.tsx (1)

79-88: Looks good — provider now nests children.

apps/meteor/client/portals/SidebarPortal/index.tsx (1)

9-15: LGTM — consistent children nesting across portals.

apps/meteor/client/providers/TranslationProvider.tsx (2)

246-249: Good switch to nested children for TranslationProviderInner.

Aligns with react/no-children-prop and standard React composition.


289-289: Provider children nesting looks correct.

Consistent with React conventions and the lint rule intent.

apps/meteor/client/providers/ToastMessagesProvider.tsx (2)

74-74: Context provider nesting is correct.

Fits react/no-children-prop with no behavior change.


82-85: ToastMessageInnerProvider nesting is clean.

Standard JSX composition; lint-friendly.

apps/uikit-playground/src/Components/Templates/Container/Section.tsx (1)

22-24: LGTM!

Adding key={i} to the mapped Payload components is the correct approach for React list rendering. Using index as key is acceptable here since the payloads appear to be static template data that won't be reordered or filtered dynamically.

packages/gazzodown/src/katex/KatexErrorBoundary.tsx (1)

16-20: LGTM!

The refactor correctly moves from passing children as a prop to nesting children within the ErrorBoundary element. This aligns with the react/no-children-prop ESLint rule and follows idiomatic React patterns.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


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.

@codecov
Copy link

codecov bot commented Jan 13, 2026

Codecov Report

❌ Patch coverage is 54.68750% with 29 lines in your changes missing coverage. Please review.
✅ Project coverage is 70.63%. Comparing base (58cd4ce) to head (fbafc28).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop   #38170      +/-   ##
===========================================
- Coverage    70.64%   70.63%   -0.01%     
===========================================
  Files         3133     3133              
  Lines       108371   108369       -2     
  Branches     19491    19496       +5     
===========================================
- Hits         76557    76549       -8     
- Misses       29816    29825       +9     
+ Partials      1998     1995       -3     
Flag Coverage Δ
e2e 60.26% <58.62%> (-0.09%) ⬇️
e2e-api 47.35% <ø> (+0.06%) ⬆️
unit 71.71% <50.00%> (+0.01%) ⬆️

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.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 13, 2026

📦 Docker Image Size Report

➡️ Changes

Service Current Baseline Change Percent
sum of all images 0B 0B 0B
account-service 0B 0B 0B
authorization-service 0B 0B 0B
ddp-streamer-service 0B 0B 0B
omnichannel-transcript-service 0B 0B 0B
presence-service 0B 0B 0B
queue-worker-service 0B 0B 0B
rocketchat 0B 0B 0B

📊 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/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 21:56", "12/12 22:45", "12/13 01:34", "12/15 22:31", "12/16 22:18", "12/17 21:04", "12/18 23:12", "12/19 23:27", "12/20 21:03", "12/22 18:54", "12/23 16:16", "12/24 19:38", "12/25 17:51", "12/26 13:18", "12/29 19:01", "12/30 20:52", "01/16 01:44 (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, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.00]
  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, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.00]
  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, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.00]
  line "omnichannel-transcript-service" [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, 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, 0.00]
  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, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.00]
  line "queue-worker-service" [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, 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, 0.00]
  line "rocketchat" [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.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.34, 0.34, 0.00]
Loading

Statistics (last 30 days):

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

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

  • Tag: pr-38170
  • Baseline: develop
  • Timestamp: 2026-01-16 01:44:20 UTC
  • Historical data points: 30

Updated: Fri, 16 Jan 2026 01:44:20 GMT

@tassoevan tassoevan marked this pull request as ready for review January 13, 2026 21:34
@tassoevan tassoevan requested review from a team as code owners January 13, 2026 21:34
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 105 files

Note: This PR contains a large number of files. cubic only reviews up to 75 files per PR, so some files may not have been reviewed.

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
apps/meteor/client/views/room/providers/ComposerPopupProvider.tsx (3)

227-237: Fix incorrect emoji data lookup.

Line 229 uses collection[key] but should use collection[_id]. The variable key is the filter pattern (:${filter}), not the emoji identifier. This causes all emojis to receive the same (likely undefined) data.

🐛 Proposed fix
 return Object.keys(collection)
   .map((_id) => {
-    const data = collection[key];
+    const data = collection[_id];
     return { _id, data };
   })

284-294: Fix incorrect emoji data lookup (duplicate bug).

Line 286 has the same issue as line 229 - uses collection[key] instead of collection[_id], causing incorrect emoji data.

🐛 Proposed fix
 return Object.keys(collection)
   .map((_id) => {
-    const data = collection[key];
+    const data = collection[_id];
     return { _id, data };
   })

256-276: Fix variable assignment in emoji sort function.

Line 258 incorrectly assigns idB = a._id instead of idB = b._id, causing the sort comparison to be meaningless since both variables would have the same base value.

🐛 Proposed fix
 const emojiSort = (recents: string[]) => (a: { _id: string }, b: { _id: string }) => {
   let idA = a._id;
-  let idB = a._id;
+  let idB = b._id;
🧹 Nitpick comments (1)
apps/uikit-playground/src/Components/Templates/Container/Container.tsx (1)

9-9: Consider using a stable identifier for the key prop.

Using array index as a key works for static lists but can cause issues if items are reordered or filtered. If templateType has a unique identifier (e.g., template.id or template.name), prefer using that instead.

♻️ Suggested improvement (if template has unique id)
-      templates.map((template, i) => <Section key={i} template={template} index={i} />)}
+      templates.map((template, i) => <Section key={template.id ?? i} template={template} index={i} />)}
📜 Review details

Configuration used: Organization 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 7bd5853 and 6d41283.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (104)
  • apps/meteor/client/components/PageSkeleton.tsx
  • apps/meteor/client/components/UserCard/UserCardRole.tsx
  • apps/meteor/client/components/UserInfo/UserInfoABACAttribute.tsx
  • apps/meteor/client/components/message/content/attachments/structure/AttachmentBlock.tsx
  • apps/meteor/client/portals/SidebarPortal/index.tsx
  • apps/meteor/client/providers/AppsProvider/AppsProvider.tsx
  • apps/meteor/client/providers/AttachmentProvider.tsx
  • apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx
  • apps/meteor/client/providers/AuthorizationProvider.tsx
  • apps/meteor/client/providers/AvatarUrlProvider.tsx
  • apps/meteor/client/providers/CustomSoundProvider/CustomSoundProvider.tsx
  • apps/meteor/client/providers/LayoutProvider.tsx
  • apps/meteor/client/providers/OmnichannelProvider.tsx
  • apps/meteor/client/providers/RouterProvider.tsx
  • apps/meteor/client/providers/ServerProvider.tsx
  • apps/meteor/client/providers/SessionProvider.tsx
  • apps/meteor/client/providers/SettingsProvider.tsx
  • apps/meteor/client/providers/ToastMessagesProvider.tsx
  • apps/meteor/client/providers/TranslationProvider.tsx
  • apps/meteor/client/providers/UserProvider/UserProvider.tsx
  • apps/meteor/client/sidebar/header/MatrixFederationSearch/FederatedRoomListErrorBoundary.tsx
  • apps/meteor/client/sidebar/hooks/useRoomList.spec.tsx
  • apps/meteor/client/stories/contexts/ModalContextMock.tsx
  • apps/meteor/client/stories/contexts/RouterContextMock.tsx
  • apps/meteor/client/stories/contexts/ServerContextMock.tsx
  • apps/meteor/client/stories/contexts/TranslationContextMock.tsx
  • apps/meteor/client/views/admin/customUserStatus/CustomUserStatusDisabledModal.tsx
  • apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardCardErrorBoundary.tsx
  • apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardPage.stories.tsx
  • apps/meteor/client/views/admin/engagementDashboard/channels/ChannelsTab.stories.tsx
  • apps/meteor/client/views/admin/engagementDashboard/dataView/LegendSymbol.stories.tsx
  • apps/meteor/client/views/admin/engagementDashboard/messages/MessagesTab.stories.tsx
  • apps/meteor/client/views/admin/engagementDashboard/users/UsersTab.stories.tsx
  • apps/meteor/client/views/admin/invites/InvitesPage.tsx
  • apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPage.tsx
  • apps/meteor/client/views/admin/settings/SettingsSection/SettingsSection.tsx
  • apps/meteor/client/views/admin/settings/groups/LDAPGroupPage.tsx
  • apps/meteor/client/views/home/cards/AddUsersCard.tsx
  • apps/meteor/client/views/home/cards/CreateChannelsCard.tsx
  • apps/meteor/client/views/home/cards/DesktopAppsCard.tsx
  • apps/meteor/client/views/home/cards/DocumentationCard.tsx
  • apps/meteor/client/views/home/cards/JoinRoomsCard.tsx
  • apps/meteor/client/views/home/cards/MobileAppsCard.tsx
  • apps/meteor/client/views/omnichannel/directory/providers/ChatsProvider.tsx
  • apps/meteor/client/views/omnichannel/modals/ForwardChatModal.tsx
  • apps/meteor/client/views/room/MessageList/MessageListErrorBoundary.tsx
  • apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.spec.tsx
  • apps/meteor/client/views/room/modals/DeleteMessageConfirmModal/DeleteMessageConfirmModal.tsx
  • apps/meteor/client/views/room/providers/ComposerPopupProvider.tsx
  • apps/meteor/client/views/root/MainLayout/AuthenticationCheck.tsx
  • apps/meteor/client/views/root/MainLayout/LoginPage.tsx
  • apps/meteor/tests/mocks/client/FakeChatProvider.tsx
  • apps/meteor/tests/mocks/client/ModalContextMock.tsx
  • apps/meteor/tests/mocks/client/ServerProviderMock.tsx
  • apps/uikit-playground/.eslintrc.json
  • apps/uikit-playground/package.json
  • apps/uikit-playground/src/Components/Draggable/DraggableList.tsx
  • apps/uikit-playground/src/Components/NavBar/BurgerIcon/Wrapper.tsx
  • apps/uikit-playground/src/Components/Templates/Container/Container.tsx
  • apps/uikit-playground/src/Components/Templates/Container/Section.tsx
  • apps/uikit-playground/src/Components/ToggleTabs/index.tsx
  • apps/uikit-playground/src/Components/navMenu/Menu/Wrapper.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/OrderedListBlock.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/ParagraphBlock.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/UnorderedListBlock.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/BoldSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/InlineElements.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/ItalicSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/LinkSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/StrikeSpan.tsx
  • packages/eslint-config/react.js
  • packages/fuselage-ui-kit/.storybook/preview.tsx
  • packages/gazzodown/src/Markup.tsx
  • packages/gazzodown/src/PreviewMarkup.tsx
  • packages/gazzodown/src/blocks/OrderedListBlock.tsx
  • packages/gazzodown/src/blocks/ParagraphBlock.tsx
  • packages/gazzodown/src/blocks/QuoteBlock.tsx
  • packages/gazzodown/src/blocks/TaskListBlock.tsx
  • packages/gazzodown/src/blocks/UnorderedListBlock.tsx
  • packages/gazzodown/src/elements/BoldSpan.tsx
  • packages/gazzodown/src/elements/InlineElements.tsx
  • packages/gazzodown/src/elements/ItalicSpan.tsx
  • packages/gazzodown/src/elements/LinkSpan.tsx
  • packages/gazzodown/src/elements/PreviewInlineElements.tsx
  • packages/gazzodown/src/elements/StrikeSpan.tsx
  • packages/gazzodown/src/katex/KatexErrorBoundary.tsx
  • packages/livechat/.eslintrc.json
  • packages/livechat/src/components/Messages/MessageBlocks/stories.tsx
  • packages/livechat/src/components/uiKit/message/ActionsBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/Block.tsx
  • packages/livechat/src/components/uiKit/message/ButtonElement/index.tsx
  • packages/livechat/src/components/uiKit/message/ButtonElement/stories.tsx
  • packages/livechat/src/components/uiKit/message/ContextBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/DividerBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/ImageBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/ImageBlock/index.tsx
  • packages/livechat/src/components/uiKit/message/SectionBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/Surface.tsx
  • packages/livechat/src/providers/ServerProvider.tsx
  • packages/ui-client/src/components/AnchorPortal.spec.tsx
  • packages/ui-client/src/components/Modal/ModalBackdrop.tsx
  • packages/ui-client/src/components/Page/Page.stories.tsx
  • packages/ui-client/src/providers/ModalProvider/ModalProvider.tsx
  • packages/web-ui-registration/src/LoginServices.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/providers/AuthorizationProvider.tsx
  • apps/meteor/client/providers/AppsProvider/AppsProvider.tsx
  • apps/uikit-playground/src/Components/Templates/Container/Section.tsx
  • apps/meteor/client/stories/contexts/ModalContextMock.tsx
  • packages/gazzodown/src/katex/KatexErrorBoundary.tsx
  • apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx
  • apps/meteor/client/stories/contexts/TranslationContextMock.tsx
  • apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.spec.tsx
  • apps/meteor/client/views/room/modals/DeleteMessageConfirmModal/DeleteMessageConfirmModal.tsx
  • apps/meteor/client/views/admin/engagementDashboard/dataView/LegendSymbol.stories.tsx
  • packages/livechat/src/components/uiKit/message/SectionBlock.stories.tsx
  • packages/ui-client/src/providers/ModalProvider/ModalProvider.tsx
  • apps/meteor/client/views/omnichannel/directory/providers/ChatsProvider.tsx
  • apps/meteor/client/sidebar/header/MatrixFederationSearch/FederatedRoomListErrorBoundary.tsx
  • apps/meteor/client/sidebar/hooks/useRoomList.spec.tsx
  • packages/livechat/src/components/uiKit/message/ButtonElement/index.tsx
  • apps/meteor/client/views/room/providers/ComposerPopupProvider.tsx
  • apps/uikit-playground/src/Components/NavBar/BurgerIcon/Wrapper.tsx
  • packages/ui-client/src/components/AnchorPortal.spec.tsx
  • packages/gazzodown/src/elements/ItalicSpan.tsx
  • apps/meteor/client/views/admin/settings/groups/LDAPGroupPage.tsx
  • apps/meteor/client/views/home/cards/CreateChannelsCard.tsx
  • apps/uikit-playground/src/Components/ToggleTabs/index.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/BoldSpan.tsx
  • apps/uikit-playground/src/Components/navMenu/Menu/Wrapper.tsx
  • packages/ui-client/src/components/Modal/ModalBackdrop.tsx
  • packages/gazzodown/src/elements/LinkSpan.tsx
  • apps/meteor/client/stories/contexts/ServerContextMock.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/LinkSpan.tsx
  • apps/meteor/client/providers/UserProvider/UserProvider.tsx
  • apps/meteor/client/stories/contexts/RouterContextMock.tsx
  • apps/meteor/client/components/UserInfo/UserInfoABACAttribute.tsx
  • packages/livechat/src/components/uiKit/message/DividerBlock.stories.tsx
  • apps/meteor/client/components/message/content/attachments/structure/AttachmentBlock.tsx
  • apps/uikit-playground/src/Components/Templates/Container/Container.tsx
  • packages/gazzodown/src/blocks/ParagraphBlock.tsx
  • packages/gazzodown/src/elements/PreviewInlineElements.tsx
  • packages/gazzodown/src/blocks/TaskListBlock.tsx
  • apps/meteor/client/views/home/cards/AddUsersCard.tsx
  • apps/meteor/client/views/room/MessageList/MessageListErrorBoundary.tsx
  • apps/meteor/client/views/home/cards/DocumentationCard.tsx
  • apps/meteor/client/portals/SidebarPortal/index.tsx
  • apps/meteor/client/views/admin/engagementDashboard/messages/MessagesTab.stories.tsx
  • packages/livechat/src/components/uiKit/message/ContextBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/ImageBlock.stories.tsx
  • packages/livechat/src/components/uiKit/message/Surface.tsx
  • packages/livechat/src/components/uiKit/message/ActionsBlock.stories.tsx
  • apps/meteor/client/providers/ToastMessagesProvider.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/StrikeSpan.tsx
  • apps/meteor/client/providers/RouterProvider.tsx
  • apps/meteor/client/providers/ServerProvider.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/OrderedListBlock.tsx
  • apps/meteor/tests/mocks/client/ServerProviderMock.tsx
  • apps/meteor/client/views/root/MainLayout/AuthenticationCheck.tsx
  • packages/livechat/src/components/Messages/MessageBlocks/stories.tsx
  • apps/meteor/client/views/admin/settings/SettingsSection/SettingsSection.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/ParagraphBlock.tsx
  • apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPage.tsx
  • apps/meteor/client/views/admin/invites/InvitesPage.tsx
  • apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardCardErrorBoundary.tsx
  • packages/livechat/src/providers/ServerProvider.tsx
  • apps/meteor/client/views/admin/engagementDashboard/users/UsersTab.stories.tsx
  • apps/meteor/client/views/home/cards/DesktopAppsCard.tsx
  • packages/livechat/src/components/uiKit/message/Block.tsx
  • apps/meteor/client/providers/LayoutProvider.tsx
  • apps/meteor/client/views/home/cards/MobileAppsCard.tsx
  • packages/livechat/src/components/uiKit/message/ImageBlock/index.tsx
  • packages/ui-client/src/components/Page/Page.stories.tsx
  • apps/meteor/client/providers/AvatarUrlProvider.tsx
  • apps/meteor/client/providers/SettingsProvider.tsx
  • apps/meteor/client/views/root/MainLayout/LoginPage.tsx
  • packages/gazzodown/src/PreviewMarkup.tsx
  • apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardPage.stories.tsx
  • apps/meteor/tests/mocks/client/FakeChatProvider.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/blocks/UnorderedListBlock.tsx
  • apps/meteor/client/providers/SessionProvider.tsx
  • packages/gazzodown/src/blocks/OrderedListBlock.tsx
  • apps/meteor/client/views/home/cards/JoinRoomsCard.tsx
  • packages/livechat/src/components/uiKit/message/ButtonElement/stories.tsx
  • packages/gazzodown/src/blocks/UnorderedListBlock.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/ItalicSpan.tsx
  • apps/meteor/client/views/admin/engagementDashboard/channels/ChannelsTab.stories.tsx
  • packages/gazzodown/src/Markup.tsx
  • apps/meteor/client/providers/TranslationProvider.tsx
  • packages/gazzodown/src/blocks/QuoteBlock.tsx
  • apps/meteor/tests/mocks/client/ModalContextMock.tsx
  • apps/meteor/client/providers/CustomSoundProvider/CustomSoundProvider.tsx
  • packages/eslint-config/react.js
  • apps/meteor/client/views/omnichannel/modals/ForwardChatModal.tsx
  • apps/meteor/client/components/UserCard/UserCardRole.tsx
  • apps/meteor/client/providers/AttachmentProvider.tsx
  • apps/meteor/client/components/PageSkeleton.tsx
  • packages/gazzodown/src/elements/StrikeSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/InlineElements.tsx
  • packages/web-ui-registration/src/LoginServices.tsx
  • apps/meteor/client/views/admin/customUserStatus/CustomUserStatusDisabledModal.tsx
  • apps/uikit-playground/src/Components/Draggable/DraggableList.tsx
  • packages/gazzodown/src/elements/InlineElements.tsx
  • packages/gazzodown/src/elements/BoldSpan.tsx
  • apps/meteor/client/providers/OmnichannelProvider.tsx
🧠 Learnings (13)
📚 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/providers/AppsProvider/AppsProvider.tsx
  • apps/uikit-playground/src/Components/NavBar/BurgerIcon/Wrapper.tsx
  • packages/livechat/src/components/uiKit/message/Surface.tsx
  • packages/livechat/src/components/uiKit/message/Block.tsx
  • packages/livechat/src/components/uiKit/message/ButtonElement/stories.tsx
📚 Learning: 2025-12-10T21:00:54.909Z
Learnt from: KevLehman
Repo: RocketChat/Rocket.Chat PR: 37091
File: ee/packages/abac/jest.config.ts:4-7
Timestamp: 2025-12-10T21:00:54.909Z
Learning: Rocket.Chat monorepo: Jest testMatch pattern '<rootDir>/src/**/*.spec.(ts|js|mjs)' is valid in this repo and used across multiple packages (e.g., packages/tools, ee/packages/omnichannel-services). Do not flag it as invalid in future reviews.

Applied to files:

  • apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.spec.tsx
📚 Learning: 2025-12-02T22:23:49.593Z
Learnt from: d-gubert
Repo: RocketChat/Rocket.Chat PR: 37654
File: apps/meteor/client/hooks/useAppSlashCommands.ts:32-38
Timestamp: 2025-12-02T22:23:49.593Z
Learning: In apps/meteor/client/hooks/useAppSlashCommands.ts, the `data?.forEach((command) => slashCommands.add(command))` call during render is intentional. The query is configured with `structuralSharing: false` to prevent React Query from keeping stable data references, and `slashCommands.add` is idempotent, so executing on every render is acceptable and ensures the command registry stays current.

Applied to files:

  • apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.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 : Utilize Playwright fixtures (`test`, `page`, `expect`) for consistency in test files

Applied to files:

  • apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.spec.tsx
  • packages/ui-client/src/components/AnchorPortal.spec.tsx
  • apps/meteor/tests/mocks/client/ServerProviderMock.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/sidebar/header/MatrixFederationSearch/FederatedRoomListErrorBoundary.tsx
📚 Learning: 2025-09-19T15:15:04.642Z
Learnt from: rodrigok
Repo: RocketChat/Rocket.Chat PR: 36991
File: apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts:219-221
Timestamp: 2025-09-19T15:15:04.642Z
Learning: The Federation_Matrix_homeserver_domain setting in apps/meteor/server/services/federation/infrastructure/rocket-chat/adapters/Settings.ts is part of the old federation system and is being deprecated/removed, so configuration issues with this setting should not be flagged for improvement.

Applied to files:

  • apps/meteor/client/sidebar/header/MatrixFederationSearch/FederatedRoomListErrorBoundary.tsx
📚 Learning: 2025-11-04T16:49:19.107Z
Learnt from: ricardogarim
Repo: RocketChat/Rocket.Chat PR: 37377
File: apps/meteor/ee/server/hooks/federation/index.ts:86-88
Timestamp: 2025-11-04T16:49:19.107Z
Learning: In Rocket.Chat's federation system (apps/meteor/ee/server/hooks/federation/), permission checks follow two distinct patterns: (1) User-initiated federation actions (creating rooms, adding users to federated rooms, joining from invites) should throw MeteorError to inform users they lack 'access-federation' permission. (2) Remote server-initiated federation events should silently skip/ignore when users lack permission. The beforeAddUserToRoom hook only executes for local user-initiated actions, so throwing an error there is correct. Remote federation events are handled separately by the federation Matrix package with silent skipping logic.

Applied to files:

  • apps/meteor/client/sidebar/header/MatrixFederationSearch/FederatedRoomListErrorBoundary.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:

  • packages/ui-client/src/components/AnchorPortal.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:

  • packages/ui-client/src/components/AnchorPortal.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:

  • packages/ui-client/src/components/AnchorPortal.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:

  • packages/ui-client/src/components/AnchorPortal.spec.tsx
📚 Learning: 2025-10-30T19:30:46.541Z
Learnt from: MartinSchoeler
Repo: RocketChat/Rocket.Chat PR: 37244
File: apps/meteor/client/views/admin/ABAC/AdminABACRoomAttributesForm.spec.tsx:125-146
Timestamp: 2025-10-30T19:30:46.541Z
Learning: In the AdminABACRoomAttributesForm component (apps/meteor/client/views/admin/ABAC/AdminABACRoomAttributesForm.tsx), the first attribute value field is mandatory and does not have a Remove button. Only additional values beyond the first have Remove buttons. This means trashButtons[0] corresponds to the second value's Remove button, not the first value's.

Applied to files:

  • apps/meteor/client/views/admin/settings/groups/LDAPGroupPage.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:

  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/BoldSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/StrikeSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/ItalicSpan.tsx
  • ee/packages/pdf-worker/src/templates/ChatTranscript/markup/elements/InlineElements.tsx
🧬 Code graph analysis (16)
apps/meteor/client/providers/AuthorizationProvider.tsx (1)
packages/ui-contexts/src/index.ts (1)
  • AuthorizationContext (3-3)
apps/meteor/client/providers/AuthenticationProvider/AuthenticationProvider.tsx (1)
packages/ui-contexts/src/index.ts (1)
  • AuthenticationContext (2-2)
apps/meteor/client/stories/contexts/TranslationContextMock.tsx (1)
packages/ui-contexts/src/index.ts (1)
  • TranslationContext (15-15)
apps/meteor/client/views/room/hooks/useToggleFavoriteMutation.spec.tsx (1)
packages/mock-providers/src/MockedAppRootBuilder.tsx (1)
  • queryClient (270-280)
packages/livechat/src/components/uiKit/message/ButtonElement/index.tsx (2)
.github/actions/update-version-durability/index.js (1)
  • parser (169-169)
packages/fuselage-ui-kit/src/surfaces/FuselageSurfaceRenderer.tsx (1)
  • button (173-183)
apps/meteor/client/providers/UserProvider/UserProvider.tsx (1)
packages/ui-contexts/src/UserContext.ts (1)
  • UserContext (54-63)
apps/meteor/client/providers/ToastMessagesProvider.tsx (1)
packages/ui-contexts/src/index.ts (1)
  • ToastMessagesContext (13-13)
apps/meteor/client/providers/RouterProvider.tsx (1)
packages/ui-contexts/src/RouterContext.ts (1)
  • RouterContext (79-107)
apps/meteor/client/providers/ServerProvider.tsx (1)
packages/ui-contexts/src/ServerContext.ts (1)
  • ServerContext (57-79)
apps/meteor/client/providers/LayoutProvider.tsx (1)
packages/ui-contexts/src/LayoutContext.ts (1)
  • LayoutContext (45-83)
apps/meteor/client/providers/AvatarUrlProvider.tsx (1)
packages/ui-contexts/src/index.ts (1)
  • AvatarUrlContext (4-4)
apps/meteor/client/providers/SettingsProvider.tsx (1)
packages/ui-contexts/src/index.ts (1)
  • SettingsContext (12-12)
apps/meteor/client/providers/TranslationProvider.tsx (1)
packages/ui-contexts/src/index.ts (1)
  • TranslationContext (15-15)
apps/meteor/client/providers/CustomSoundProvider/CustomSoundProvider.tsx (1)
packages/ui-contexts/src/CustomSoundContext.ts (1)
  • CustomSoundContext (42-70)
packages/fuselage-ui-kit/.storybook/preview.tsx (1)
packages/mock-providers/src/MockedAppRootBuilder.tsx (1)
  • queryClient (270-280)
packages/web-ui-registration/src/LoginServices.tsx (1)
packages/fuselage-ui-kit/src/stories/Message.stories.tsx (1)
  • Divider (75-75)
⏰ 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). (9)
  • GitHub Check: cubic · AI code reviewer
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 8.2 coverage (2/5)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 8.2 coverage (5/5)
  • GitHub Check: 🔨 Test UI (CE) / MongoDB 8.2 (1/4)
  • GitHub Check: 🔨 Test UI (CE) / MongoDB 8.2 (2/4)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 8.2 coverage (1/5)
  • GitHub Check: 🔨 Test UI (CE) / MongoDB 8.2 (4/4)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 8.2 coverage (4/5)
  • GitHub Check: 🔨 Test UI (EE) / MongoDB 8.2 coverage (3/5)

dougfabris
dougfabris previously approved these changes Jan 14, 2026
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.

LGREATM!

@tassoevan tassoevan added the stat: QA assured Means it has been tested and approved by a company insider label Jan 14, 2026
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Jan 14, 2026
@tassoevan tassoevan force-pushed the refactor/no-children-prop branch from 6d41283 to fbafc28 Compare January 16, 2026 01:23
@ggazzo ggazzo merged commit 16d02c8 into develop Jan 16, 2026
74 of 79 checks passed
@ggazzo ggazzo deleted the refactor/no-children-prop branch January 16, 2026 11:58
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.

4 participants