RocketChat / RocketChat/Rocket.Chat
Fix TypeScript `any` type in MenuProps ref property
Open
Nobody has claimed this yet.
type: feature
- Dominant language
- TypeScript
- Stars
- 46.1k
- Forks
- 13.9k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 130
Description
Description
The MenuProps type currently uses any for the ref property, which bypasses TypeScript's type safety.
Location
packages/livechat/src/components/Menu/index.tsx
Current Code
type MenuProps = {
hidden?: boolean;
placement?: string;
ref?: any; // FIXME: remove this
} & Omit<HTMLAttributes<HTMLDivElement>, 'ref'>;
Impact
- ✅ Improves type safety
- ✅ Removes technical debt (addresses FIXME comment)
- ✅ Prevents potential runtime errors from incorrect ref usage
- ✅ Better IDE autocomplete and type checking
Additional Context
This appears to be existing technical debt as indicated by the // FIXME: remove this comment.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading packages/livechat/src/components/Menu/index.tsx and tracing how MenuProps.ref is consumed. Determine the appropriate ref type from those usages, remove the any FIXME, and verify the package's TypeScript checks pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Refactor
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 55/100