refactor: Explicit component props (10/23) - #41184
Conversation
|
Looks like this PR is ready to merge! 🎉 |
|
|
/jira ARCH-2200 |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (18)
✅ Files skipped from review due to trivial changes (12)
🚧 Files skipped from review as they are similar to previous changes (6)
📜 Recent review details⏰ Context from checks skipped due to timeout. (2)
|
| Layer / File(s) | Summary |
|---|---|
Sidepanel navigation component props exports apps/meteor/client/views/navigation/sidepanel/SidePanelNoResults.tsx, .../SidepanelItem/RoomMenu.tsx, .../RoomSidePanelItem.tsx, .../RoomSidePanelItemBadges.tsx, .../SidePanelParent.tsx, .../SidePanelParentRoom/*, .../SidePanelParentTeam.tsx, .../SidePanelTagIcon.tsx, .../SidepanelItem.tsx, .../omnichannel/InquireSidePanelItem.tsx, .../SidePanelOmnichannelBadges/*, .../tabs/* |
Props types for sidepanel item, badges, parent room/team, tag icon, omnichannel badges/priority tag, and tab components are now exported; some inline prop types were replaced with named exported aliases. |
OAuth view component props exports apps/meteor/client/views/oauth/components/AuthorizationFormPage.tsx, CurrentUserDisplay.tsx, ErrorPage.tsx, Layout.tsx |
Props types for OAuth authorization form, current user display, error page, and layout components are now exported. |
Omnichannel router and additional form props exports apps/meteor/client/views/omnichannel/OmnichannelRouter.tsx, .../additionalForms/* |
Props types for the omnichannel router and additional form inputs are now exported. |
Omnichannel agents, analytics, appearance, business hours props exports apps/meteor/client/views/omnichannel/agents/*, .../analytics/*, .../appearance/*, .../businessHours/* |
Props types for agent edit/info components, analytics date range picker/overview, appearance page/label, and business hours form/edit components are now exported. |
Canned responses props exports apps/meteor/client/views/omnichannel/cannedResponses/** |
Props types for canned response composer, preview, dropdown, contextual bar items, modals, and remove button are now exported. |
Shared omnichannel components props exports apps/meteor/client/views/omnichannel/components/* |
Props types for shared omnichannel display components are now exported. |
Estimated code review effort: 2 (Simple) | ~15 minutes
Suggested labels: type: chore
Suggested reviewers: dougfabris
Possibly related PRs
- RocketChat/Rocket.Chat#41175: Applies the same pattern of exporting React component props types without changing runtime behavior.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title check | ✅ Passed | The title matches the main refactor: making component props types explicit, and is concise enough for history scanning. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |
| Linked Issues check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
| Out of Scope Changes check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |
Warning
Review ran into problems
🔥 Problems
Errors were encountered while retrieving linked issues.
Errors (2)
- ARCH-2213: Request failed with status code 401
- PROPS-10: Request failed with status code 401
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.
Comment @coderabbitai help to get the list of available commands.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #41184 +/- ##
===========================================
- Coverage 69.22% 69.18% -0.05%
===========================================
Files 3651 3651
Lines 142743 142756 +13
Branches 25549 25586 +37
===========================================
- Hits 98813 98761 -52
- Misses 39638 39705 +67
+ Partials 4292 4290 -2
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
ac26ecb to
bc54539
Compare
There was a problem hiding this comment.
🧹 Nitpick comments (1)
apps/meteor/client/views/omnichannel/businessHours/EditBusinessHoursWithData.tsx (1)
11-13: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueTypo now locked into public API: "WidthData" should be "WithData".
Exporting
EditBusinessHoursWidthDataPropsmakes this pre-existing typo part of the module's public type surface. Since renaming would need to be coordinated with the component name itself (out of scope here), consider fixing in a follow-up before wider consumption.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/meteor/client/views/omnichannel/businessHours/EditBusinessHoursWithData.tsx` around lines 11 - 13, The exported type alias EditBusinessHoursWidthDataProps contains a typo that is now part of the public API. Update the exported props type name in EditBusinessHoursWithData to use “WithData” instead of “WidthData”, and keep the component’s props annotation aligned with the corrected symbol so consumers don’t inherit the typo.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In
`@apps/meteor/client/views/omnichannel/businessHours/EditBusinessHoursWithData.tsx`:
- Around line 11-13: The exported type alias EditBusinessHoursWidthDataProps
contains a typo that is now part of the public API. Update the exported props
type name in EditBusinessHoursWithData to use “WithData” instead of “WidthData”,
and keep the component’s props annotation aligned with the corrected symbol so
consumers don’t inherit the typo.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: ae71110b-6023-46c1-a051-4bde45f5cae5
📒 Files selected for processing (72)
apps/meteor/client/views/navigation/sidepanel/SidePanelNoResults.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomMenu.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomSidePanelItem.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomSidePanelItemBadges.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParent.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentRoom/SidePanelParentRoom.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentRoom/SidePanelParentRoomWithData.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentTeam.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelTagIcon.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidepanelItem.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/InquireSidePanelItem.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/SidePanelOmnichannelBadges/SidePanelOmnichannelBadges.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/SidePanelOmnichannelBadges/SidePanelPriorityTag.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelChannels.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelRooms.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelTeams.tsxapps/meteor/client/views/oauth/components/AuthorizationFormPage.tsxapps/meteor/client/views/oauth/components/CurrentUserDisplay.tsxapps/meteor/client/views/oauth/components/ErrorPage.tsxapps/meteor/client/views/oauth/components/Layout.tsxapps/meteor/client/views/omnichannel/OmnichannelRouter.tsxapps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnit.tsxapps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnits.tsxapps/meteor/client/views/omnichannel/additionalForms/BusinessHoursMultiple.tsxapps/meteor/client/views/omnichannel/additionalForms/ContactManagerInput.tsxapps/meteor/client/views/omnichannel/additionalForms/CurrentChatTags.tsxapps/meteor/client/views/omnichannel/additionalForms/CustomFieldsAdditionalForm.tsxapps/meteor/client/views/omnichannel/additionalForms/DepartmentBusinessHours.tsxapps/meteor/client/views/omnichannel/additionalForms/EeNumberInput.tsxapps/meteor/client/views/omnichannel/additionalForms/EeTextAreaInput.tsxapps/meteor/client/views/omnichannel/additionalForms/EeTextInput.tsxapps/meteor/client/views/omnichannel/additionalForms/MaxChatsPerAgent.tsxapps/meteor/client/views/omnichannel/additionalForms/PrioritiesSelect.tsxapps/meteor/client/views/omnichannel/additionalForms/SlaPoliciesSelect.tsxapps/meteor/client/views/omnichannel/agents/AgentEdit.tsxapps/meteor/client/views/omnichannel/agents/AgentEditWithData.tsxapps/meteor/client/views/omnichannel/agents/AgentInfo.tsxapps/meteor/client/views/omnichannel/agents/AgentInfoAction.tsxapps/meteor/client/views/omnichannel/analytics/DateRangePicker.tsxapps/meteor/client/views/omnichannel/analytics/Overview.tsxapps/meteor/client/views/omnichannel/appearance/AppearanceFieldLabel.tsxapps/meteor/client/views/omnichannel/appearance/AppearancePage.tsxapps/meteor/client/views/omnichannel/businessHours/BusinessHoursForm.tsxapps/meteor/client/views/omnichannel/businessHours/EditBusinessHours.tsxapps/meteor/client/views/omnichannel/businessHours/EditBusinessHoursWithData.tsxapps/meteor/client/views/omnichannel/cannedResponses/RemoveCannedResponseButton.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/CannedResponsesComposer.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/CannedResponsesComposerPreview.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/InsertPlaceholderDropdown.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponse.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/Item.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/WrapCannedResponse.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEdit.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEditWithData.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseFilter.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CreateCannedResponse/CreateCannedResponseModal.tsxapps/meteor/client/views/omnichannel/components/AgentInfoDetails.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteAgent.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteContact/AutoCompleteContact.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteDepartment.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteDepartmentMultiple.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteMonitors.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteMultipleAgent.tsxapps/meteor/client/views/omnichannel/components/CustomField.tsxapps/meteor/client/views/omnichannel/components/Field.tsxapps/meteor/client/views/omnichannel/components/FormSkeleton.tsxapps/meteor/client/views/omnichannel/components/Info.tsxapps/meteor/client/views/omnichannel/components/Label.tsxapps/meteor/client/views/omnichannel/components/OmnichannelVerificationTag.tsxapps/meteor/client/views/omnichannel/components/RoomActivityIcon.tsxapps/meteor/client/views/omnichannel/components/Tags.tsx
📜 Review details
⏰ Context from checks skipped due to timeout. (4)
- GitHub Check: 📦 Build Packages
- GitHub Check: CodeQL-Build
- GitHub Check: Hacktron Security Check
- GitHub Check: CodeQL-Build
🧰 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/navigation/sidepanel/SidepanelItem/SidePanelParentTeam.tsxapps/meteor/client/views/omnichannel/components/Field.tsxapps/meteor/client/views/navigation/sidepanel/SidePanelNoResults.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentRoom/SidePanelParentRoom.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelChannels.tsxapps/meteor/client/views/omnichannel/components/RoomActivityIcon.tsxapps/meteor/client/views/omnichannel/additionalForms/BusinessHoursMultiple.tsxapps/meteor/client/views/omnichannel/appearance/AppearanceFieldLabel.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelTeams.tsxapps/meteor/client/views/omnichannel/additionalForms/EeTextAreaInput.tsxapps/meteor/client/views/omnichannel/additionalForms/EeTextInput.tsxapps/meteor/client/views/omnichannel/components/Label.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/CannedResponsesComposerPreview.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/SidePanelOmnichannelBadges/SidePanelOmnichannelBadges.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParent.tsxapps/meteor/client/views/omnichannel/additionalForms/ContactManagerInput.tsxapps/meteor/client/views/omnichannel/cannedResponses/RemoveCannedResponseButton.tsxapps/meteor/client/views/omnichannel/components/Tags.tsxapps/meteor/client/views/omnichannel/additionalForms/EeNumberInput.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentRoom/SidePanelParentRoomWithData.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelTagIcon.tsxapps/meteor/client/views/omnichannel/components/Info.tsxapps/meteor/client/views/omnichannel/additionalForms/DepartmentBusinessHours.tsxapps/meteor/client/views/omnichannel/businessHours/EditBusinessHoursWithData.tsxapps/meteor/client/views/omnichannel/businessHours/EditBusinessHours.tsxapps/meteor/client/views/omnichannel/additionalForms/MaxChatsPerAgent.tsxapps/meteor/client/views/omnichannel/agents/AgentInfo.tsxapps/meteor/client/views/oauth/components/Layout.tsxapps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnits.tsxapps/meteor/client/views/omnichannel/agents/AgentEdit.tsxapps/meteor/client/views/omnichannel/additionalForms/CurrentChatTags.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponse.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/CannedResponsesComposer.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelRooms.tsxapps/meteor/client/views/oauth/components/ErrorPage.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/InquireSidePanelItem.tsxapps/meteor/client/views/omnichannel/appearance/AppearancePage.tsxapps/meteor/client/views/omnichannel/additionalForms/PrioritiesSelect.tsxapps/meteor/client/views/omnichannel/components/CustomField.tsxapps/meteor/client/views/omnichannel/analytics/DateRangePicker.tsxapps/meteor/client/views/omnichannel/components/FormSkeleton.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteContact/AutoCompleteContact.tsxapps/meteor/client/views/omnichannel/agents/AgentInfoAction.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/SidePanelOmnichannelBadges/SidePanelPriorityTag.tsxapps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnit.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/InsertPlaceholderDropdown.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEdit.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/WrapCannedResponse.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteAgent.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteDepartmentMultiple.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseFilter.tsxapps/meteor/client/views/omnichannel/components/AgentInfoDetails.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteDepartment.tsxapps/meteor/client/views/omnichannel/additionalForms/CustomFieldsAdditionalForm.tsxapps/meteor/client/views/omnichannel/analytics/Overview.tsxapps/meteor/client/views/omnichannel/agents/AgentEditWithData.tsxapps/meteor/client/views/omnichannel/businessHours/BusinessHoursForm.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomSidePanelItem.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteMultipleAgent.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomMenu.tsxapps/meteor/client/views/omnichannel/additionalForms/SlaPoliciesSelect.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomSidePanelItemBadges.tsxapps/meteor/client/views/omnichannel/components/OmnichannelVerificationTag.tsxapps/meteor/client/views/oauth/components/CurrentUserDisplay.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CreateCannedResponse/CreateCannedResponseModal.tsxapps/meteor/client/views/oauth/components/AuthorizationFormPage.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteMonitors.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEditWithData.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/Item.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidepanelItem.tsxapps/meteor/client/views/omnichannel/OmnichannelRouter.tsx
🧠 Learnings (2)
📚 Learning: 2026-03-27T14:52:56.865Z
Learnt from: dougfabris
Repo: RocketChat/Rocket.Chat PR: 39892
File: apps/meteor/client/views/room/contextualBar/Threads/Thread.tsx:150-155
Timestamp: 2026-03-27T14:52:56.865Z
Learning: In Rocket.Chat, there are two different `ModalBackdrop` components with different prop APIs. During review, confirm the import source: (1) `rocket.chat/fuselage` `ModalBackdrop` uses `ModalBackdropProps` based on `BoxProps` (so it supports `onClick` and other Box/DOM props) and does not have an `onDismiss` prop; (2) `rocket.chat/ui-client` `ModalBackdrop` uses a narrower props interface like `{ children?: ReactNode; onDismiss?: () => void }` and handles Escape keypress and outside mouse-up, and it does not forward arbitrary DOM props such as `onClick`. Flag mismatched props (e.g., `onDismiss` passed to the fuselage component or `onClick` passed to the ui-client component) and ensure the usage matches the correct component being imported.
Applied to files:
apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentTeam.tsxapps/meteor/client/views/omnichannel/components/Field.tsxapps/meteor/client/views/navigation/sidepanel/SidePanelNoResults.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentRoom/SidePanelParentRoom.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelChannels.tsxapps/meteor/client/views/omnichannel/components/RoomActivityIcon.tsxapps/meteor/client/views/omnichannel/additionalForms/BusinessHoursMultiple.tsxapps/meteor/client/views/omnichannel/appearance/AppearanceFieldLabel.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelTeams.tsxapps/meteor/client/views/omnichannel/additionalForms/EeTextAreaInput.tsxapps/meteor/client/views/omnichannel/additionalForms/EeTextInput.tsxapps/meteor/client/views/omnichannel/components/Label.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/CannedResponsesComposerPreview.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/SidePanelOmnichannelBadges/SidePanelOmnichannelBadges.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParent.tsxapps/meteor/client/views/omnichannel/additionalForms/ContactManagerInput.tsxapps/meteor/client/views/omnichannel/cannedResponses/RemoveCannedResponseButton.tsxapps/meteor/client/views/omnichannel/components/Tags.tsxapps/meteor/client/views/omnichannel/additionalForms/EeNumberInput.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentRoom/SidePanelParentRoomWithData.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelTagIcon.tsxapps/meteor/client/views/omnichannel/components/Info.tsxapps/meteor/client/views/omnichannel/additionalForms/DepartmentBusinessHours.tsxapps/meteor/client/views/omnichannel/businessHours/EditBusinessHoursWithData.tsxapps/meteor/client/views/omnichannel/businessHours/EditBusinessHours.tsxapps/meteor/client/views/omnichannel/additionalForms/MaxChatsPerAgent.tsxapps/meteor/client/views/omnichannel/agents/AgentInfo.tsxapps/meteor/client/views/oauth/components/Layout.tsxapps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnits.tsxapps/meteor/client/views/omnichannel/agents/AgentEdit.tsxapps/meteor/client/views/omnichannel/additionalForms/CurrentChatTags.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponse.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/CannedResponsesComposer.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelRooms.tsxapps/meteor/client/views/oauth/components/ErrorPage.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/InquireSidePanelItem.tsxapps/meteor/client/views/omnichannel/appearance/AppearancePage.tsxapps/meteor/client/views/omnichannel/additionalForms/PrioritiesSelect.tsxapps/meteor/client/views/omnichannel/components/CustomField.tsxapps/meteor/client/views/omnichannel/analytics/DateRangePicker.tsxapps/meteor/client/views/omnichannel/components/FormSkeleton.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteContact/AutoCompleteContact.tsxapps/meteor/client/views/omnichannel/agents/AgentInfoAction.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/SidePanelOmnichannelBadges/SidePanelPriorityTag.tsxapps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnit.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/InsertPlaceholderDropdown.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEdit.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/WrapCannedResponse.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteAgent.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteDepartmentMultiple.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseFilter.tsxapps/meteor/client/views/omnichannel/components/AgentInfoDetails.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteDepartment.tsxapps/meteor/client/views/omnichannel/additionalForms/CustomFieldsAdditionalForm.tsxapps/meteor/client/views/omnichannel/analytics/Overview.tsxapps/meteor/client/views/omnichannel/agents/AgentEditWithData.tsxapps/meteor/client/views/omnichannel/businessHours/BusinessHoursForm.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomSidePanelItem.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteMultipleAgent.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomMenu.tsxapps/meteor/client/views/omnichannel/additionalForms/SlaPoliciesSelect.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomSidePanelItemBadges.tsxapps/meteor/client/views/omnichannel/components/OmnichannelVerificationTag.tsxapps/meteor/client/views/oauth/components/CurrentUserDisplay.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CreateCannedResponse/CreateCannedResponseModal.tsxapps/meteor/client/views/oauth/components/AuthorizationFormPage.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteMonitors.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEditWithData.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/Item.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidepanelItem.tsxapps/meteor/client/views/omnichannel/OmnichannelRouter.tsx
📚 Learning: 2026-05-06T12:21:44.083Z
Learnt from: juliajforesti
Repo: RocketChat/Rocket.Chat PR: 40256
File: apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx:121-149
Timestamp: 2026-05-06T12:21:44.083Z
Learning: Field wrappers in rocket.chat/fuselage-forms (Field, FieldLabel, FieldRow, FieldError, FieldHint) auto-create htmlFor/id associations, aria-describedby, and role="alert" for errors. Do not manually set htmlFor, id, aria-describedby, or role attributes when using these wrappers. This automatic wiring does not apply to plain rocket.chat/fuselage components, which require explicit ID wiring per the accessibility docs. In code reviews, prefer using fuselage-forms wrappers for form fields and verify there is no unnecessary manual ID/aria wiring in files that use these wrappers. If a component uses plain fuselage components, ensure proper id wiring as per docs.
Applied to files:
apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentTeam.tsxapps/meteor/client/views/omnichannel/components/Field.tsxapps/meteor/client/views/navigation/sidepanel/SidePanelNoResults.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentRoom/SidePanelParentRoom.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelChannels.tsxapps/meteor/client/views/omnichannel/components/RoomActivityIcon.tsxapps/meteor/client/views/omnichannel/additionalForms/BusinessHoursMultiple.tsxapps/meteor/client/views/omnichannel/appearance/AppearanceFieldLabel.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelTeams.tsxapps/meteor/client/views/omnichannel/additionalForms/EeTextAreaInput.tsxapps/meteor/client/views/omnichannel/additionalForms/EeTextInput.tsxapps/meteor/client/views/omnichannel/components/Label.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/CannedResponsesComposerPreview.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/SidePanelOmnichannelBadges/SidePanelOmnichannelBadges.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParent.tsxapps/meteor/client/views/omnichannel/additionalForms/ContactManagerInput.tsxapps/meteor/client/views/omnichannel/cannedResponses/RemoveCannedResponseButton.tsxapps/meteor/client/views/omnichannel/components/Tags.tsxapps/meteor/client/views/omnichannel/additionalForms/EeNumberInput.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentRoom/SidePanelParentRoomWithData.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelTagIcon.tsxapps/meteor/client/views/omnichannel/components/Info.tsxapps/meteor/client/views/omnichannel/additionalForms/DepartmentBusinessHours.tsxapps/meteor/client/views/omnichannel/businessHours/EditBusinessHoursWithData.tsxapps/meteor/client/views/omnichannel/businessHours/EditBusinessHours.tsxapps/meteor/client/views/omnichannel/additionalForms/MaxChatsPerAgent.tsxapps/meteor/client/views/omnichannel/agents/AgentInfo.tsxapps/meteor/client/views/oauth/components/Layout.tsxapps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnits.tsxapps/meteor/client/views/omnichannel/agents/AgentEdit.tsxapps/meteor/client/views/omnichannel/additionalForms/CurrentChatTags.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponse.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/CannedResponsesComposer.tsxapps/meteor/client/views/navigation/sidepanel/tabs/SidePanelRooms.tsxapps/meteor/client/views/oauth/components/ErrorPage.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/InquireSidePanelItem.tsxapps/meteor/client/views/omnichannel/appearance/AppearancePage.tsxapps/meteor/client/views/omnichannel/additionalForms/PrioritiesSelect.tsxapps/meteor/client/views/omnichannel/components/CustomField.tsxapps/meteor/client/views/omnichannel/analytics/DateRangePicker.tsxapps/meteor/client/views/omnichannel/components/FormSkeleton.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteContact/AutoCompleteContact.tsxapps/meteor/client/views/omnichannel/agents/AgentInfoAction.tsxapps/meteor/client/views/navigation/sidepanel/omnichannel/SidePanelOmnichannelBadges/SidePanelPriorityTag.tsxapps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnit.tsxapps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/InsertPlaceholderDropdown.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEdit.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/WrapCannedResponse.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteAgent.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteDepartmentMultiple.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseFilter.tsxapps/meteor/client/views/omnichannel/components/AgentInfoDetails.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteDepartment.tsxapps/meteor/client/views/omnichannel/additionalForms/CustomFieldsAdditionalForm.tsxapps/meteor/client/views/omnichannel/analytics/Overview.tsxapps/meteor/client/views/omnichannel/agents/AgentEditWithData.tsxapps/meteor/client/views/omnichannel/businessHours/BusinessHoursForm.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomSidePanelItem.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteMultipleAgent.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomMenu.tsxapps/meteor/client/views/omnichannel/additionalForms/SlaPoliciesSelect.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomSidePanelItemBadges.tsxapps/meteor/client/views/omnichannel/components/OmnichannelVerificationTag.tsxapps/meteor/client/views/oauth/components/CurrentUserDisplay.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CreateCannedResponse/CreateCannedResponseModal.tsxapps/meteor/client/views/oauth/components/AuthorizationFormPage.tsxapps/meteor/client/views/omnichannel/components/AutoCompleteMonitors.tsxapps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEditWithData.tsxapps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/Item.tsxapps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidepanelItem.tsxapps/meteor/client/views/omnichannel/OmnichannelRouter.tsx
🔇 Additional comments (71)
apps/meteor/client/views/oauth/components/AuthorizationFormPage.tsx (1)
11-15: LGTM!apps/meteor/client/views/oauth/components/CurrentUserDisplay.tsx (1)
20-22: LGTM!apps/meteor/client/views/oauth/components/ErrorPage.tsx (1)
7-9: LGTM!apps/meteor/client/views/oauth/components/Layout.tsx (1)
6-8: LGTM!apps/meteor/client/views/navigation/sidepanel/SidePanelNoResults.tsx (1)
7-7: LGTM!apps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomMenu.tsx (1)
9-9: LGTM!apps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomSidePanelItem.tsx (1)
19-19: LGTM!apps/meteor/client/views/navigation/sidepanel/SidepanelItem/RoomSidePanelItemBadges.tsx (1)
9-9: LGTM!apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParent.tsx (1)
7-9: LGTM!apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentTeam.tsx (1)
7-9: LGTM!apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidepanelItem.tsx (1)
18-18: LGTM!apps/meteor/client/views/navigation/sidepanel/omnichannel/InquireSidePanelItem.tsx (1)
18-18: LGTM!apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentRoom/SidePanelParentRoom.tsx (1)
8-10: LGTM!apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelParentRoom/SidePanelParentRoomWithData.tsx (1)
5-7: LGTM!apps/meteor/client/views/navigation/sidepanel/SidepanelItem/SidePanelTagIcon.tsx (1)
4-6: LGTM!apps/meteor/client/views/navigation/sidepanel/omnichannel/SidePanelOmnichannelBadges/SidePanelOmnichannelBadges.tsx (1)
7-9: LGTM!apps/meteor/client/views/navigation/sidepanel/omnichannel/SidePanelOmnichannelBadges/SidePanelPriorityTag.tsx (1)
6-8: LGTM!apps/meteor/client/views/navigation/sidepanel/tabs/SidePanelChannels.tsx (1)
8-10: LGTM!apps/meteor/client/views/navigation/sidepanel/tabs/SidePanelRooms.tsx (1)
9-11: LGTM!apps/meteor/client/views/navigation/sidepanel/tabs/SidePanelTeams.tsx (1)
7-9: LGTM!apps/meteor/client/views/omnichannel/OmnichannelRouter.tsx (1)
9-11: LGTM!apps/meteor/client/views/omnichannel/additionalForms/CustomFieldsAdditionalForm.tsx (1)
19-21: LGTM!apps/meteor/client/views/omnichannel/additionalForms/DepartmentBusinessHours.tsx (1)
8-10: LGTM!apps/meteor/client/views/omnichannel/additionalForms/EeTextAreaInput.tsx (1)
6-8: LGTM!apps/meteor/client/views/omnichannel/additionalForms/MaxChatsPerAgent.tsx (1)
9-11: LGTM!apps/meteor/client/views/omnichannel/additionalForms/SlaPoliciesSelect.tsx (1)
8-13: LGTM!apps/meteor/client/views/omnichannel/agents/AgentEdit.tsx (1)
32-35: LGTM!apps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnit.tsx (1)
10-18: LGTM!apps/meteor/client/views/omnichannel/additionalForms/AutoCompleteUnits.tsx (1)
9-12: LGTM!apps/meteor/client/views/omnichannel/additionalForms/BusinessHoursMultiple.tsx (1)
11-13: LGTM!apps/meteor/client/views/omnichannel/additionalForms/ContactManagerInput.tsx (1)
4-7: LGTM!apps/meteor/client/views/omnichannel/additionalForms/CurrentChatTags.tsx (1)
6-11: LGTM!apps/meteor/client/views/omnichannel/additionalForms/EeTextInput.tsx (1)
6-8: LGTM!apps/meteor/client/views/omnichannel/additionalForms/PrioritiesSelect.tsx (1)
13-18: LGTM!apps/meteor/client/views/omnichannel/additionalForms/EeNumberInput.tsx (1)
6-8: LGTM!apps/meteor/client/views/omnichannel/agents/AgentInfo.tsx (1)
22-24: LGTM!apps/meteor/client/views/omnichannel/agents/AgentInfoAction.tsx (1)
5-9: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/RemoveCannedResponseButton.tsx (1)
8-10: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEdit.tsx (1)
20-24: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEditWithData.tsx (1)
12-14: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseFilter.tsx (1)
11-18: LGTM!apps/meteor/client/views/omnichannel/components/AutoCompleteAgent.tsx (1)
8-19: LGTM!apps/meteor/client/views/omnichannel/agents/AgentEditWithData.tsx (1)
11-13: LGTM!apps/meteor/client/views/omnichannel/analytics/DateRangePicker.tsx (1)
9-11: LGTM!apps/meteor/client/views/omnichannel/analytics/Overview.tsx (1)
15-17: LGTM!apps/meteor/client/views/omnichannel/appearance/AppearanceFieldLabel.tsx (1)
7-10: LGTM!apps/meteor/client/views/omnichannel/appearance/AppearancePage.tsx (1)
43-45: LGTM!apps/meteor/client/views/omnichannel/businessHours/BusinessHoursForm.tsx (1)
39-41: LGTM!apps/meteor/client/views/omnichannel/businessHours/EditBusinessHours.tsx (1)
33-36: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/CannedResponsesComposer.tsx (1)
19-19: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/CannedResponsesComposerPreview.tsx (1)
6-6: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/components/CannedResponsesComposer/InsertPlaceholderDropdown.tsx (1)
7-11: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponse.tsx (1)
18-32: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.tsx (1)
23-38: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/Item.tsx (1)
10-15: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/contextualBar/CannedResponse/WrapCannedResponse.tsx (1)
10-17: LGTM!apps/meteor/client/views/omnichannel/cannedResponses/modals/CreateCannedResponse/CreateCannedResponseModal.tsx (1)
23-23: LGTM!apps/meteor/client/views/omnichannel/components/AgentInfoDetails.tsx (1)
6-6: LGTM!apps/meteor/client/views/omnichannel/components/AutoCompleteContact/AutoCompleteContact.tsx (1)
22-29: LGTM!apps/meteor/client/views/omnichannel/components/AutoCompleteDepartment.tsx (1)
9-18: LGTM!apps/meteor/client/views/omnichannel/components/AutoCompleteDepartmentMultiple.tsx (1)
10-22: LGTM!apps/meteor/client/views/omnichannel/components/AutoCompleteMonitors.tsx (1)
9-12: LGTM!apps/meteor/client/views/omnichannel/components/AutoCompleteMultipleAgent.tsx (1)
9-18: LGTM!apps/meteor/client/views/omnichannel/components/RoomActivityIcon.tsx (1)
7-9: LGTM!apps/meteor/client/views/omnichannel/components/CustomField.tsx (1)
9-9: LGTM!apps/meteor/client/views/omnichannel/components/Field.tsx (1)
4-4: LGTM!apps/meteor/client/views/omnichannel/components/FormSkeleton.tsx (1)
4-4: LGTM!apps/meteor/client/views/omnichannel/components/Info.tsx (1)
11-15: LGTM!apps/meteor/client/views/omnichannel/components/Label.tsx (1)
4-4: LGTM!apps/meteor/client/views/omnichannel/components/OmnichannelVerificationTag.tsx (1)
6-9: LGTM!apps/meteor/client/views/omnichannel/components/Tags.tsx (1)
12-18: LGTM!
1e3e61e to
c994aa9
Compare
…export component props types
…dePanelOmnichannelBadges): export component props types
…: export component props types
…SidePanelParentRoom): export component props types
…component props types
…t component props types
…onent props types
…ponent props types
…component props types
…t component props types
…nts/CannedResponsesComposer): export component props types
…ualBar/CannedResponse): export component props types
…: export component props types
…CreateCannedResponse): export component props types
…ponent props types
…Contact): export component props types
c994aa9 to
98391fc
Compare
Proposed changes (including videos or screenshots)
It explicits the types for component props, following our guideline.
Issue(s)
Steps to test or reproduce
Further comments
Task: ARCH-2213
Summary by CodeRabbit