| 12345678910111213141516171819202122232425 |
- import { __rest } from "tslib";
- import { jsx as _jsx } from "react/jsx-runtime";
- import { useContext, useEffect } from "react";
- import { KrpanoRendererContext } from "../contexts/KrpanoRendererContext";
- import { mapEventPropsToJSCall } from "../utils";
- const GlobalEvents = "__GlobalEvents";
- export const Events = (_a) => {
- var { name, keep } = _a, EventsAttrs = __rest(_a, ["name", "keep"]);
- const renderer = useContext(KrpanoRendererContext);
- const EventSelector = `events[${name || GlobalEvents}]`;
- // 在renderer上绑定回调
- useEffect(() => {
- renderer === null || renderer === void 0 ? void 0 : renderer.bindEvents(EventSelector, Object.assign({}, EventsAttrs));
- return () => {
- renderer === null || renderer === void 0 ? void 0 : renderer.unbindEvents(EventSelector, Object.assign({}, EventsAttrs));
- };
- }, [renderer, EventsAttrs]);
- // Krpano标签上添加js call,触发事件
- useEffect(() => {
- renderer === null || renderer === void 0 ? void 0 : renderer.setTag("events",
- // 全局事件直接设置
- name || null, Object.assign(Object.assign({}, mapEventPropsToJSCall(Object.assign({}, EventsAttrs), (eventName) => `js(${renderer.name}.fire(${eventName},${EventSelector}))`)), { keep }), true);
- }, [name, renderer]);
- return _jsx("div", { className: "events" });
- };
|