Skip to content

Table schema type and input component for Sanity Studio

License

Notifications You must be signed in to change notification settings

sanity-io/table

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sanity Table Plugin

This is a Sanity Studio v3 plugin. For the v2 version, please refer to the v2 repository.

This is a (triple) fork of the Sanity Plugin Table, migrated to Sanity Studio V3. Only the v3 version is maintained by Sanity.io.

example

Acknowledgements

Big thanks to the original contributors for their work!

Disclaimer

Sometimes a table is just what you need. However, before using the Table plugin, consider if there are other ways to model your data that are:

  • easier to edit and validate
  • easier to query

Approaching your schemas in a more structured manner can often pay dividends down the line.

Install

Install using npm

$ npm i --save @sanity/table

Usage

Add the plugin to your project configuration. Then use the type in your schemas

// sanity.config.ts

import { defineConfig } from 'sanity';

import { table } from '@sanity/table';

export default defineConfig({
  name: 'default',
  title: 'My Cool Project',
  projectId: 'my-project-id',
  dataset: 'production',
  plugins: [
    // Include the table plugin
    table(),
  ],
  schema: {
    types: [
      {
        name: 'product',
        title: 'Product',
        type: 'document',
        fields: [
          {
            // Include the table as a field
            // Giving it a semantic title
            name: 'sizeChart',
            title: 'Size Chart',
            type: 'table',
          },
        ],
      },
    ],
  },
});

Configuration

You can optionally configure the _type used for the row object in the table schema by passing a rowType when adding the plugin. For most users this is unnecessary, but it can be useful if you are migrating from a legacy table plugin.

export default defineConfig({
  // ...
  plugins: [
    table({
      rowType: 'my-custom-row-type',
    }),
  ],
  // ...
});

License

MIT © ʞunp ʇɹǝdnɹ, Mathis Bullinger, Dave Lucia and Sanity.io

Develop & test

This plugin uses @sanity/plugin-kit with default configuration for build & watch scripts.

See Testing a plugin in Sanity Studio on how to run this plugin with hotreload in the studio.

Release new version

Run "CI & Release" workflow. Make sure to select the main branch and check "Release new version".

Semantic release will only release on configured branches, so it is safe to run release on any branch.