New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

solid-chartjs

Package Overview
Dependencies
Maintainers
0
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

solid-chartjs

SolidJS components for Chart.js

  • 1.3.11
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
0
Weekly downloads
 
Created
Source

solid-chartjs

solid-chartjs

Logo

version downloads telegram chat

The solid-chartjs library is a SolidJS wrapper around the Chart.js library, allowing you to easily create interactive charts in your SolidJS applications.

Quick start

Installation:

pnpm add solid-chartjs chart.js
# or
yarn add solid-chartjs chart.js
# or
npm i solid-chartjs chart.js

Demo: solid-chartjs.vychs.com

Usage:

import { onMount } from 'solid-js'
import { Chart, Title, Tooltip, Legend, Colors } from 'chart.js'
import { Line } from 'solid-chartjs'

const MyChart = () => {
    /**
     * You must register optional elements before using the chart,
     * otherwise you will have the most primitive UI
     */
    onMount(() => {
        Chart.register(Title, Tooltip, Legend, Colors)
    })

    const chartData = {
        labels: ['January', 'February', 'March', 'April', 'May'],
        datasets: [
            {
                label: 'Sales',
                data: [50, 60, 70, 80, 90],
            },
        ],
    }
    const chartOptions = {
        responsive: true,
        maintainAspectRatio: false,
    }

    return (
        <div>
            <Line data={chartData} options={chartOptions} width={500} height={500} />
        </div>
    )
}

If you don't want to import and register the controllers, elements, scales, and plugins you want to use, you can use the following solution:

[!NOTE]
It is considered to better use the tree-shakable way, to decrease the bundle size.

import 'chart.js/auto'
import { DefaultChart } from 'solid-chartjs'

<DefaultChart type="line" data={data} options={options} />

Chart Props

PropDescriptionType
widthThe width of the chart canvas in pixels.number | undefined
heightThe height of the chart canvas in pixels.number | undefined
fallbackA fallback element to display when chart fails.JSX.Element
typeThe type of the chart.keyof ChartTypeRegistry
dataThe chart data object.ChartData | undefined
optionsThe chart options object.ChartOptions | undefined
pluginsThe chart plugins object.Plugin[] | undefined

Examples

Check out /dev folder and run the SolidJs application to see how it works.

You can also use the DefaultChart components:

[!NOTE]
DefaultChart is a wrapper around Chart component, so you can use all the props from Chart component. DefaultChart component does not have its registrable elements registered by default, so you need to register them yourself unless you use chart.js/auto.

import { onMount } from 'solid-js'
import {
    Chart,
    LineController,
    CategoryScale,
    PointElement,
    LineElement,
    LinearScale,
} from 'chart.js'
import { DefaultChart } from 'solid-chartjs'

const MyChart = () => {
    onMount(() => {
        Chart.register(LineController, CategoryScale, PointElement, LineElement, LinearScale)
    })

    // ... your data and options objects

    return <DefaultChart type="line" data={data} options={options} width={400} height={300} />
}

Usage of fallback prop:

const fallback = () => {
    return (
        <div>
            <p>Chart is not available</p>
        </div>
    )
}

<DefaultChart type="bar" data={chartData} options={chartOptions} fallback={fallback} />

Credits

Keywords

FAQs

Package last updated on 14 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc