1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.useOnMount = useOnMount;
|
7 | exports.useOnEvent = useOnEvent;
|
8 | exports.deviceInfoEmitter = void 0;
|
9 |
|
10 | var _react = require("react");
|
11 |
|
12 | var _reactNative = require("react-native");
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 | function useOnMount(asyncGetter, initialResult) {
|
20 | const [response, setResponse] = (0, _react.useState)({
|
21 | loading: true,
|
22 | result: initialResult
|
23 | });
|
24 | (0, _react.useEffect)(() => {
|
25 |
|
26 | const getAsync = async () => {
|
27 | const result = await asyncGetter();
|
28 | setResponse({
|
29 | loading: false,
|
30 | result
|
31 | });
|
32 | };
|
33 |
|
34 | getAsync();
|
35 | }, [asyncGetter]);
|
36 | return response;
|
37 | }
|
38 |
|
39 | const deviceInfoEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.RNDeviceInfo);
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 | exports.deviceInfoEmitter = deviceInfoEmitter;
|
48 |
|
49 | function useOnEvent(eventName, initialValueAsyncGetter, defaultValue) {
|
50 | const {
|
51 | loading,
|
52 | result: initialResult
|
53 | } = useOnMount(initialValueAsyncGetter, defaultValue);
|
54 | const [result, setResult] = (0, _react.useState)(defaultValue);
|
55 |
|
56 | (0, _react.useEffect)(() => {
|
57 | setResult(initialResult);
|
58 | }, [initialResult]);
|
59 |
|
60 |
|
61 | (0, _react.useEffect)(() => {
|
62 | const subscription = deviceInfoEmitter.addListener(eventName, setResult);
|
63 | return () => subscription.remove();
|
64 | }, [eventName]);
|
65 |
|
66 | return {
|
67 | loading,
|
68 | result
|
69 | };
|
70 | }
|
71 |
|
\ | No newline at end of file |