Собранное окно чата из ИИ-компонентов Astra. Вопрос из сценария уже подставлен в поле ввода — нажмите «Отправить», и ассистент ответит: сначала покажет ход рассуждений или индикатор «Думаю», затем проявит ответ мягкой волной. Пока идёт ответ, поле ввода светится, а кнопка отправки превращается в «стоп».
Лента сама прокручивается вниз, пока вы не пролистали её пальцем вверх, а внизу появляется затемнение, если ниже есть текст. Кнопка в шапке начинает новый чат со сценарием с начала. При «Уменьшении движения» пауза «Думаю» пропускается, а сообщения появляются без анимации. Работает на iOS, Android и в вебе.
Поставьте зависимости:
npm install expo-linear-gradient react-native-reanimated react-native-svgpnpm add expo-linear-gradient react-native-reanimated react-native-svgyarn add expo-linear-gradient react-native-reanimated react-native-svgbun add expo-linear-gradient react-native-reanimated react-native-svgСкопируйте эти файлы в src/shared/components/organisms/ai-chat/:
Код доступен по подпискеPro
Исходник «ИИ-чат» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Он импортирует ещё несколько модулей — astra-rn add кладёт их рядом сам, вручную скопируйте и их:
Проверьте алиас путей. Импорты в коде выше записаны так, как их пишет astra-rn add: @/shared/components, @/shared/utils и @/shared/hooks. Нужен алиас "@/*": ["./src/*"] в tsconfig.json — или поправьте импорты под свои пути.
Код доступен по подпискеPro
Исходник «ИИ-чат» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Диалог задаётся массивом script: у каждого хода есть question, answer и необязательный reasoning.
script?Тип readonly IChatTurn[]
greeting?Тип string
greetingHint?Тип string
title?Тип string
subtitle?Тип string
headerLeading?Тип ReactNode
onClose?Тип () => void
placeholder?Тип string
thinkingMs?Тип number
answerSpeed?Тип number
showReasoning?Тип boolean
composerGlow?Тип boolean
height?Тип number
theme?Тип TAIChatTheme
style?Тип StyleProp<ViewStyle>