| author | |
| committer | |
| log | b7b3ef1e6fcb5c22a9790d2578fe8af7ce396835 |
| tree | 21f16a9d3feb76ea1a549bb5d495676682e58c07 |
| parent | 8d8189e67dc091ffb91df451c9a957bbd68a5364 |
| signature | Signed by PGP key B5690EEEBB952194 |
5 files changed, 23 insertions(+), 24 deletions(-)
apps/mobile/src/components/ComposerToolbar.tsx+1-1| ... | @@ -32,7 +32,7 @@ export function ComposerInlineControl(props: { | ... | @@ -32,7 +32,7 @@ export function ComposerInlineControl(props: { |
| 32 | readonly icon?: ComponentProps<typeof SymbolView>["name"]; | 32 | readonly icon?: ComponentProps<typeof SymbolView>["name"]; |
| 33 | readonly iconNode?: ReactNode; | 33 | readonly iconNode?: ReactNode; |
| 34 | readonly label: string; | 34 | readonly label: string; |
| 35 | readonly maxWidth?: number; | 35 | readonly maxWidth?: ViewStyle["maxWidth"]; |
| 36 | readonly onPress?: () => void; | 36 | readonly onPress?: () => void; |
| 37 | readonly selected?: boolean; | 37 | readonly selected?: boolean; |
| 38 | readonly static?: boolean; | 38 | readonly static?: boolean; |
apps/mobile/src/features/threads/NewTaskDraftScreen.tsx+18-17| ... | @@ -30,7 +30,6 @@ import { | ... | @@ -30,7 +30,6 @@ import { |
| 30 | ComposerActionButton, | 30 | ComposerActionButton, |
| 31 | ComposerInlineControl, | 31 | ComposerInlineControl, |
| 32 | ComposerToolbarRow, | 32 | ComposerToolbarRow, |
| 33 | ComposerToolbarScroller, | ||
| 34 | } from "../../components/ComposerToolbar"; | 33 | } from "../../components/ComposerToolbar"; |
| 35 | import { AndroidScreenHeader } from "../../components/AndroidScreenHeader"; | 34 | import { AndroidScreenHeader } from "../../components/AndroidScreenHeader"; |
| 36 | import { ComposerAttachmentButton } from "../../components/ComposerAttachmentButton"; | 35 | import { ComposerAttachmentButton } from "../../components/ComposerAttachmentButton"; |
| ... | @@ -1345,21 +1344,23 @@ export function NewTaskDraftScreen(props: { | ... | @@ -1345,21 +1344,23 @@ export function NewTaskDraftScreen(props: { |
| 1345 | onPickMedia={handlePickMedia} | 1344 | onPickMedia={handlePickMedia} |
| 1346 | onPickFiles={handlePickFiles} | 1345 | onPickFiles={handlePickFiles} |
| 1347 | /> | 1346 | /> |
| 1348 | <ComposerToolbarScroller align="end" contentPaddingRight={0} fadeSurface="sheet"> | 1347 | <View className="min-w-0 flex-1 flex-row items-center justify-end gap-2"> |
| 1349 | <ComposerInlineControl | 1348 | <View className="min-w-0 shrink"> |
| 1350 | accessibilityLabel="Model and reasoning settings" | 1349 | <ComposerInlineControl |
| 1351 | disabled={isComposerInteractionLocked} | 1350 | accessibilityLabel="Model and reasoning settings" |
| 1352 | emphasized | 1351 | disabled={isComposerInteractionLocked} |
| 1353 | iconNode={ | 1352 | emphasized |
| 1354 | <ProviderIcon | 1353 | iconNode={ |
| 1355 | provider={flow.selectedModelOption?.providerDriver} | 1354 | <ProviderIcon |
| 1356 | size={16} | 1355 | provider={flow.selectedModelOption?.providerDriver} |
| 1357 | /> | 1356 | size={16} |
| 1358 | } | 1357 | /> |
| 1359 | label={flow.selectedModelOption?.label ?? "Choose model"} | 1358 | } |
| 1360 | maxWidth={152} | 1359 | label={flow.selectedModelOption?.label ?? "Choose model"} |
| 1361 | onPress={settingsSheetPresentation.open} | 1360 | maxWidth="100%" |
| 1362 | /> | 1361 | onPress={settingsSheetPresentation.open} |
| 1362 | /> | ||
| 1363 | </View> | ||
| 1363 | {flow.planModeEnabled ? ( | 1364 | {flow.planModeEnabled ? ( |
| 1364 | <ComposerInlineControl | 1365 | <ComposerInlineControl |
| 1365 | accessibilityHint={`Switches to ${flow.interactionMode === "plan" ? "Build" : "Plan"} mode`} | 1366 | accessibilityHint={`Switches to ${flow.interactionMode === "plan" ? "Build" : "Plan"} mode`} |
| ... | @@ -1380,7 +1381,7 @@ export function NewTaskDraftScreen(props: { | ... | @@ -1380,7 +1381,7 @@ export function NewTaskDraftScreen(props: { |
| 1380 | showChevron={false} | 1381 | showChevron={false} |
| 1381 | /> | 1382 | /> |
| 1382 | ) : null} | 1383 | ) : null} |
| 1383 | </ComposerToolbarScroller> | 1384 | </View> |
| 1384 | </> | 1385 | </> |
| 1385 | )} | 1386 | )} |
| 1386 | <ComposerDictationPrimaryAction | 1387 | <ComposerDictationPrimaryAction |
apps/mobile/src/features/threads/ThreadComposer.tsx+2-2| ... | @@ -780,7 +780,7 @@ export const ThreadComposer = memo(function ThreadComposer(props: ThreadComposer | ... | @@ -780,7 +780,7 @@ export const ThreadComposer = memo(function ThreadComposer(props: ThreadComposer |
| 780 | onPickMedia={props.onPickDraftMedia} | 780 | onPickMedia={props.onPickDraftMedia} |
| 781 | onPickFiles={props.onPickDraftFiles} | 781 | onPickFiles={props.onPickDraftFiles} |
| 782 | /> | 782 | /> |
| 783 | <View className="min-w-0 shrink" style={{ maxWidth: 152 }}> | 783 | <View className="min-w-0 shrink"> |
| 784 | <ComposerInlineControl | 784 | <ComposerInlineControl |
| 785 | accessibilityLabel="Model and reasoning settings" | 785 | accessibilityLabel="Model and reasoning settings" |
| 786 | emphasized | 786 | emphasized |
| ... | @@ -788,7 +788,7 @@ export const ThreadComposer = memo(function ThreadComposer(props: ThreadComposer | ... | @@ -788,7 +788,7 @@ export const ThreadComposer = memo(function ThreadComposer(props: ThreadComposer |
| 788 | <ProviderIcon provider={currentModelOption?.providerDriver} size={16} /> | 788 | <ProviderIcon provider={currentModelOption?.providerDriver} size={16} /> |
| 789 | } | 789 | } |
| 790 | label={currentModelOption?.label ?? currentModelSelection.model} | 790 | label={currentModelOption?.label ?? currentModelSelection.model} |
| 791 | maxWidth={152} | 791 | maxWidth="100%" |
| 792 | onPress={openSettings} | 792 | onPress={openSettings} |
| 793 | /> | 793 | /> |
| 794 | </View> | 794 | </View> |
apps/web/src/components/chat/ChatComposer.tsx-1| ... | @@ -4146,7 +4146,6 @@ export const ChatComposer = memo(function ChatComposer(props: ChatComposerProps) | ... | @@ -4146,7 +4146,6 @@ export const ChatComposer = memo(function ChatComposer(props: ChatComposerProps) |
| 4146 | ) : null} | 4146 | ) : null} |
| 4147 | <ProviderModelPicker | 4147 | <ProviderModelPicker |
| 4148 | isComposerOwned | 4148 | isComposerOwned |
| 4149 | compact={composerControlsCompact} | ||
| 4150 | disabled={providerCatalogPending} | 4149 | disabled={providerCatalogPending} |
| 4151 | activeInstanceId={ | 4150 | activeInstanceId={ |
| 4152 | providerCatalogPending | 4151 | providerCatalogPending |
apps/web/src/components/chat/ProviderModelPicker.tsx+2-3| ... | @@ -42,7 +42,6 @@ export const ProviderModelPicker = memo(function ProviderModelPicker(props: { | ... | @@ -42,7 +42,6 @@ export const ProviderModelPicker = memo(function ProviderModelPicker(props: { |
| 42 | activeProviderIconClassName?: string; | 42 | activeProviderIconClassName?: string; |
| 43 | instanceIndicatorBackground?: string; | 43 | instanceIndicatorBackground?: string; |
| 44 | size?: ComposerControlSize; | 44 | size?: ComposerControlSize; |
| 45 | compact?: boolean; | ||
| 46 | isComposerOwned?: boolean; | 45 | isComposerOwned?: boolean; |
| 47 | disabled?: boolean; | 46 | disabled?: boolean; |
| 48 | terminalOpen?: boolean; | 47 | terminalOpen?: boolean; |
| ... | @@ -171,8 +170,8 @@ export const ProviderModelPicker = memo(function ProviderModelPicker(props: { | ... | @@ -171,8 +170,8 @@ export const ProviderModelPicker = memo(function ProviderModelPicker(props: { |
| 171 | size={size} | 170 | size={size} |
| 172 | data-chat-provider-model-picker="true" | 171 | data-chat-provider-model-picker="true" |
| 173 | className={cn( | 172 | className={cn( |
| 174 | "min-w-0 justify-between whitespace-nowrap", | 173 | "min-w-0 shrink justify-between whitespace-nowrap", |
| 175 | props.compact ? "max-w-42 shrink-0" : "max-w-48 shrink sm:max-w-56", | 174 | !props.isComposerOwned && "max-w-48 sm:max-w-56", |
| 176 | props.triggerClassName, | 175 | props.triggerClassName, |
| 177 | )} | 176 | )} |
| 178 | disabled={props.disabled} | 177 | disabled={props.disabled} |