Files
team/webapp/platform/components/CLAUDE.OPTIONAL.md
Nick MisasiandGitHub 2bc425abfe Add optional Claude.md orchestration for Webapp folder (#34668)
* Add CLAUDE.md documentation files for webapp directories

- Add root webapp CLAUDE.md with overview and build commands
- Add channels CLAUDE.md with architecture and testing info
- Add documentation for actions, components, selectors, utils
- Add documentation for sass, tests, and mattermost-redux
- Add platform documentation for client and types
- Update .gitignore

* Add CLAUDE docs and allow tracking

* Clarify CLAUDE instructions for i18n workflow

* Refactor webapp/CLAUDE.md into a nested hierarchy

Decomposed the monolithic webapp/CLAUDE.md into focused, context-aware
files distributed across the directory structure:
- webapp/CLAUDE.md (Root overview)
- webapp/channels/CLAUDE.md (Channels workspace)
- webapp/channels/src/components/CLAUDE.md
- webapp/channels/src/actions/CLAUDE.md
- webapp/channels/src/selectors/CLAUDE.md
- webapp/channels/src/packages/mattermost-redux/CLAUDE.md
- webapp/platform/CLAUDE.md (Platform workspace)
- webapp/platform/client/CLAUDE.md

* Move files to optional, then add script to move them to proper claud.md
2026-01-14 13:04:20 -05:00

1.4 KiB
Raw Permalink Blame History

CLAUDE: platform/components/ (@mattermost/components)

Purpose

  • Cross-product React components (GenericModal, tour tips, loaders, hooks) shared by Channels, Boards, Playbooks, and plugins.
  • Ensures consistent UX, theming, and accessibility across Mattermost surfaces.

Implementation Guidelines

  • Follow webapp/STYLE_GUIDE.md → React Component Structure, Styling & Theming, Accessibility.
  • Components must be framework-agnostic: accept data/handlers via props, avoid direct Redux or routing dependencies.
  • Keep styles local via SCSS modules or styled components already used in this package; expose classNames for host overrides when necessary.
  • Include Storybook/README snippets where helpful (see package README).

Testing

  • All components need RTL tests (*.test.tsx) demonstrating accessibility behaviors.
  • Provide test utils (testUtils.tsx) for consumers who need to mock these components.

Key Modules

  • generic_modal/ – baseline modal with focus trapping and keyboard handling.
  • tour_tip/ – coach marks with backdrop management.
  • skeleton_loader/, pulsating_dot/ – loading indicators.
  • hooks/ – shared hooks like useFocusTrap.

Release Notes

  • Breaking props or behavior requires updating platform/components/README.md and notifying dependent teams.

References

  • generic_modal/generic_modal.tsx, tour_tip/tour_tip.tsx, hooks/useFocusTrap.test.tsx.