Skip to content

Commit 2ec1ec3

Browse files
committed
fix(app): mobile prompt input buttons overflow on narrow viewports
- Use tighter gap spacing on mobile (gap-1 vs gap-2 on desktop) - Add shrink-0 to prevent buttons from compressing - Add min-w-0 to left section to allow proper flex shrinking - Hide text labels on mobile for model and thinking selectors - Remove absolute positioning from right button group Tested at 320px (iPhone SE) and 375px (iPhone) viewports. Fixes anomalyco#11613
1 parent 0dc80df commit 2ec1ec3

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

packages/app/src/components/prompt-input.tsx

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1922,7 +1922,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
19221922
</Show>
19231923
</div>
19241924
<div class="relative p-3 flex items-center justify-between">
1925-
<div class="flex items-center justify-start gap-2">
1925+
<div class="flex items-center justify-start gap-1 sm:gap-2 min-w-0">
19261926
<Switch>
19271927
<Match when={store.mode === "shell"}>
19281928
<div class="flex items-center gap-2 px-2 h-6">
@@ -1941,7 +1941,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
19411941
options={local.agent.list().map((agent) => agent.name)}
19421942
current={local.agent.current()?.name ?? ""}
19431943
onSelect={local.agent.set}
1944-
class="capitalize"
1944+
class="capitalize shrink-0"
19451945
variant="ghost"
19461946
gutter={12}
19471947
/>
@@ -1957,13 +1957,15 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
19571957
<Button
19581958
as="div"
19591959
variant="ghost"
1960-
class="px-2"
1960+
class="px-2 shrink-0"
19611961
onClick={() => dialog.show(() => <DialogSelectModelUnpaid />)}
19621962
>
19631963
<Show when={local.model.current()?.provider?.id}>
19641964
<ProviderIcon id={local.model.current()!.provider.id as IconName} class="size-4 shrink-0" />
19651965
</Show>
1966-
{local.model.current()?.name ?? language.t("dialog.model.select.title")}
1966+
<span class="hidden sm:inline">
1967+
{local.model.current()?.name ?? language.t("dialog.model.select.title")}
1968+
</span>
19671969
<MorphChevron
19681970
expanded={!!dialog.active?.id && dialog.active.id.startsWith("select-model-unpaid")}
19691971
/>
@@ -1976,13 +1978,19 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
19761978
title={language.t("command.model.choose")}
19771979
keybind={command.keybind("model.choose")}
19781980
>
1979-
<ModelSelectorPopover triggerAs={Button} triggerProps={{ variant: "ghost" }} gutter={12}>
1981+
<ModelSelectorPopover
1982+
triggerAs={Button}
1983+
triggerProps={{ variant: "ghost", class: "shrink-0" }}
1984+
gutter={12}
1985+
>
19801986
{(open) => (
19811987
<>
19821988
<Show when={local.model.current()?.provider?.id}>
19831989
<ProviderIcon id={local.model.current()!.provider.id as IconName} class="size-4 shrink-0" />
19841990
</Show>
1985-
{local.model.current()?.name ?? language.t("dialog.model.select.title")}
1991+
<span class="hidden sm:inline">
1992+
{local.model.current()?.name ?? language.t("dialog.model.select.title")}
1993+
</span>
19861994
<MorphChevron expanded={open} class="text-text-weak" />
19871995
</>
19881996
)}
@@ -1998,13 +2006,15 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
19982006
<Button
19992007
data-action="model-variant-cycle"
20002008
variant="ghost"
2001-
class="text-text-strong text-12-regular"
2009+
class="text-text-strong text-12-regular shrink-0"
20022010
onClick={() => local.model.variant.cycle()}
20032011
>
20042012
<Show when={local.model.variant.list().length > 1}>
20052013
<ReasoningIcon percentage={reasoningPercentage()} size={16} strokeWidth={1.25} />
20062014
</Show>
2007-
<CycleLabel value={currrentModelVariant()} />
2015+
<span class="hidden sm:inline">
2016+
<CycleLabel value={currrentModelVariant()} />
2017+
</span>
20082018
</Button>
20092019
</TooltipKeybind>
20102020
</Show>
@@ -2040,7 +2050,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
20402050
</Match>
20412051
</Switch>
20422052
</div>
2043-
<div class="flex items-center gap-1 absolute right-3 bottom-3">
2053+
<div class="flex items-center gap-1 shrink-0">
20442054
<input
20452055
ref={fileInputRef}
20462056
type="file"

0 commit comments

Comments
 (0)