Skip to content

Commit 38ab02f

Browse files
Document React usage (#70)
Co-authored-by: Sindre Sorhus <sindresorhus@gmail.com>
1 parent 2fb9856 commit 38ab02f

File tree

1 file changed

+44
-10
lines changed

1 file changed

+44
-10
lines changed

readme.md

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,56 @@ npm install devtools-detect
1818

1919
```html
2020
<script type="module">
21-
import devtools from './node_modules/devtools-detect/index.js';
21+
import devtools from './node_modules/devtools-detect/index.js';
2222
23-
// Check if it's open
24-
console.log('Is DevTools open:', devtools.isOpen);
23+
// Check if it's open
24+
console.log('Is DevTools open:', devtools.isOpen);
2525
26-
// Check it's orientation, `undefined` if not open
27-
console.log('DevTools orientation:', devtools.orientation);
26+
// Check it's orientation, `undefined` if not open
27+
console.log('DevTools orientation:', devtools.orientation);
2828
29-
// Get notified when it's opened/closed or orientation changes
30-
window.addEventListener('devtoolschange', event => {
31-
console.log('Is DevTools open:', event.detail.isOpen);
32-
console.log('DevTools orientation:', event.detail.orientation);
33-
});
29+
// Get notified when it's opened/closed or orientation changes
30+
window.addEventListener('devtoolschange', event => {
31+
console.log('Is DevTools open:', event.detail.isOpen);
32+
console.log('DevTools orientation:', event.detail.orientation);
33+
});
3434
</script>
3535
```
3636

37+
## React usage
38+
39+
```jsx
40+
import {useState, useEffect} from 'react';
41+
import devtoolsDetect from 'devtools-detect';
42+
43+
export function useDevToolsStatus() {
44+
const [isDevToolsOpen, setIsDevToolsOpen] = useState(devtoolsDetect.isOpen);
45+
46+
useEffect(() => {
47+
const handleChange = event => {
48+
setIsDevToolsOpen(event.detail.isOpen);
49+
};
50+
51+
window.addEventListener('devtoolschange', handleChange);
52+
53+
return () => {
54+
window.removeEventListener('devtoolschange', handleChange);
55+
};
56+
}, []);
57+
58+
return isDevToolsOpen;
59+
}
60+
```
61+
62+
```jsx
63+
import {useDevToolsStatus} from './useDevToolsStatus.js';
64+
65+
export default function App() {
66+
const isDevToolsOpen = useDevToolsStatus();
67+
return isDevToolsOpen ? 'OPEN' : 'CLOSED';
68+
}
69+
```
70+
3771
## Support
3872

3973
- Chrome DevTools

0 commit comments

Comments
 (0)