0.7.0 • Published 5 months ago

@sigmacomputing/react-embed-sdk v0.7.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

Getting Started

To use the react-embed-sdk in your project, you can install it using your node package manager.

Using npm:

npm install @sigmacomputing/react-embed-sdk

yarn:

yarn add @sigmacomputing/react-embed-sdk

pnpm:

pnpm add @sigmacomputing/react-embed-sdk

Documentation

Hooks

The library provides hooks that combine the lower level listeners and mutations to provide a more ergonomic API.

useSigmaIframe

A hook that returns a ref to be used with a Sigma iframe element, and the loading and error state of the embed.

useSigmaIframe(): {
  iframeRef: React.RefObject<HTMLIFrameElement>;
  loading: boolean;
  error: WorkbookErrorEvent | null;
  variables: Record<string, string> | undefined;
}

Example usage:

function MyEmbed() {
  const { iframeRef, loading, error } = useSigmaIframe();
  return (
    <>
      {loading && <p>Loading...</p>}
      {error && <p>Error: {error.message}</p>}
      <iframe
        className={loading || error ? "hidden" : "show"}
        ref={iframeRef}
        {/* The embed url to load */}
        src="https://app.sigmacomputing.com/embed"
      />
    </>
  );
}

useWorkbookVariables

A hook that returns functions to get and set the variables in a workbook.

useWorkbookVariables(iframeRef: React.RefObject<HTMLIFrameElement>): {
  getVariables: () => Promise<Record<string, string>>;
  setVariables: (variables: Record<string, string>) => void;
}

Example usage:

function MyEmbed() {
  const { getVariables, setVariables } = useWorkbookVariables(iframeRef);
  return (
    <>
      <button onClick={() => setVariables({ foo: "bar" }))} name="set-variables">Set Filters</button>
      <button
        onClick={async () => {
          const variable = await getVariables();
        }}
        name="get-variables"
      >
        Get Filters
      </button>
      <iframe ref={iframeRef} src="https://app.sigmacomputing.com/embed" />
    </>
  );
}

usePageHeight

A hook that returns the height of the page in the iframe. This HAS to be used with the responsive_height URL Parameter.

usePageHeight(iframeRef: React.RefObject<HTMLIFrameElement>): number | undefined

Example usage:

function MyEmbed() {
  const { iframeRef } = useSigmaIframe();
  const height = usePageHeight(iframeRef);
  return (
    <>
      <iframe
        style={{ height }}
        ref={iframeRef}
        src="https://app.sigmacomputing.com/embed?:responsive_height=true"
      />
    </>
  );
}

Listeners

These are functions that can be used to listen for events from the embed, and react to them.

useWorkbookLoaded

Listen for a workbook loaded event, and execute the given callback when it occurs.

useWorkbookLoaded(iframeRef: React.RefObject<HTMLIFrameElement>, onLoaded: (event: WorkbookLoadedEvent) => void)

useWorkbookError

Listen for a workbook error event, and execute the given callback when it occurs.

useWorkbookError(iframeRef: React.RefObject<HTMLIFrameElement>, onError: (event: WorkbookErrorEvent) => void)

useWorkbookDataLoaded

Listen for a workbook data loaded event, and execute the given callback when it occurs.

useWorkbookDataLoaded(iframeRef: React.RefObject<HTMLIFrameElement>, onDataLoaded: (event: WorkbookDataLoadedEvent) => void)

useVariableChange

Listen for a workbook variable change event, and execute the given callback when it occurs.

useVariableChange(iframeRef: React.RefObject<HTMLIFrameElement>, onVariableChange: (event: WorkbookVariableOnChangeEvent) => void)

useTableCellSelect

Listen for a table cell select event, and execute the given callback when it occurs.

useTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onTableCellSelect: (event: WorkbookTableCellSelectEvent) => void)

useWorkbookPublished

Listen for a workbook published event, and execute the given callback when it occurs.

useWorkbookPublished(iframeRef: React.RefObject<HTMLIFrameElement>, onWorkbookPublished: (event: WorkbookPublishedEvent) => void)

useWorkbookFullScreen

Listen for a workbook full screen event, and execute the given callback when it occurs.

useWorkbookFullScreen(iframeRef: React.RefObject<HTMLIFrameElement>, onFullScreen: (event: WorkbookFullScreenEvent) => void)

useWorkbookPageHeight

Listen for a workbook page height event, and execute the given callback when it occurs. Needs to be used with the responsive_height URL Parameter.

useWorkbookPageHeight(iframeRef: React.RefObject<HTMLIFrameElement>, onPageHeight: (event: WorkbookPageHeightEvent) => void)

useWorkbookSelectedNode

Listen for a workbook selected node event, and execute the given callback when it occurs.

useWorkbookSelectedNode(iframeRef: React.RefObject<HTMLIFrameElement>, onPageSelectedNode: (event: WorkbookSelectedNodeEvent) => void)

useWorkbookPivotTableCellSelect

Listen for a pivot table cell select event, and execute the given callback when it occurs.

useWorkbookPivotTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onPivotTableCellSelect: (event: WorkbookPivotTableCellSelectEvent) => void)

useWorkbookChartValueSelect

Listen for a chart value select event, and execute the given callback when it occurs.

useWorkbookChartValueSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onChartValueSelect: (event: WorkbookChartValueSelectEvent) => void)

useWorkbookCurrentVariables

Listen for a workbook current variables event, and execute the given callback when it occurs. This is to be used when workbookVariablesList is called.

useWorkbookCurrentVariables(iframeRef: React.RefObject<HTMLIFrameElement>, onCurrentVariables: (event: WorkbookCurrentVariablesEvent) => void)

useWorkbookBookmarkOnCreate

Listen for a workbook bookmark create event, and execute the given callback when it occurs.

useWorkbookBookmarkOnCreate(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkCreate: (event: WorkbookBookmarkOnCreateEvent) => void)

useWorkbookBookmarkOnChange

Listen for a workbook bookmark change event, and execute the given callback when it occurs.

useWorkbookBookmarkOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkChange: (event: WorkbookBookmarkOnChangeEvent) => void)

useWorkbookBookmarkOnUpdate

Listen for a workbook bookmark update event, and execute the given callback when it occurs.

useWorkbookBookmarkOnUpdate(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkUpdate: (event: WorkbookBookmarkOnUpdateEvent) => void)

useWorkbookBookmarkOnDelete

Listen for a workbook bookmark delete event, and execute the given callback when it occurs.

useWorkbookBookmarkOnDelete(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkDelete: (event: WorkbookBookmarkOnDeleteEvent) => void)

useWorkbookChartError

Listen for a workbook chart error event, and execute the given callback when it occurs.

useWorkbookChartError(iframeRef: React.RefObject<HTMLIFrameElement>, onChartError: (event: WorkbookChartErrorEvent) => void)

useWorkbookExploreKeyOnChange

Listen for a workbook explore key change event, and execute the given callback when it occurs.

useWorkbookExploreKeyOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onExploreKeyOnChange: (event: WorkbookExploreKeyOnChangeEvent) => void)

useUrlOnChange

Listen for a url change event, and execute the given callback when it occurs.

useUrlOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onUrlChange: (event: UrlOnChangeEvent) => void)

useWorkbookIdOnChange

Listen for a workbook id change event, and execute the given callback when it occurs.

useWorkbookIdOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onWorkbookIdChange: (event: WorkbookIdOnChangeEvent) => void)

Mutations

These are functions that can be used to send messages to the embed. They may cause an event to be emitted from the embed.

getWorkbookVariables

Send a message to the embed to list the current variables. This will cause a workbook:variables:current event to be emitted from the embed, and can be used with the useWorkbookCurrentVariables function.

getWorkbookVariables(iframeRef: React.RefObject<HTMLIFrameElement>)

updateWorkbookVariables

Send a message to the embed to update the variables.

updateWorkbookVariables(iframeRef: React.RefObject<HTMLIFrameElement>, variables: Record<string, string>)

createWorkbookBookmark

Send a message to the embed to create a bookmark.

createWorkbookBookmark(iframeRef: React.RefObject<HTMLIFrameElement>, bookmark: WorkbookBookmarkCreateEvent)

updateWorkbookBookmark

Send a message to the embed to update the current bookmark.

updateWorkbookBookmark(iframeRef: React.RefObject<HTMLIFrameElement>)

deleteWorkbookBookmark

Send a message to the embed to delete the given bookmark.

deleteWorkbookBookmark(iframeRef: React.RefObject<HTMLIFrameElement>, bookmarkId: string)

selectWorkbookBookmark

Send a message to the embed to select the given bookmark. If no bookmarkId is provided, the current bookmark will be deselected.

selectWorkbookBookmark(iframeRef: React.RefObject<HTMLIFrameElement>, bookmarkId?: string)

updateWorkbookFullscreen

Send a message to the embed to toggle the fullscreen state of the given element.

updateWorkbookFullscreen(iframeRef: React.RefObject<HTMLIFrameElement>, nodeId: string | null)

updateWorkbookSelectedNodeId

Send a message to the embed to update the selected element. Can be a pageId or elementId.

updateWorkbookSelectedNodeId(iframeRef: React.RefObject<HTMLIFrameElement>, nodeId: string, nodeType: "element" | "page")

updateWorkbookSharingLink

Send a message to the embed to update the sharing link.

updateWorkbookSharingLink(iframeRef: React.RefObject<HTMLIFrameElement>, sharingLink: string | null, sharingExplorationLink?: string | null)
0.7.0

5 months ago

0.6.0

6 months ago

0.5.2

9 months ago

0.5.1

9 months ago

0.5.0

10 months ago

0.4.0

10 months ago

0.3.3

10 months ago

0.3.2

12 months ago

0.3.1

12 months ago

0.3.0

12 months ago

0.2.11

12 months ago

0.2.10

1 year ago

0.2.8

1 year ago

0.2.7

1 year ago

0.2.6

1 year ago

0.2.5

1 year ago

0.2.4

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago

0.1.0

1 year ago