-
Notifications
You must be signed in to change notification settings - Fork 4.3k
/
index.native.js
53 lines (46 loc) · 1.02 KB
/
index.native.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
* External dependencies
*/
import { SafeAreaView } from 'react-native';
/**
* WordPress dependencies
*/
import { Children, useEffect, useContext } from '@wordpress/element';
import {
createSlotFill,
BottomSheetConsumer,
BottomSheetContext,
} from '@wordpress/components';
const { Fill, Slot } = createSlotFill( 'BottomSheetSubSheet' );
const BottomSheetSubSheet = ( {
children,
navigationButton,
showSheet,
isFullScreen,
} ) => {
const { setIsFullScreen } = useContext( BottomSheetContext );
useEffect( () => {
if ( showSheet ) {
setIsFullScreen( isFullScreen );
}
}, [ showSheet, isFullScreen ] );
return (
<>
{ showSheet && (
<Fill>
<SafeAreaView>
<BottomSheetConsumer>
{ () => {
return children;
} }
</BottomSheetConsumer>
</SafeAreaView>
</Fill>
) }
{ Children.count( children ) > 0 && navigationButton }
</>
);
};
BottomSheetSubSheet.Slot = Slot;
BottomSheetSubSheet.screenName = 'BottomSheetSubSheet';
export default BottomSheetSubSheet;