@lobehub/chat-plugin-sdk
Version:
Lobe Chat Plugin SDK, help you to build an amazing chat plugin for Lobe Chat
33 lines • 1.11 kB
JavaScript
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import { useEffect, useState } from 'react';
import { PluginChannel } from "../const";
import { onReceiveData } from "../utils";
export var useWatchPluginMessage = function useWatchPluginMessage() {
var _useState = useState({
data: undefined,
loading: true
}),
_useState2 = _slicedToArray(_useState, 2),
result = _useState2[0],
setData = _useState2[1];
var receiverData = function receiverData(e) {
onReceiveData(e, function (data) {
setData({
data: data.content,
loading: false
});
});
};
useEffect(function () {
var _window, _top;
(_window = window) === null || _window === void 0 || _window.addEventListener('message', receiverData);
(_top = top) === null || _top === void 0 || _top.postMessage({
type: PluginChannel.pluginReadyForRender
}, '*');
return function () {
var _window2;
(_window2 = window) === null || _window2 === void 0 || _window2.removeEventListener('message', receiverData);
};
}, []);
return result;
};