2.0 KiB
2.0 KiB
Squiggle components
This package contains the react components for squiggle. These can be used either as a library or hosted as a storybook.
The @quri/squiggle-components
package offers several components and utilities for people who want to embed Squiggle components into websites.
Usage in a react
project
For example, in a fresh create-react-app
project
yarn add @quri/squiggle-components
Add to App.js
:
import { SquiggleEditor } from "@quri/squiggle-components";
<SquiggleEditor
defaultCode="x = beta($alpha, 10); x + $shift"
jsImports={{ alpha: 3, shift: 20 }}
/>;
Usage in a Nextjs project
For now, squiggle-components
requires the window
property, so using the package in nextjs requires dynamic loading:
import React from "react";
import { SquiggleChart } from "@quri/squiggle-components";
import dynamic from "next/dynamic";
const SquiggleChart = dynamic(
() => import("@quri/squiggle-components").then((mod) => mod.SquiggleChart),
{
loading: () => <p>Loading...</p>,
ssr: false,
}
);
export function DynamicSquiggleChart({ squiggleString }) {
if (squiggleString == "") {
return null;
} else {
return (
<SquiggleChart
defaultCode={squiggleString}
width={445}
height={200}
showSummary={true}
/>
);
}
}
Build storybook for development
We assume that you had run yarn
at monorepo level, installing dependencies.
You need to prepare by building and bundling squiggle-lang
cd ../squiggle-lang
yarn build
If you've otherwise done this recently you can skip those.
Run a development server
yarn start