fix(settings): align host switcher with sidebar rows
The host picker reused the composer trigger's content-width pill, so its label sat 6px left of the section rows and the chevron hugged the label instead of the trailing edge. Add a `block` mode to ComboboxTrigger that fills the width and uses the sidebar-row gap, and size the status dot to the icon footprint so the label and chevron line up with the rows below.
This commit is contained in:
@@ -39,7 +39,8 @@ import { AppDiagnosticSheet } from "@/components/app-diagnostic-sheet";
|
||||
import { ComboboxTrigger } from "@/components/ui/combobox-trigger";
|
||||
import { SidebarHeaderRow } from "@/components/sidebar/sidebar-header-row";
|
||||
import { SidebarSeparator } from "@/components/sidebar/sidebar-separator";
|
||||
import { HostPicker as SharedHostPicker, HostStatusDotSlot } from "@/components/hosts/host-picker";
|
||||
import { HostPicker as SharedHostPicker } from "@/components/hosts/host-picker";
|
||||
import { HostStatusDot } from "@/components/host-status-dot";
|
||||
import { ScreenTitle } from "@/components/headers/screen-title";
|
||||
import { HeaderIconBadge } from "@/components/headers/header-icon-badge";
|
||||
import { SettingsSection } from "@/screens/settings/settings-section";
|
||||
@@ -938,13 +939,18 @@ function HostPicker({ activeServerId, sortedHosts, onSelectHost, onAddHost }: Ho
|
||||
>
|
||||
<ComboboxTrigger
|
||||
ref={triggerRef}
|
||||
block
|
||||
style={triggerStyle}
|
||||
onPress={handleOpen}
|
||||
accessibilityRole="button"
|
||||
accessibilityLabel={t("settings.hostPicker.switchHost")}
|
||||
testID="settings-host-picker"
|
||||
>
|
||||
{activeHost ? <HostStatusDotSlot serverId={activeHost.serverId} /> : null}
|
||||
{activeHost ? (
|
||||
<View style={sidebarStyles.pickerTriggerDot}>
|
||||
<HostStatusDot serverId={activeHost.serverId} />
|
||||
</View>
|
||||
) : null}
|
||||
<Text style={sidebarStyles.pickerTriggerLabel} numberOfLines={1}>
|
||||
{activeHost?.label ?? t("settings.groups.host")}
|
||||
</Text>
|
||||
@@ -1708,4 +1714,11 @@ const sidebarStyles = StyleSheet.create((theme) => ({
|
||||
color: theme.colors.foreground,
|
||||
fontWeight: theme.fontWeight.normal,
|
||||
},
|
||||
// Match the setting items' icon footprint so the host label aligns with them.
|
||||
pickerTriggerDot: {
|
||||
width: theme.iconSize.md,
|
||||
height: theme.iconSize.md,
|
||||
alignItems: "center",
|
||||
justifyContent: "center",
|
||||
},
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user