import type { ReactElement } from 'react'; import React, { useContext, useCallback, forwardRef } from 'react'; import type { NativeScrollEvent, NativeSyntheticEvent, ScrollViewProps, } from 'react-native'; import { ScrollView } from 'react-native'; import type { BottomSheetContextType } from './BottomSheetContext'; import BottomSheetContext from './BottomSheetContext'; const BottomSheetScrollView = forwardRef( ({ scrollEventThrottle = 100, ...props }, ref): ReactElement => { const { setInternalShowDivider } = useContext(BottomSheetContext); const onScrollBeginDrag = useCallback( (e: NativeSyntheticEvent) => { setInternalShowDivider(true); props?.onScrollBeginDrag?.(e); }, [] ); const onMomentumScrollBegin = useCallback( (e: NativeSyntheticEvent) => { setInternalShowDivider(true); props?.onMomentumScrollEnd?.(e); }, [] ); const onMomentumScrollEnd = useCallback( (e: NativeSyntheticEvent) => { setInternalShowDivider(false); props?.onMomentumScrollEnd?.(e); }, [] ); return ( ); } ); export default BottomSheetScrollView;