Commit Graph

124 Commits

Author SHA1 Message Date
c7bd376292 feat: Implement sub-room functionality
- Added support for sub-rooms in the SpaceHierarchy component, allowing rooms to have nested child rooms.
- Introduced UnjoinedSubRoomItem component to display unjoined sub-rooms with a join button.
- Created SubRooms settings page for managing sub-rooms, including adding and removing sub-rooms.
- Updated RoomNavItem to include options for creating sub-rooms.
- Enhanced room fetching logic to filter out sub-rooms from the main room list.
- Added hooks for managing sub-rooms state and permissions.
- Updated relevant state management to handle sub-room creation and association with parent rooms.
2026-03-15 16:25:53 +11:00
a0c0068997 feat: implement auto-fix for one-time key conflicts in crypto database 2026-03-13 01:47:56 +11:00
c07cf58086 feat: implement fallback to unauthenticated requests for media fetching on 401 errors 2026-03-13 01:19:58 +11:00
4756bfdc57 feat: add thread preview functionality to RoomNavItem component 2026-03-13 00:54:12 +11:00
ced29a6571 feat: add thread functionality to room features
- Enhance RoomInput to support sending messages as replies in threads by adding `threadRootId` prop.
- Update RoomTimeline to manage active thread state and handle opening threads.
- Implement ThreadView component to display thread messages and input.
- Create HomeThreadsCategory to list threads user has participated in.
- Introduce activeThreadIdAtomFamily to manage active thread state across rooms.
2026-03-13 00:44:33 +11:00
37f4297972 feat: add avatar border color customization and improve text contrast across user profile components 2026-03-12 23:08:05 +11:00
67f3ae4d34 feat: add border color customization for user profile chips and improve text contrast 2026-03-12 22:18:05 +11:00
834de012b4 feat: enhance user profile customization with avatar border color and gradient options
- Added support for setting avatar border color and gradient in user profile settings.
- Introduced new hooks for managing user profile styles and fetching metadata from avatars.
- Implemented an AngleSelector component for selecting gradient direction.
- Updated RoomNavItem to display parent space information for direct messages.
- Improved caching mechanism for user banners and profile styles.
- Refactored image metadata handling to include new profile style attributes.
2026-03-12 20:50:00 +11:00
fc30d81f8f feat: Enhance user color and banner management
- Updated `useUserColor` hook to support fetching and embedding user color from avatar metadata with authentication.
- Introduced `useUserBanner` hook for managing user banners stored in avatar metadata, including fetching and embedding functionality.
- Added `fetchAndExtractMetadata` utility to retrieve both color and banner from images.
- Implemented `CustomStatusDialog` component for users to set and clear custom status messages.
- Modified `SettingsTab` to include custom status functionality and improved user experience.
- Enhanced image metadata utilities to support banner extraction and embedding in PNG format.
- Updated sidebar settings to handle user profile changes more gracefully.
2026-03-12 10:58:38 +11:00
7cf6b4e6ae multiuser 2026-03-12 01:08:16 +11:00
30a7725769 feat: enhance image components with draggable attribute and context menu handling 2026-03-08 21:53:32 +11:00
b185e0b129 feat: implement sidebar docked call panel with participant management and sync status handling 2026-02-28 00:54:55 +11:00
29c409fad8 feat: implement useMarkAsRead hook for improved unread state management and update notification handling 2026-02-28 00:10:35 +11:00
f8af51b75c feat: implement video controls and pop-out functionality in Video component 2026-02-27 22:12:47 +11:00
58966aec19 feat: enhance update notification layout and add room info display in developer tools 2026-02-24 21:49:03 +11:00
42cc081d49 feat: enhance LiveKit service URL handling and add clipboard support for Electron 2026-02-22 03:41:07 +11:00
f5ba778e46 feat: add CallParticipantsIndicator component to display active call participants
fix: silently ignore OIDC configuration errors in ServerConfigsLoader
fix: handle loadPreview errors in UrlPreviewCard component
fix: silently ignore errors in notification tap listener setup in tauri
2026-02-22 03:17:36 +11:00
f87978ea9c fix: update links to use the new domain for the project 2026-02-22 00:13:01 +11:00
e218ab5c37 feat: add emoticon conversion feature for text and HTML inputs 2026-02-21 23:55:15 +11:00
ef55d1583f feat: implement Paarrot API for Electron integration with navigation and IPC handlers 2026-02-21 21:40:38 +11:00
6c741577ce feat: add Vite configuration with custom plugins and server settings 2026-02-21 16:16:15 +11:00
c55e311241 feat(youtube): add YouTube embed support with yt-dlp integration for ad-free streaming 2026-02-20 16:27:59 +11:00
7e7f017768 feat(about): update tagline to "Squawk to yer mateys!" and display dynamic version number 2026-02-20 00:46:12 +11:00
21d4bc6ad9 feat: add Telegram sticker import functionality
- Implemented TelegramImport component for importing sticker packs from Telegram using a bot token.
- Added utility functions for animated sticker conversion (TGS and WEBM to GIF).
- Created telegramStickerImport module to handle fetching and processing of Telegram sticker sets.
- Introduced GIF.js type definitions for TypeScript support.
2026-02-19 21:57:25 +11:00
168d44d262 feat(about): display dynamic version number in About page 2026-02-19 20:23:45 +11:00
3f6f2134ad feat(call): add docked call panel and remote cursor overlay
- Implemented DockedCallPanel component to render the docked call interface when an active call is present.
- Created RemoteCursorOverlay component to display remote cursor positions during screen sharing.
- Added hooks for managing docked call state and remote cursor functionality.
- Introduced pending drag state management for seamless transitions between docked and floating states.
- Developed embed filter management components for personal and room-wide settings, allowing users to customize URL embed visibility.
- Implemented auto-joining functionality for rooms within spaces, enhancing user experience during space navigation.
- Added state management for tracking joining progress of rooms in spaces.
2026-02-19 17:49:48 +11:00
516000a25f feat: add user color customization and metadata handling
- Implemented `useUserColor` hook to manage user profile color stored in avatar PNG metadata.
- Added `useOtherUserColor` hook to fetch and cache colors from other users' avatars.
- Created utility functions for reading and writing PNG metadata, enabling color embedding and extraction.
- Refactored `SearchResultGroup`, `RoomInput`, `Message`, `RoomPinMenu`, and `Notifications` components to utilize user color for display.
- Introduced `UserColorPicker` component in settings for users to select and save their profile color.
- Enhanced notification and message rendering to prioritize custom user colors over legacy colors.
2026-02-06 05:53:37 +11:00
1a452f52ca feat(call): add sound effects and incoming call notification UI
- Implemented sound management for call events including mute, unmute, deafen, undeafen, call joined, call depart, and dialing sounds.
- Created a new CallSounds class to handle sound playback and state management.
- Added IncomingCallNotification component to display incoming call alerts with caller information and action buttons.
- Styled the incoming call notification using vanilla-extract CSS for animations and layout.
- Integrated sound playback for incoming calls with a 15-second threshold for dialing sound.
2026-02-05 03:24:18 +11:00
cd912025f1 feat: add PresenceAvatar component with presence indicator styles 2026-01-25 22:41:51 +11:00
3efc68e893 Refactor code structure for improved readability and maintainability 2026-01-25 03:09:58 +11:00
a6b76a9be7 feat: implement openExternalUrl utility for consistent external link handling 2026-01-24 07:59:45 +11:00
54f5fa95a6 Fix authenticated media loading for Tauri/WebKit environments
- Add useAuthenticatedMediaUrl hook that fetches media with auth headers
- Add AuthenticatedMedia, AuthenticatedAvatarImage components
- Update downloadMedia and downloadEncryptedMedia to accept access token
- Update all media components to pass access token for auth media
- Fix 401 errors on Matrix servers requiring authenticated media (v1.11+)

This fixes media loading in Tauri desktop apps where service workers
may not work reliably for cross-origin authenticated requests.
2026-01-23 22:31:37 +11:00
94f8466d1c feat: add call management features with useCall and useRoomCallMembers hooks
- Implemented useCall hook for managing call state and actions.
- Created useRoomCallMembers hook to track active call members in a room.
- Added useRtcConfig for fetching RTC configurations and LiveKit JWT.
- Developed Audio settings component for managing audio devices and settings.
- Introduced device selection and screen sharing options in the Audio settings.
- Persisted audio settings in localStorage for user preferences.
2026-01-23 19:35:25 +11:00
Krishan
c88cb4bca9 Release v4.10.2 (#2528) 2025-11-05 17:49:56 +11:00
Ajay Bura
e13d97aa98 Fix member are not sorted correctly after last js-sdk update (#2504) 2025-10-15 17:27:11 +11:00
Krishan
958ae8945d Release v4.10.1 (#2495) 2025-09-29 14:34:38 +10:00
Ginger
b78f6f23b5 Add support to mark videos as spoilers (#2255)
* Add support for MSC4193: Spoilers on Media

* Clarify variable names and wording

* Restore list atom

* Improve spoilered image UX with autoload off

* Use `aria-pressed` to indicate attachment spoiler state

* Improve spoiler button tooltip wording, keep reveal button from conflicting with load errors

* Make it possible to mark videos as spoilers

* Allow videos to be marked as spoilers when uploaded

* Apply requested changes

* Show a loading spinner on spoiled media when unblurred

---------

Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com>
2025-09-25 13:41:35 +10:00
Mari
867a47218a fix: Prevent IME-exiting Enter press from sending message on Safari (#2175)
On most browsers, pressing Enter to end IME composition produces this
sequence of events:
* keydown (keycode 229, key Processing/Unidentified, isComposing true)
* compositionend
* keyup (keycode 13, key Enter, isComposing false)

On Safari, the sequence is different:
* compositionend
* keydown (keycode 229, key Enter, isComposing false)
* keyup (keycode 13, key Enter, isComposing false)

This causes Safari users to mistakenly send their messages when they
press Enter to confirm their choice in an IME.

The workaround is to treat the next keydown with keycode 229 as if it
were part of the IME composition period if it occurs within a short time
of the compositionend event.

Fixes #2103, but needs confirmation from a Safari user.
2025-09-25 09:05:42 +05:30
Ajay Bura
afc251aa7c Add arrow to message bubbles and improve spacing (#2474)
* Add arrow to message bubbles and improve spacing

* make bubble message avatar smaller

* add bubble layout for event content

* adjust bubble arrow

* fix missing return statement for event content

* hide bubble for event content

* add new arrow to bubble message

* fix avatar username relative alignment

* fix types

* fix code block header background

* revert avatar size and make arrow less sharp

* show event messages timestamp to right when bubble is hidden

* fix avatar base css

* move message header outside bubble

* fix event time appears on left in hidden bubles
2025-09-19 21:06:05 +10:00
Ajay Bura
31c6d13fdf fix ctrl + k hotkey not working for browser with some extensions (#2481) 2025-09-12 21:52:51 +10:00
Ajay Bura
b3497d9ed6 fix room address checkbox prop (#2480) 2025-09-12 21:51:13 +10:00
Krishan
7f40605bfe Release v4.10.0 (#2472)
* Release v4.10.0

* update version number in about
2025-08-31 21:05:38 +10:00
Ajay Bura
90ca8ca2c5 Remove unused javascript (#2470) 2025-08-29 19:34:52 +10:00
Ajay Bura
399b1a373e Add new ctrl/cmd - k search modal (#2467)
* add new search modal

* remove search modal from searchTab

* fix member avatar load for space with 2 member

* use media authentication when rendering avatar

* fix hotkey for macos

* add @ in username

* replace subspace minus separator with em dash
2025-08-27 22:25:49 +10:00
Ajay Bura
c1274e851a Add option for monochrome mode (#2464) 2025-08-25 23:19:14 +10:00
Ajay Bura
40d0576b15 Update userId placeholder (#2465)
* update userId placeholder

* update sample names from login username input
2025-08-25 23:18:08 +10:00
Ajay Bura
b4266c26b0 New create chat screen (#2463)
* fix dm invite appears in home

* use migrated function for convert to dm/room commands

* add new create chat screen
2025-08-24 22:40:44 +10:00
Ajay Bura
13cdcbcdb1 New invite user to room dialog (#2460)
* fix 0 displayed in invite with no timestamp

* support displaying invite reason for receiver

* show invite reason as compact message

* remove unused import

* revert: show invite reason as compact message

* remove unused import

* add new invite prompt
2025-08-24 22:34:21 +10:00
Ajay Bura
78a0d11f24 New add existing room/space modal (#2451) 2025-08-19 22:39:31 +10:00
Ajay Bura
63fa60e7f4 Open user profile at around mouse anchor (#2440) 2025-08-16 21:34:46 +10:00