about summary refs log tree commit diff
path: root/modules/bottom-sheet/src/BottomSheet.tsx
blob: bcc2c42ad139fc9a07b9ca538538004db9741ed6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import React from 'react'

import {BottomSheetViewProps} from './BottomSheet.types'
import {BottomSheetNativeComponent} from './BottomSheetNativeComponent'
import {useBottomSheetPortal_INTERNAL} from './BottomSheetPortal'

export const BottomSheet = React.forwardRef<
  BottomSheetNativeComponent,
  BottomSheetViewProps
>(function BottomSheet(props, ref) {
  const Portal = useBottomSheetPortal_INTERNAL()

  if (__DEV__ && !Portal) {
    throw new Error(
      'BottomSheet: You need to wrap your component tree with a <BottomSheetPortalProvider> to use the bottom sheet.',
    )
  }

  return (
    <Portal>
      <BottomSheetNativeComponent {...props} ref={ref} />
    </Portal>
  )
})