npm.io
0.0.61 • Published 3 years ago

openblocks-sdk-workmeet

Licence
MIT
Version
0.0.61
Deps
0
Size
17.8 MB
Vulns
0
Weekly
0

openblocks-sdk-workmeet

Usage

yarn:

yarn add openblocks-sdk-workmeet

npm:

npm install openblocks-sdk-workmeet

Integrate Openblocks' app/module into existing app page

  1. Publish your app/module in Openblocks.
  2. Set the app/module's access privilege as public.
  3. Add code in your existing app as below.
Import style
import "openblocks-sdk-workmeet/dist/style.css";
For react app:
import { OpenblocksAppView } from "openblocks-sdk-workmeet";

<OpenblocksAppView appId="{YOUR_APPLICATION_ID}" />;
OpenblocksViewProps
Name Type Description Default value
appId string The app's id in Openblocks. Required! --
baseUrl string Openblocks' api base url https://api.openblocks.dev
onModuleEventTriggered (eventName: string) => void Triggered when module's custom event is triggered. Works only when the app is a module. --
onModuleOutputChange (output: any) => void Triggered when module's outputs change. Works only when the app is a module. --
Invoke module methods
import { useRef } from "ref";
import { OpenblocksAppView } from "openblocks-sdk-workmeet";

function MyExistingAppPage() {
  const appRef = useRef();
  return (
    <div>
      <OpenblocksAppView appId={YOUR_APPLICATION_ID} ref={appRef} />;
      <button onClick={() => appRef.current?.invokeMethod("some-method-name")}>
        Invoke method
      </button>
    </div>
  );
}
For vanilla js:
import { bootstrapAppAt } from "openblocks-sdk-workmeet";

const node = document.querySelector("#my-app");

async function bootstrap() {
  const instance = await bootstrapAppAt(YOUR_APPLICATION_ID, node);

  // set module inputs
  instance.setModuleInputs({ input1: "xxx", input2: "xxx" });

  // invoke module methods
  instance.setModuleInputs({ input1: "xxx", input2: "xxx" });

  // listen module event trigger
  instance.on("moduleEventTriggered", (eventName) => {
    console.info("event triggered:", eventName);
  });

  // listen module output change
  instance.on("moduleOutputChange", (data) => {
    console.info("output data:", data);
  });
}

Keywords