Поставьте зависимости:
npm install @shopify/react-native-skia react-native-gesture-handler react-native-reanimated react-native-workletspnpm add @shopify/react-native-skia react-native-gesture-handler react-native-reanimated react-native-workletsyarn add @shopify/react-native-skia react-native-gesture-handler react-native-reanimated react-native-workletsbun add @shopify/react-native-skia react-native-gesture-handler react-native-reanimated react-native-workletsСкопируйте эти файлы в src/shared/components/organisms/skia-ripple/:
Код доступен по подпискеPro
Исходник «Рябь Skia» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Проверьте алиас путей. Импорты в коде выше записаны так, как их пишет astra-rn add: @/shared/components, @/shared/utils и @/shared/hooks. Нужен алиас "@/*": ["./src/*"] в tsconfig.json — или поправьте импорты под свои пути.
Код доступен по подпискеPro
Исходник «Рябь Skia» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
widthТип number
heightТип number
colorТип string
amplitude?Тип number
frequency?Тип number
decay?Тип number
speed?Тип number
duration?Тип number
borderRadius?Тип number
style?Тип ViewStyle
children?Тип React.ReactNode
widthТип number
heightТип number
sourceТип string
amplitude?Тип number
frequency?Тип number
decay?Тип number
speed?Тип number
duration?Тип number
borderRadius?Тип number
style?Тип StyleProp<ViewStyle>
fit?Тип "contain" | "cover" | "fill" | "none" | "scaleDown"
У SkiaRippleEffect есть необязательный ref (IRippleSkiaEffectRef): ripple(x, y) запускает рябь из кода в точке внутри компонента, как касание. Без ref поведение не меняется.