From ec5e9812aa3d9ef746b26ca7ce1fd9c5906b9098 Mon Sep 17 00:00:00 2001 From: Evie Gauthier Date: Mon, 16 Mar 2026 17:16:04 -0400 Subject: [PATCH 1/8] fix: quick issues batch 1 (#2 #44 #45 #52 #66 #67 #69 #79 #35 #103 #120 #168) --- .changeset/quick-issues-batch-1.md | 19 ++++++++ index.html | 3 +- public/manifest.json | 4 +- src/app/components/RenderMessageContent.tsx | 4 +- src/app/components/editor/Editor.tsx | 2 + .../autocomplete/BaseAutocompleteMenu.tsx | 4 +- .../autocomplete/EmoticonAutocomplete.tsx | 2 + .../autocomplete/RoomMentionAutocomplete.tsx | 2 + .../autocomplete/UserMentionAutocomplete.tsx | 2 + src/app/components/media/Video.tsx | 30 +++++++++++- src/app/features/room/RoomInput.tsx | 7 +++ .../notifications/SystemNotification.tsx | 22 +++++++++ src/app/hooks/useClientConfig.ts | 2 + src/app/pages/App.tsx | 24 ++++++---- src/app/pages/auth/AuthLayout.tsx | 18 +++++-- src/app/pages/auth/ServerPicker.tsx | 25 +++++++++- src/app/pages/client/ClientNonUIFeatures.tsx | 9 ++-- .../client/sidebar/AccountSwitcherTab.tsx | 48 ++++++++++++++++++- src/app/plugins/matrix-to.ts | 10 +++- .../voice-recorder-kit/supportedCodec.ts | 1 - src/app/state/settings.ts | 2 + src/app/utils/sanitize.test.ts | 1 - src/index.css | 1 + 23 files changed, 212 insertions(+), 30 deletions(-) create mode 100644 .changeset/quick-issues-batch-1.md diff --git a/.changeset/quick-issues-batch-1.md b/.changeset/quick-issues-batch-1.md new file mode 100644 index 000000000..783ae7843 --- /dev/null +++ b/.changeset/quick-issues-batch-1.md @@ -0,0 +1,19 @@ +--- +default: patch +--- + +Fix several small UI/UX issues: + +- **#2**: Reduced-motion: add `animation-iteration-count: 1` so spinners stop after one cycle instead of running indefinitely at near-zero speed +- **#44**: Account switcher: show a confirmation dialog before signing out of an account +- **#45**: Server picker: prevent iOS from restoring the old server name while the user is actively editing the input +- **#52**: Message editor: add `autoCapitalize="sentences"` to respect the OS/keyboard setting on mobile +- **#66**: Adding account: show a "Cancel" button next to the "Adding account" label so users can abort the flow +- **#67**: Support `matrixToBaseUrl` in `config.json` to override the default matrix.to link base +- **#79/#35**: Autocomplete: pressing Enter now selects the top item instead of sending the message +- **#69**: Autocomplete: focus returns to the message editor after completing a mention or emoji +- **#103**: Browser tab/PWA theme-color: use the correct light (`#ffffff`) and dark (`#1b1a21`) colours via media-query meta tags +- **#120**: Video messages: volume is persisted across page loads via `localStorage` +- **#168**: Notifications: add "Favicon Dot: Mentions Only" setting — when enabled, the favicon only changes for mentions/keywords, not plain unreads + +Closes #2, #44, #45, #52, #66, #67, #79, #35, #69, #103, #120, #168 diff --git a/index.html b/index.html index 21c34e6d1..62ce1dabb 100644 --- a/index.html +++ b/index.html @@ -23,7 +23,8 @@ property="og:description" content="A Matrix client where you can enjoy the conversation using (not) simple, elegant and secure interface protected by e2ee with the power of open source. And colorful cosmetics. Because yes." /> - + + diff --git a/public/manifest.json b/public/manifest.json index 67deb47a2..696b875ee 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -7,8 +7,8 @@ "display": "standalone", "orientation": "portrait", "start_url": "./", - "background_color": "#fff", - "theme_color": "#fff", + "background_color": "#1b1a21", + "theme_color": "#1b1a21", "icons": [ { "src": "./public/android/android-chrome-36x36.png", diff --git a/src/app/components/RenderMessageContent.tsx b/src/app/components/RenderMessageContent.tsx index f235b7586..b892f7691 100644 --- a/src/app/components/RenderMessageContent.tsx +++ b/src/app/components/RenderMessageContent.tsx @@ -28,7 +28,7 @@ import { VideoContent, } from './message'; import { UrlPreviewCard, UrlPreviewHolder } from './url-preview'; -import { Image, MediaControl, Video } from './media'; +import { Image, MediaControl, PersistedVolumeVideo } from './media'; import { ImageViewer } from './image-viewer'; import { PdfViewer } from './Pdf-viewer'; import { TextViewer } from './text-viewer'; @@ -323,7 +323,7 @@ function RenderMessageContentInternal({ ) : undefined } - renderVideo={(p) =>