import React from 'react'; import { createRoot, type Root } from 'react-dom/client'; import { Dashboard } from './Dashboard'; import { PluginContext, makeClient } from './client'; // 把 build 出来的 CSS 当字符串收入,作为 ConstructableStyleSheet 注入到 shadow root, // 既能享受 shadow DOM 的样式隔离,也不需要额外的 fetch 步骤。 import css from './styles.css?inline'; const TAG = 'plugin-data-analytics'; class DataAnalyticsElement extends HTMLElement { private root?: Root; private mount?: HTMLDivElement; static get observedAttributes() { return ['token', 'api-base']; } connectedCallback() { const shadow = this.attachShadow({ mode: 'open' }); // 用