diff --git a/apps/mobile/assets/icons/compose.xml b/apps/mobile/assets/icons/compose.xml new file mode 100644 index 000000000000..1a958a9abc60 --- /dev/null +++ b/apps/mobile/assets/icons/compose.xml @@ -0,0 +1,8 @@ + + + + diff --git a/apps/mobile/src/components/MaterialNewThreadButton.android.tsx b/apps/mobile/src/components/MaterialNewThreadButton.android.tsx index 8d2caf704f42..cd76633d8935 100644 --- a/apps/mobile/src/components/MaterialNewThreadButton.android.tsx +++ b/apps/mobile/src/components/MaterialNewThreadButton.android.tsx @@ -1,10 +1,14 @@ import type { ComponentProps } from "react"; import { MaterialFloatingActionButton } from "./MaterialFloatingActionButton.android"; +import { MaterialScrollComposeButton } from "./MaterialScrollComposeButton.android"; import type { MaterialNewThreadButton as SharedMaterialNewThreadButton } from "./MaterialNewThreadButton.shared"; export function MaterialNewThreadButton( props: ComponentProps, ) { + if (props.extended && props.expanded !== undefined) { + return ; + } return ( void; + readonly className?: string; + readonly style?: StyleProp; +}) { + const { themeAppearance, themeVariables: colors } = useAppearancePreferences(); + const typography = useScaledTextRole("footnote"); + const [expandedWidth, setExpandedWidth] = useState(56); + const rememberWidth = useCallback(({ width }: { width: number }) => { + setExpandedWidth((previous) => Math.max(previous, width)); + }, []); + return ( + + + + + + + + + + + + + New thread + + + + + + + {/* The visual host is wider than the button; only this target intercepts list touches. */} + + + ); +}