Заголовок с мерцающей подписью «Думаю», пока модель рассуждает. По нажатию блок плавно раскрывается по высоте, и внутри видно, как шаги рассуждения появляются по одному, выезжая слева. Секундомер идёт всё время, пока шаги добавляются.
Когда последний шаг показан, мерцание сменяется спокойным итогом «Думал N с», вызывается onComplete, а блок можно свернуть и раскрыть снова. Мерцание — градиент под маской, анимированный на UI-потоке. При «Уменьшении движения» все шаги видны сразу. Работает на iOS, Android и в вебе.
Поставьте зависимости:
npm install react-native-reanimated react-native-svg expo-linear-gradient @react-native-masked-view/masked-viewpnpm add react-native-reanimated react-native-svg expo-linear-gradient @react-native-masked-view/masked-viewyarn add react-native-reanimated react-native-svg expo-linear-gradient @react-native-masked-view/masked-viewbun add react-native-reanimated react-native-svg expo-linear-gradient @react-native-masked-view/masked-viewСкопируйте эти файлы в src/shared/components/molecules/reasoning-trace/:
Код доступен по подпискеPro
Исходник «Ход рассуждений» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Проверьте алиас путей. Импорты в коде выше записаны так, как их пишет astra-rn add: @/shared/components, @/shared/utils и @/shared/hooks. Нужен алиас "@/*": ["./src/*"] в tsconfig.json — или поправьте импорты под свои пути.
Код доступен по подпискеPro
Исходник «Ход рассуждений» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
steps?Тип readonly string[]
autoPlay?Тип boolean
stepDelay?Тип number
onComplete?Тип () => void
defaultOpen?Тип boolean
thinkingLabel?Тип string
doneLabel?Тип string
theme?Тип TReasoningTraceTheme
style?Тип StyleProp<ViewStyle>