Skip to content

Implement Telegram-style emoji picker and improve accessibility - #14

Open
mx57 wants to merge 18 commits into
psic4t:masterfrom
mx57:master
Open

Implement Telegram-style emoji picker and improve accessibility#14
mx57 wants to merge 18 commits into
psic4t:masterfrom
mx57:master

Conversation

@mx57

@mx57 mx57 commented Jul 26, 2026

Copy link
Copy Markdown

No description provided.

mx57 and others added 18 commits July 18, 2026 22:27
- Updates reaction UI to include a quick-access panel with 6 popular emojis and an expand button
- Integrates `emoji-picker-element` to support any emoji selection
- Fixes SSR issues by lazy-loading the web component via `onMount`
- Updates `Messaging.ts` and components to use `string` for emoji handling instead of a fixed union
- Bumps package version and creates tag v1.1.4 for the APK release GitHub Workflow
…513313389109

feat: Implement Telegram-style full emoji picker for message reactions
…out secrets

- Replace the ANDROID_KEYSTORE_BASE64 secret dependency with an on-the-fly
  self-signed keystore (keytool -genkeypair) so assembleRelease can sign
  the APK with no repository secrets configured.
- Keeps SDK 36 (required by androidx.activity 1.11.0 / androidx.core 1.17.0).
- TEST build only: swap this step for real keystore secrets before a prod release.
fix(android): self-signed test keystore + pin SDK to 35
- Replace 4 fixed reactions with 6 quick emojis + full emoji-picker-element
- Any emoji now supported (string type instead of fixed union)
- Toggle reactions: tap to add/remove your reaction
- Clickable reaction bubbles under messages
- SSR-safe lazy loading of emoji-picker-element
feat: Telegram-style full emoji picker with toggle reactions
Added a complete test suite for `src/lib/utils/fileIcons.ts` covering:
- `detectMediaType` (happy paths, edge cases, fallbacks)
- `formatFileSize`
- `validateFileSize`
- `getFileExtension`
- `getFileIconInfo`

This ensures that the file icon, media detection, and size validation logic is robust and guarded against regressions.
…8196

🧪 test: add test file for fileIcons utilities
Add comprehensive tests for `copyTextToClipboard` covering:
- Happy path using `navigator.clipboard.writeText`
- Fallback logic to `document.execCommand('copy')`
- Error handling and edge cases
- SSR environment without global window/navigator
🧪 test: add comprehensive tests for clipboard utility
Added `aria-label` to the image zoom buttons in `MessageContent.svelte` to improve accessibility for screen readers. The buttons previously relied only on the `alt` text of the images they wrapped, which did not convey their function (viewing full screen). Also added the corresponding translations to the `en.ts` and `ru.ts` locale files.
…3701192309874623

🎨 Palette: Add ARIA label to image zoom buttons in MessageContent
- Added `type="button"` to `<button>` elements in `ChatContextMenu` and `ContactContextMenu` to prevent accidental form submission behavior.
- Translated hardcoded aria-labels in `ContextMenu` to use `$t` for i18n support.
…67311558

🎨 Palette: [UX improvement] Add type="button" and translate aria labels in context menus
…-16380147487481025743

🎨 Palette: Fix non-reactive update for emoji picker in ContextMenu
💡 What: Added `role="menu"` to the container and `role="menuitem"` to buttons in `ChatContextMenu` and `ContactContextMenu`. Added explicit `focus-visible` classes matching hover states and `focus-visible:outline-none`.
🎯 Why: Ensures screen readers announce the dynamically portaled dropdowns as menus, and provides clear, consistent keyboard navigation visibility for users.
♿ Accessibility: Improved semantic markup and keyboard navigation.
…745679854

🎨 Palette: Add ARIA roles and visible focus states to Context Menus
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant