jared
657ca3a5ca
feat: GIF previews, room context menu, policy lists, mention pulse, collapsible messages, send animation, D&D fix
...
P3-5: Giphy/Tenor URL preview cards — full-width thumbnail from og:image
mxc URL, GIF badge overlay, site badge + title footer; GifCard shared by
both; BadgeGiphy (teal) and BadgeTenor (blue) CSS classes
P3-9: Policy list viewer — read-only panel in Room Settings + Space
Settings (admin/50+ PL only); enter room ID or alias; tabs for Users /
Rooms / Servers; glob pattern warning color; Ban badge; entity + reason
P5-8: Mention highlight pulse — 0.6s scale+glow keyframe on incoming
@mention messages; prefers-reduced-motion aware; only fires on new
incoming messages (isNewRef), not on history load; onAnimationEnd cleanup
P5-19: Collapsible long messages — ResizeObserver clamps text bodies
>320px with gradient fade + "Read more ↓" / "Show less ↑" button; resets
on eventId change; skips images/video/audio/file; smooth CSS transition
P5-23: Message send animation — own messages fade+scale in (0.97→1,
0.4→1 opacity, 150ms ease-out); prefers-reduced-motion aware; one-shot
via isNewRef + onAnimationEnd clear
P5-26: Room context menu — Copy Link (matrix.to URL, 1.5s Copied!
feedback), Mute with duration (15m/1h/8h/24h/indefinite, localStorage
timer key io.lotus.mute_timers), Mark as read; Icons.Link + Icons.BellMute
BUG D&D: dragCounter ref replaces fragile dragState machine — enter
increments, leave decrements (hides at 0), drop resets to 0; fixes
spurious dragleave from child element boundary crossings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 15:51:18 -04:00
Lotus Bot
7079462503
chore: upgrade React 18→19 and fix breaking type changes
...
- react 18.2.0 to 19.2.6
- react-dom 18.2.0 to 19.2.6
- @types/react 18.2.39 to 19.2.15
- @types/react-dom 18.2.17 to 19.2.3
React 19 breaking changes fixed:
- useRef<T>(null) now returns RefObject<T | null>; cast to
RefObject<T> at 16 component call sites (safe, runtime unchanged)
- useRef<T>() without arg no longer valid; add | undefined>(undefined)
in useDebounce, useFileDrop, useThrottle, useVirtualPaginator hooks,
RoomInput, RoomTimeline, and ClientNonUIFeatures
- useReducer<typeof reducer> 1-arg form removed; drop explicit type arg
in useForceUpdate (inferred from reducer function)
- global JSX namespace removed; import type { JSX } from react in
react-custom-html-parser.tsx
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-22 13:24:07 -04:00
Lotus Bot
61a1f008d0
chore: upgrade i18next 26, prettier 3, fontsource-variable, domhandler 6, lint-staged 17
...
- i18next 23->26 + react-i18next 15->17
- prettier 2->3, reformat all files
- replace @fontsource/inter with @fontsource-variable/inter 5, update import path
- domhandler 5->6 (aligns with transitive deps)
- lint-staged 16->17
2026-05-21 23:30:50 -04:00
Ajay Bura
64f2f25702
Refactor state & Custom editor ( #1190 )
...
* Fix eslint
* Enable ts strict mode
* install folds, jotai & immer
* Enable immer map/set
* change cross-signing alert anim to 30 iteration
* Add function to access matrix client
* Add new types
* Add disposable util
* Add room utils
* Add mDirect list atom
* Add invite list atom
* add room list atom
* add utils for jotai atoms
* Add room id to parents atom
* Add mute list atom
* Add room to unread atom
* Use hook to bind atoms with sdk
* Add settings atom
* Add settings hook
* Extract set settings hook
* Add Sidebar components
* WIP
* Add bind atoms hook
* Fix init muted room list atom
* add navigation atoms
* Add custom editor
* Fix hotkeys
* Update folds
* Add editor output function
* Add matrix client context
* Add tooltip to editor toolbar items
* WIP - Add editor to room input
* Refocus editor on toolbar item click
* Add Mentions - WIP
* update folds
* update mention focus outline
* rename emoji element type
* Add auto complete menu
* add autocomplete query functions
* add index file for editor
* fix bug in getPrevWord function
* Show room mention autocomplete
* Add async search function
* add use async search hook
* use async search in room mention autocomplete
* remove folds prefer font for now
* allow number array in async search
* reset search with empty query
* Autocomplete unknown room mention
* Autocomplete first room mention on tab
* fix roomAliasFromQueryText
* change mention color to primary
* add isAlive hook
* add getMxIdLocalPart to mx utils
* fix getRoomAvatarUrl size
* fix types
* add room members hook
* fix bug in room mention
* add user mention autocomplete
* Fix async search giving prev result after no match
* update folds
* add twemoji font
* add use state provider hook
* add prevent scroll with arrow key util
* add ts to custom-emoji and emoji files
* add types
* add hook for emoji group labels
* add hook for emoji group icons
* add emoji board with basic emoji
* add emojiboard in room input
* select multiple emoji with shift press
* display custom emoji in emojiboard
* Add emoji preview
* focus element on hover
* update folds
* position emojiboard properly
* convert recent-emoji.js to ts
* add use recent emoji hook
* add io.element.recent_emoji to account data evt
* Render recent emoji in emoji board
* show custom emoji from parent spaces
* show room emoji
* improve emoji sidebar
* update folds
* fix pack avatar and name fallback in emoji board
* add stickers to emoji board
* fix bug in emoji preview
* Add sticker icon in room input
* add debounce hook
* add search in emoji board
* Optimize emoji board
* fix emoji board sidebar divider
* sync emojiboard sidebar with scroll & update ui
* Add use throttle hook
* support custom emoji in editor
* remove duplicate emoji selection function
* fix emoji and mention spacing
* add emoticon autocomplete in editor
* fix string
* makes emoji size relative to font size in editor
* add option to render link element
* add spoiler in editor
* fix sticker in emoji board search using wrong type
* render custom placeholder
* update hotkey for block quote and block code
* add terminate search function in async search
* add getImageInfo to matrix utils
* send stickers
* add resize observer hook
* move emoji board component hooks in hooks dir
* prevent editor expand hides room timeline
* send typing notifications
* improve emoji style and performance
* fix imports
* add on paste param to editor
* add selectFile utils
* add file picker hook
* add file paste handler hook
* add file drop handler
* update folds
* Add file upload card
* add bytes to size util
* add blurHash util
* add await to js lib
* add browser-encrypt-attachment types
* add list atom
* convert mimetype file to ts
* add matrix types
* add matrix file util
* add file related dom utils
* add common utils
* add upload atom
* add room input draft atom
* add upload card renderer component
* add upload board component
* add support for file upload in editor
* send files with message / enter
* fix circular deps
* store editor toolbar state in local store
* move msg content util to separate file
* store msg draft on room switch
* fix following member not updating on msg sent
* add theme for folds component
* fix system default theme
* Add reply support in editor
* prevent initMatrix to init multiple time
* add state event hooks
* add async callback hook
* Show tombstone info for tombstone room
* fix room tombstone component border
* add power level hook
* Add room input placeholder component
* Show input placeholder for muted member
2023-06-12 16:45:23 +05:30