@ray-js/robot-data-stream 0.0.13 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -24,6 +24,12 @@ export interface MqttProviderProps {
|
|
|
24
24
|
useMqtt: boolean;
|
|
25
25
|
commandVersion: '0' | '1';
|
|
26
26
|
devices: MqttContextValue['devices'];
|
|
27
|
+
onMqttReady?: () => void;
|
|
27
28
|
}
|
|
28
29
|
export declare function useMqtt(): MqttContextValue;
|
|
29
|
-
export declare function MqttProvider({ children, useMqtt, commandVersion, devices }: MqttProviderProps): React.JSX.Element;
|
|
30
|
+
export declare function MqttProvider({ children, useMqtt, commandVersion, devices, onMqttReady, }: MqttProviderProps): React.JSX.Element;
|
|
31
|
+
export declare namespace MqttProvider {
|
|
32
|
+
var defaultProps: {
|
|
33
|
+
onMqttReady: undefined;
|
|
34
|
+
};
|
|
35
|
+
}
|
package/lib/mqtt/mqttProvider.js
CHANGED
|
@@ -26,7 +26,8 @@ export function MqttProvider(_ref) {
|
|
|
26
26
|
children,
|
|
27
27
|
useMqtt,
|
|
28
28
|
commandVersion,
|
|
29
|
-
devices
|
|
29
|
+
devices,
|
|
30
|
+
onMqttReady
|
|
30
31
|
} = _ref;
|
|
31
32
|
// 使用 useMemo 创建实例,确保只在依赖项变化时重新创建
|
|
32
33
|
const instance = useMemo(() => ({
|
|
@@ -38,6 +39,13 @@ export function MqttProvider(_ref) {
|
|
|
38
39
|
// 使用 ref 存储设备 ID 和初始化状态,避免重复初始化
|
|
39
40
|
const devIdRef = useRef(null);
|
|
40
41
|
const isInitializedRef = useRef(false);
|
|
42
|
+
// 使用 ref 存储回调,避免重复调用
|
|
43
|
+
const onMqttReadyRef = useRef(onMqttReady);
|
|
44
|
+
|
|
45
|
+
// 更新回调 ref
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
onMqttReadyRef.current = onMqttReady;
|
|
48
|
+
}, [onMqttReady]);
|
|
41
49
|
|
|
42
50
|
// MQTT 消息处理回调
|
|
43
51
|
const onMqttMessageReceived = useCallback(data => {
|
|
@@ -99,10 +107,18 @@ export function MqttProvider(_ref) {
|
|
|
99
107
|
|
|
100
108
|
// 标记为已初始化
|
|
101
109
|
isInitializedRef.current = true;
|
|
110
|
+
|
|
111
|
+
// 调用 onMqttReady 回调,通知业务侧 MQTT 监听器已准备就绪
|
|
112
|
+
if (onMqttReadyRef.current) {
|
|
113
|
+
onMqttReadyRef.current();
|
|
114
|
+
}
|
|
102
115
|
}, [devices, onMqttMessageReceived]);
|
|
103
116
|
|
|
104
117
|
// 将实例作为 value 传递给消费组件
|
|
105
118
|
return /*#__PURE__*/React.createElement(SingletonContext.Provider, {
|
|
106
119
|
value: instance
|
|
107
120
|
}, children);
|
|
108
|
-
}
|
|
121
|
+
}
|
|
122
|
+
MqttProvider.defaultProps = {
|
|
123
|
+
onMqttReady: undefined
|
|
124
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ray-js/robot-data-stream",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.14",
|
|
4
4
|
"description": "扫地机P2P数据流标准化组件",
|
|
5
5
|
"main": "lib/index",
|
|
6
6
|
"files": [
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"husky": "^1.2.0",
|
|
58
58
|
"lint-staged": "^10.2.11",
|
|
59
59
|
"patch-package": "^8.0.0",
|
|
60
|
+
"prettier": "^3.8.0",
|
|
60
61
|
"standard-version": "9.3.2"
|
|
61
62
|
},
|
|
62
63
|
"husky": {
|