Сервисы стоят двумя колонками по бокам, а от каждого к центральному узлу тянется изогнутая линия. По линиям волной с небольшим сдвигом бегут светящиеся импульсы с градиентным хвостом, а когда они долетают, по центральному узлу расходится кольцо.
Линии рисуются на Skia и пересчитываются при изменении размера блока, время импульсов идёт на UI-потоке Reanimated. При «Уменьшении движения» импульсы отключаются и остаются статичные связи. Работает на iOS, Android и в вебе.
Поставьте зависимости:
npm install @shopify/react-native-skia react-native-reanimatedpnpm add @shopify/react-native-skia react-native-reanimatedyarn add @shopify/react-native-skia react-native-reanimatedbun add @shopify/react-native-skia react-native-reanimatedСкопируйте эти файлы в src/shared/components/organisms/integration-beams/:
Код доступен по подпискеPro
Исходник «Лучи интеграций» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Проверьте алиас путей. Импорты в коде выше записаны так, как их пишет astra-rn add: @/shared/components, @/shared/utils и @/shared/hooks. Нужен алиас "@/*": ["./src/*"] в tsconfig.json — или поправьте импорты под свои пути.
Код доступен по подпискеPro
Исходник «Лучи интеграций» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Первая половина items встаёт слева, вторая — справа; в hub можно передать любой элемент.
itemsТип readonly IntegrationItem[]
hubТип ReactNode
beamFrom?Тип string
beamTo?Тип string
interval?Тип number
height?Тип number
travel?Тип number
pulseWidth?Тип number
style?Тип StyleProp<ViewStyle>