Skip to content

Commit 8af24a9

Browse files
author
Dabit
committed
updated useLayout, useKeyboard, useInteractionManager
1 parent 2be886e commit 8af24a9

File tree

5 files changed

+32
-42
lines changed

5 files changed

+32
-42
lines changed

README.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ yarn add react-native-hooks
2828
- [useKeyboard](https://github.com/react-native-community/react-native-hooks#usekeyboard)
2929
- [useInteractionManager](https://github.com/react-native-community/react-native-hooks#useinteractionmanager)
3030
- [useDeviceOrientation](https://github.com/react-native-community/react-native-hooks#usedeviceorientation)
31-
31+
- [useLayout](https://github.com/react-native-community/react-native-hooks#uselayout)
3232

3333
### `useAccessibilityInfo`
3434

@@ -140,10 +140,9 @@ console.log('is orientation landscape: ', orientation.landscape)
140140
```js
141141
import { useLayout } from 'react-native-hooks'
142142

143-
const {x, y, width, height, onLayout} = useLayout()
143+
const { onLayout, ...layout } = useLayout()
144+
145+
console.log('layout: ', layout)
144146

145-
<View onLayout={onLayout}>
146-
<View style={{width: width, height: width, backgroundColor: 'red'}} />
147-
<View style={{width: width, height: width, backgroundColor: 'green'}} />
148-
</View>
147+
<View onLayout={onLayout} style={{width: 200, height: 200, marginTop: 30}} />
149148
```

lib/useInteractionManager.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, { useEffect, useState } from 'react';
22
import { InteractionManager } from 'react-native';
33

4-
export default () => {
4+
export default function useInteractionManager() {
55
const [complete, updateInteractionStatus] = useState(false);
66

77
useEffect(() => {

lib/useKeyboard.js

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,46 @@
11
import React, { useEffect, useState } from 'react'
22
import { Keyboard } from 'react-native'
33

4-
export default () => {
5-
const [keyboard, setKeyboard] = useState({})
4+
export default function useKeyboard() {
5+
const [keyboard, setKeyboard] = useState({ Keyboard })
66

7-
function keyboardDidShow(e) {
7+
function keyboardShown(e) {
88
setKeyboard({
99
isKeyboardShow: true,
10-
keyboardHeight: e.endCoordinates.height
10+
Keyboard,
11+
endCoordinates: e.endCoordinates,
12+
startCoordinates: e.startCoordinates
1113
})
1214
}
1315

14-
function keyboardDidHide(e) {
16+
function keyboardHidden(e) {
1517
setKeyboard({
1618
isKeyboardShow: false,
17-
keyboardHeight: e ? e.endCoordinates.height : null
19+
Keyboard,
20+
endCoordinates: e.endCoordinates,
21+
startCoordinates: e.startCoordinates
1822
})
1923
}
2024

2125
useEffect(() => {
26+
keyboardDidShowListener = Keyboard.addListener(
27+
'keyboardWillShow',
28+
keyboardHidden
29+
)
30+
2231
keyboardDidShowListener = Keyboard.addListener(
2332
'keyboardDidShow',
24-
keyboardDidShow
33+
keyboardShown
2534
)
35+
36+
keyboardDidShowListener = Keyboard.addListener(
37+
'keyboardWillHide',
38+
keyboardShown
39+
)
40+
2641
keyboardDidHideListener = Keyboard.addListener(
2742
'keyboardDidHide',
28-
keyboardDidHide
43+
keyboardHidden
2944
)
3045

3146
return () => {

lib/useLayout.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import React from 'react'
2+
13
export default function useLayout() {
24
const [layout, setLayout] = React.useState({
35
x: 0,
@@ -6,6 +8,7 @@ export default function useLayout() {
68
height: 0,
79
})
810
const onLayout = React.useCallback(e => setLayout(e.nativeEvent.layout), [])
11+
912
return {
1013
onLayout,
1114
...layout,

lib/useNetInfo.js

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)