Feature issue#303 - #331
Conversation
|
Hi @DenizAltunkapan, The implementation works, but adding the emoji datasets increases the initial bundle from 2.00 MB to 2.21 MB. Should I lazy-load the emoji picker/data, or should we adjust the existing budget? |
prashantpiyush1111
left a comment
There was a problem hiding this comment.
Reviewed PR #331 against the linked issue and the changed implementation. The emoji picker is scoped to the private-chat flow and the diff preserves the existing caret-position insertion path while adding categories, search, recents, keyboard navigation, and layout handling. I did not identify a blocking correctness issue in the reviewed diff. One validation caveat: I was not able to execute the repository test suite in this environment, so this review is based on the actual PR diff and repository context rather than claiming locally executed tests.
prashantpiyush1111
left a comment
There was a problem hiding this comment.
Merge-gate review — Changes Requested
I re-verified PR #331 against issue #303 and the current head SHA cf7c924ec3f91dc3e6890ff339ef66e7f3d7cbb5 rather than relying on the PR description.
Blocking findings
- Frontend CI is failing on the PR head. GitHub Actions run
33338027105forcf7c924ec3f91dc3e6890ff339ef66e7f3d7cbb5completed withfailure;Install dependenciesandPrettierpassed, but theBuild projectstep failed. The repository workflow defines that step asnpm run buildinfrontend, so this PR is not currently merge-gate clean. I could not execute the checkout locally because this review environment cannot resolvegithub.com, so I am not claiming a local test/build result. Please fix the build failure and rerun CI.
Acceptance criteria verification
- Full standard emoji set: Implemented in diff via
unicode-emoji-jsonandEMOJI_LIST. - Search by name and keyword: Implemented in diff in
visibleEmojis. - Category tabs: Implemented in diff for the requested categories.
- Recently used, persisted per user: Implemented in diff via the namespaced localStorage key and 24-item list.
- Keyboard navigation + caret insertion: Implemented in diff; the picker uses arrow-key focus movement and emits the selected character back to the existing
insertEmoji($event)path.
Validation / failure-path review
- Unknown emoji-data groups are skipped (
if (!category) continue): fail-closed for unsupported groups; they are not exposed accidentally. - Empty/malformed localStorage recents fall back to an empty list through the
catch: fail-closed for recents, without breaking the picker. - localStorage write failures are deliberately swallowed: fail-open only for the optional recents persistence feature; the selected emoji is still emitted, so message insertion is not blocked.
- Grid keyboard handling returns for unsupported keys and leaves native button behavior intact; no unsafe input path is introduced.
Test coverage gap
The PR changes 9 files and adds no test file/change. The linked issue has interaction-heavy requirements (search, categories, recents persistence, keyboard navigation, and caret insertion), so these should have automated coverage. This is especially important because the CI workflow currently runs formatting/build only and does not execute Angular tests.
Verdict: Changes Requested.
Please fix the failing frontend build first; then add/restore focused component tests for the new picker behavior and rerun CI.
|
Hi @prashantpiyush1111 @DenizAltunkapan please check now |
DenizAltunkapan
left a comment
There was a problem hiding this comment.
@AnUbH75 thanks, looks good!
Summary
emojilibkeyword support.Linked issue
Closes #303
How to test
Notes / Risk
unicode-emoji-jsonand keyword search usesemojilib.