diff --git a/src/app/components/setting-tile/SettingTile.tsx b/src/app/components/setting-tile/SettingTile.tsx index 36c1dcce0..855c86270 100644 --- a/src/app/components/setting-tile/SettingTile.tsx +++ b/src/app/components/setting-tile/SettingTile.tsx @@ -34,7 +34,8 @@ export function SettingTile({ title, description, before, after, children }: Set }); return ( - + // data-setting-tile: lets a group card draw dividers between tiles only (#273). + {before && {before}} {title && ( diff --git a/src/app/features/room-settings/RoomInsights.tsx b/src/app/features/room-settings/RoomInsights.tsx index d7dfddac4..aa267e4d7 100644 --- a/src/app/features/room-settings/RoomInsights.tsx +++ b/src/app/features/room-settings/RoomInsights.tsx @@ -401,16 +401,19 @@ export function RoomInsights({ requestClose }: RoomInsightsProps) { {displayName} -
+ {/* [Gitea #270] The bar's % width is of its own track, + not of the row, so the count always fits beside it. */} +
+
+
{count} diff --git a/src/app/features/room/message/Message.tsx b/src/app/features/room/message/Message.tsx index 5a05ed005..9bf72e2a4 100644 --- a/src/app/features/room/message/Message.tsx +++ b/src/app/features/room/message/Message.tsx @@ -1137,25 +1137,31 @@ export const Message = React.memo( ); + // [Gitea #269] The content column shrinks to the message's width; the + // receipt pill / delivery status sit OUTSIDE it, in a full-width column, + // so their `margin-left: auto` reaches the row's right edge instead of + // wherever the text happens to end. const msgContentJSX = ( - - {reply} - {edit && onEditId ? ( - onEditId()} - /> - ) : ( - children - )} - {reactions} + + + {reply} + {edit && onEditId ? ( + onEditId()} + /> + ) : ( + children + )} + {reactions} + {readReceiptUsers.length > 0 && ( (null); const [selected, setSelected] = useState(null); @@ -198,6 +211,10 @@ export function ProfileDecoration() { {/* Current selection preview */} + {/* [Gitea #272] Your own avatar with the decoration overlaid, as the + timeline draws it (AvatarDecoration: the image is the avatar plus + an 8px margin on every side). With no decoration the circle gets + a visible dashed outline instead of vanishing into the card. */}
+ + {nameInitials(myName)}} + /> + {selected && ( )} diff --git a/src/app/features/settings/general/General.tsx b/src/app/features/settings/general/General.tsx index 7f25ad901..e0e21ba78 100644 --- a/src/app/features/settings/general/General.tsx +++ b/src/app/features/settings/general/General.tsx @@ -111,7 +111,8 @@ import { translationUnavailableText, } from '../../../utils/translation/langUtils'; import { chromeTranslationEngine } from '../../../utils/translation/chromeEngine'; -import { SequenceCardStyle } from '../styles.css'; +import { SequenceCardStyle, SettingTileGroup } from '../styles.css'; +import { ScreenSize, useScreenSize } from '../../../hooks/useScreenSize'; import { UpdateProgress, useTauriUpdater } from '../../../hooks/useTauriUpdater'; import { describeUpdateError, @@ -1598,6 +1599,7 @@ function Privacy() { // [Gitea #104] Sync toggle + the two manual actions. The toggle is itself // device-local (never synced) so switching it off here sticks. function SettingsSyncSection() { + const isMobile = useScreenSize() === ScreenSize.Mobile; const [settingsSync, setSettingsSync] = useSetting(settingsAtom, 'settingsSync'); const { pushNow, clearRemote } = useSettingsSyncActions(); const [busy, setBusy] = useState<'push' | 'clear' | null>(null); @@ -1621,6 +1623,34 @@ function SettingsSyncSection() { } }; + const syncButtons = ( + + + + + ); + return ( Sync @@ -1636,34 +1666,12 @@ function SettingsSyncSection() { - - - - } - /> + // [Gitea #273] On phones the two buttons squeezed the text into a + // narrow column; put them under the description there. + after={isMobile ? undefined : syncButtons} + > + {isMobile && {syncButtons}} + {note && ( - + {/* [Gitea #271] T200 like every other setting description. */} + Filter background noise from your mic during calls. Browser-native uses the built-in WebRTC suppressor (Google NSNet2). ML runs a dedicated model for stronger removal. @@ -2033,7 +2042,7 @@ function Calls() { )} - + - + [data-setting-tile] ~ [data-setting-tile]`, { + borderTop: `1px solid color-mix(in srgb, ${color.SurfaceVariant.OnContainer} 14%, transparent)`, + paddingTop: config.space.S400, +});