feat(chat): Implement full emoji picker with search and categories - #308
feat(chat): Implement full emoji picker with search and categories#308Sayan-pixel wants to merge 3 commits into
Conversation
…ixes Vault-Web#303) - Replace hardcoded emoji list with emoji-picker-element. - Support native system emojis for smaller bundle size. - Include search, categories, and recently used functionality. - Implement click-outside handler to close the popover. - Improve keyboard accessibility for category tab navigation.
There was a problem hiding this comment.
🟡 Not ready to approve
There are verified runtime/behavioral issues in the new emoji picker event handling (target vs currentTarget, weak typing/guarding) and an unexpected root-level lockfile that likely shouldn’t be committed.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.
Pull request overview
This PR upgrades the private chat composer’s emoji UX by replacing the small hardcoded emoji grid with the emoji-picker-element web component to provide a full emoji set with search, categories, and “recently used” behavior (handled by the component).
Changes:
- Replaced the in-template emoji grid with
<emoji-picker>and wired selection into the existing caret insertion logic. - Added keyboard handling for category tab switching and a document click-outside handler to close the popover.
- Added
emoji-picker-elementas a runtime dependency and updated styles to theme the picker.
File summaries
| File | Description |
|---|---|
| package-lock.json | Adds a new root lockfile (currently empty/likely accidental). |
| frontend/src/app/pages/private-chat-dialog/private-chat-dialog.component.ts | Integrates emoji-picker-element, updates insertion and popover closing behavior, adds keyboard/click-outside handlers. |
| frontend/src/app/pages/private-chat-dialog/private-chat-dialog.component.html | Replaces hardcoded emoji buttons with <emoji-picker> and updates focus handling. |
| frontend/src/app/pages/private-chat-dialog/private-chat-dialog.component.scss | Styles the <emoji-picker> web component and adjusts responsive layout. |
| frontend/src/app/pages/private-chat-dialog/chat-reactions.ts | Removes the hardcoded CHAT_EMOJIS list. |
| frontend/package.json | Adds emoji-picker-element dependency. |
| frontend/package-lock.json | Locks emoji-picker-element dependency. |
Review details
Files not reviewed (1)
- frontend/package-lock.json: Generated file
- Files reviewed: 5/7 changed files
- Comments generated: 3
- Review effort level: Lite
We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.
|
@Sayan-pixel please apply copilots requested changes |
Summary
Replaced the hardcoded, limited emoji list in the chat composer with a full-featured emoji picker using
emoji-picker-element.ArrowLeft/ArrowRight.Linked issue
Closes #303
How to test
ArrowLeftandArrowRightkeys to navigate the category tabs and verify the categories switch instantly.Notes / Risk
emoji-picker-elementrelies entirely on native system fonts rather than shipping large sprite sheets.emoji-picker-elementas a runtime dependency.