Чёрный вырез с камерой у верхнего края экрана, как у ноутбука. По касанию он пружинисто вырастает в меню с пунктами навигации и кнопкой внизу, повторное касание сворачивает его обратно. В вебе с мышью меню раскрывается при наведении и сворачивается, когда курсор уходит.
Размеры выреза анимируются пружиной на UI-потоке Reanimated, при «Уменьшении движения» меню открывается без анимации. Нажатие на пункт вызывает onItemPress. Работает на 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/notch/:
Код доступен по подпискеPro
Исходник «Вырез-меню» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
Проверьте алиас путей. Импорты в коде выше записаны так, как их пишет astra-rn add: @/shared/components, @/shared/utils и @/shared/hooks. Нужен алиас "@/*": ["./src/*"] в tsconfig.json — или поправьте импорты под свои пути.
Код доступен по подпискеPro
Исходник «Вырез-меню» открывается с подпиской Pro. Уже оформили? Войдите в аккаунт.
itemsТип INotchItem[]
footer?Тип ReactNode
openHeight?Тип number
accent?Тип string
label?Тип string
closedWidth?Тип number
openWidth?Тип number
defaultOpen?Тип boolean
compact?Тип boolean
onItemPress?Тип (item: INotchItem) => void
style?Тип StyleProp<ViewStyle>