Показывает цену или метрику как механический счётчик. При изменении значения крутятся только те разряды, что поменялись: вверх, если число выросло, и вниз, если упало. Новые разряды и символы валюты появляются из размытия с пружинкой.
Форматирование идёт через Intl.NumberFormat, поэтому валюты, разделители и знаки после запятой настраиваются стандартными опциями. Барабаны крутятся на UI-потоке Reanimated; размытие работает в вебе и на Android. При «Уменьшении движения» число меняется сразу. Работает на iOS, Android и в вебе.
Поставьте зависимости:
npm install react-native-reanimated react-native-workletspnpm add react-native-reanimated react-native-workletsyarn add react-native-reanimated react-native-workletsbun add react-native-reanimated react-native-workletsСкопируйте эти файлы в src/shared/components/organisms/odometer/:
Код доступен по подпискеPro
Исходник «Одометр» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Проверьте алиас путей. Импорты в коде выше записаны так, как их пишет astra-rn add: @/shared/components, @/shared/utils и @/shared/hooks. Нужен алиас "@/*": ["./src/*"] в tsconfig.json — или поправьте импорты под свои пути.
Код доступен по подпискеPro
Исходник «Одометр» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Размер и цвет цифр задаются через style, как у обычного Text.
valueТип number
format?Тип Intl.NumberFormatOptions
locale?Тип string
prefix?Тип string
suffix?Тип string
style?Тип StyleProp<TextStyle>
containerStyle?Тип StyleProp<ViewStyle>