import { useRef } from "react"; import reactToCustomElement from "../../src"; export interface CustomElementProps { propString?: string | undefined; propNumber?: number | undefined; propBoolean?: boolean | undefined; propObject?: Record | undefined; propArray?: unknown[] | undefined; propFunction?: (args: unknown) => void | undefined; onMyEvent?: ((str: string) => void) | undefined; } function CustomElement({ propString, propNumber, propBoolean, propObject, propArray, propFunction, onMyEvent, ...props }: CustomElementProps) { const ref = useRef(null); function handleMyEventCallback() { onMyEvent?.("hello"); } function handlePropFunctionCallback() { propFunction?.({ a: "b" }); } return (
        {JSON.stringify(
          {
            propString,
            propNumber,
            propBoolean,
            propObject,
            propArray,
            propFunction: propFunction ? "function" : undefined,
            onMyEvent: onMyEvent ? "function" : undefined,
            spreadProps: {
              ...props,
            },
          },
          null,
          2,
        )}
      
); } const element = reactToCustomElement(CustomElement, { properties: [ "propString", "propNumber", "propBoolean", "propObject", "propArray", "propFunction", "onMyEvent", ], attributes: ["my-first-attribute", "my-second-attribute"], }); customElements.define("custom-element", element);