From 6393dc3cea6af87fe022398994baa6719601daea Mon Sep 17 00:00:00 2001 From: zoomchan-cxj Date: Tue, 30 Aug 2022 16:04:34 +0800 Subject: [PATCH] fix(hippy-react): remove NetInfo duplicated EventEmitter creating --- .../src/modules/NativeEvent/index.jsx | 100 ------------------ .../src/modules/TestModule/TestModule.js | 18 ---- .../src/modules/TestModule/index.jsx | 28 ----- .../hippy-react-demo/src/modules/index.js | 2 - .../hippy-react/src/modules/network-info.ts | 12 +-- 5 files changed, 5 insertions(+), 155 deletions(-) delete mode 100644 driver/js/examples/hippy-react-demo/src/modules/NativeEvent/index.jsx delete mode 100644 driver/js/examples/hippy-react-demo/src/modules/TestModule/TestModule.js delete mode 100644 driver/js/examples/hippy-react-demo/src/modules/TestModule/index.jsx diff --git a/driver/js/examples/hippy-react-demo/src/modules/NativeEvent/index.jsx b/driver/js/examples/hippy-react-demo/src/modules/NativeEvent/index.jsx deleted file mode 100644 index 446e8d88d..000000000 --- a/driver/js/examples/hippy-react-demo/src/modules/NativeEvent/index.jsx +++ /dev/null @@ -1,100 +0,0 @@ -import React from 'react'; -import { - ScrollView, - Text, - View, - StyleSheet, - callNative, - HippyEventEmitter, -} from '@hippy/react'; - -const styles = StyleSheet.create({ - text: { - fontSize: 14, - color: '#242424', - alignSelf: 'center', - }, - container: { - flex: 1, - }, - itemTitle: { - alignItems: 'flex-start', - justifyContent: 'center', - height: 80, - borderWidth: 1, - borderStyle: 'solid', - borderColor: '#e0e0e0', - borderRadius: 2, - backgroundColor: '#fafafa', - padding: 10, - marginTop: 10, - }, - itemContent: { - alignItems: 'flex-start', - justifyContent: 'center', - height: 100, - borderBottomWidth: 1, - borderLeftWidth: 1, - borderRightWidth: 1, - borderStyle: 'solid', - borderRadius: 2, - borderColor: '#e0e0e0', - backgroundColor: '#ffffff', - padding: 10, - }, - normalText: { - fontSize: 14, - lineHeight: 18, - color: 'black', - }, -}); - -export default class NativeEvent extends React.Component { - constructor(props) { - super(props); - this.state = { - infoText: '', - infoText2: '', - }; - } - - render() { - const { infoText, infoText2 } = this.state; - return ( - - { - const hippyEventEmitter = new HippyEventEmitter(); - this.call = hippyEventEmitter.addListener('NORMAL_EVENT', (e) => { - this.setState({ - infoText: JSON.stringify(e), - }); - }); - callNative('MyEvent', 'btnClicked'); - }} - > - 客户端向前端单向通信 - 点此终端会发送NORMAL_EVENT事件 - { `事件接收结果:${infoText}` } - - { - const hippyEventEmitter = new HippyEventEmitter(); - this.call = hippyEventEmitter.addListener('COUNT_DOWN', (e) => { - this.setState({ - infoText2: JSON.stringify(e), - }); - }); - callNative('MyEvent', 'addListener', 'COUNT_DOWN'); - }} - > - 客户端向前端单向通信的进阶用法 - 点此终端会发送COUNT_DOWN事件 - { `事件接收结果:${infoText2}` } - - - ); - } -} diff --git a/driver/js/examples/hippy-react-demo/src/modules/TestModule/TestModule.js b/driver/js/examples/hippy-react-demo/src/modules/TestModule/TestModule.js deleted file mode 100644 index ced33d0a3..000000000 --- a/driver/js/examples/hippy-react-demo/src/modules/TestModule/TestModule.js +++ /dev/null @@ -1,18 +0,0 @@ -import { callNative, callNativeWithPromise } from '@hippy/react'; - -/* - 自定义module - */ -const TestModule = { - log(msg) { - callNative('TestModule', 'log', msg); - }, - helloNative(msg) { - callNative('TestModule', 'helloNative', msg); - }, - helloNativeWithPromise(msg) { - return callNativeWithPromise('TestModule', 'helloNativeWithPromise', msg); - }, -}; - -export default TestModule; diff --git a/driver/js/examples/hippy-react-demo/src/modules/TestModule/index.jsx b/driver/js/examples/hippy-react-demo/src/modules/TestModule/index.jsx deleted file mode 100644 index 78aa21067..000000000 --- a/driver/js/examples/hippy-react-demo/src/modules/TestModule/index.jsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react'; -import { Text } from '@hippy/react'; -import TestModule from './TestModule'; - -// 展示自定义Module的使用 -export default class TestModuleDemo extends React.Component { - constructor(props) { - super(props); - this.state = { hello: 'TestModule log' }; - } - - componentDidMount() { - TestModule.log('hello i am from js'); - TestModule.helloNative({ hello: 'i am form js' }); - TestModule.helloNativeWithPromise({ hello: 'i am form js' }).then((e) => { - this.setState({ hello: JSON.stringify(e) }); - }); - } - - render() { - const { hello } = this.state; - return ( - - {hello} - - ); - } -} diff --git a/driver/js/examples/hippy-react-demo/src/modules/index.js b/driver/js/examples/hippy-react-demo/src/modules/index.js index 2c91899f7..029d9c8cb 100644 --- a/driver/js/examples/hippy-react-demo/src/modules/index.js +++ b/driver/js/examples/hippy-react-demo/src/modules/index.js @@ -3,8 +3,6 @@ export { default as Animation } from './Animation'; export { default as AsyncStorage } from './AsyncStorage'; export { default as Clipboard } from './Clipboard'; -export { default as NativeEvent } from './NativeEvent'; export { default as NetInfo } from './NetInfo'; -export { default as TestModule } from './TestModule'; export { default as WebSocket } from './WebSocket'; export { default as UIManagerModule } from './UIManagerModule'; diff --git a/driver/js/packages/hippy-react/src/modules/network-info.ts b/driver/js/packages/hippy-react/src/modules/network-info.ts index 42e225ac7..531c6d886 100644 --- a/driver/js/packages/hippy-react/src/modules/network-info.ts +++ b/driver/js/packages/hippy-react/src/modules/network-info.ts @@ -32,9 +32,9 @@ interface NetInfoRevoker { } const DEVICE_CONNECTIVITY_EVENT = 'networkStatusDidChange'; -const subScriptions = new Map(); +const subscriptions = new Map(); -let NetInfoEventEmitter: HippyEventEmitter; +const NetInfoEventEmitter: HippyEventEmitter = new HippyEventEmitter(); class NetInfoRevoker implements NetInfoRevoker { public constructor(eventName: string, listener: (data: any) => void) { @@ -60,7 +60,6 @@ class NetInfoRevoker implements NetInfoRevoker { * @returns {object} NetInfoRevoker - The event revoker for destroy the network info event listener. */ function addEventListener(eventName: string, listener: NetworkInfoCallback): NetInfoRevoker { - NetInfoEventEmitter = new HippyEventEmitter(); let event = eventName; if (event && event === 'change') { event = DEVICE_CONNECTIVITY_EVENT; @@ -75,8 +74,7 @@ function addEventListener(eventName: string, listener: NetworkInfoCallback): Net listener(data); }, ); - // FIXME: Seems only accept one callback for each event, should support multiple callback. - subScriptions.set(listener, handler); + subscriptions.set(listener, handler); return new NetInfoRevoker(event, listener); } @@ -101,12 +99,12 @@ function removeEventListener(eventName: string, listener?: NetInfoRevoker | Netw if (count <= 1) { Bridge.callNative('NetInfo', 'removeListener', event); } - const handler = subScriptions.get(listener); + const handler = subscriptions.get(listener); if (!handler) { return; } handler.remove(); - subScriptions.delete(listener); + subscriptions.delete(listener); } /**