fix(mobile): Assistant — bouton Envoyer chevauchait encore le texte dicté

Deux causes cumulées : le ScrollView du chat n'avait pas style={flex:1}
(seul contentContainerStyle était posé), donc pas correctement borné dans
son parent flex — pouvait empiéter sur le composeur du dessous. Et le
TextInput multiligne utilisait maxHeight seul, qu'iOS ignore parfois en
laissant le champ grandir avec le contenu au lieu de défiler en interne.

Fix : ScrollView proprement borné (style={flex:1}) ; TextInput à hauteur
FIXE (96) + scrollEnabled, qui garantit le défilement interne au-delà
plutôt qu'une dépendance à un maxHeight pas toujours respecté.

Typecheck propre, 17 tests Jest, lint 5/5 paquets.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
pr-daaif
2026-08-02 13:23:54 +01:00
parent 63656565f7
commit 9aaee4e358

View File

@@ -92,7 +92,7 @@ export default function PageAssistant() {
<SafeAreaView style={{ flex: 1, backgroundColor: t.fond }} edges={['top']}> <SafeAreaView style={{ flex: 1, backgroundColor: t.fond }} edges={['top']}>
<View style={{ flex: 1, padding: 14, gap: 10 }}> <View style={{ flex: 1, padding: 14, gap: 10 }}>
<EnteteFiche titre="Assistant" /> <EnteteFiche titre="Assistant" />
<ScrollView contentContainerStyle={{ gap: 10, paddingBottom: 8, flexGrow: 1 }}> <ScrollView style={{ flex: 1 }} contentContainerStyle={{ gap: 10, paddingBottom: 8 }}>
{echanges.length === 0 ? ( {echanges.length === 0 ? (
<Text style={{ color: t.encre2, fontFamily: 'Manrope_400Regular', fontSize: 12.5 }}> <Text style={{ color: t.encre2, fontFamily: 'Manrope_400Regular', fontSize: 12.5 }}>
Posez une question sur vos notices, vos historiques d'intervention ou vos Posez une question sur vos notices, vos historiques d'intervention ou vos
@@ -191,8 +191,12 @@ export default function PageAssistant() {
placeholder="Poser une question, ou dictez avec 🎙…" placeholder="Poser une question, ou dictez avec 🎙…"
placeholderTextColor={t.encre3} placeholderTextColor={t.encre3}
style={{ style={{
minHeight: 44, // Hauteur FIXE plutôt que maxHeight seul : sur iOS, un
maxHeight: 160, // TextInput multiligne ignore parfois maxHeight et grandit
// avec le contenu, poussant/recouvrant les boutons du
// dessous (trouvé en recette, 02/08). Hauteur fixe +
// scrollEnabled = défilement interne garanti au-delà.
height: 96,
color: t.encre, color: t.encre,
fontFamily: 'Manrope_600SemiBold', fontFamily: 'Manrope_600SemiBold',
fontSize: 13.5, fontSize: 13.5,