Coder Social home page Coder Social logo

sanity-plugin-tabs's Introduction

Sanity Tabs Plugin

Input component for rendering fieldsets as tabs

NPM version NPM Downloads

Important

Sanity now includes Field Groups from version 2.24.0.
This feature supersedes this plugin, and it is now in maintenance only mode.

Compatibility

Package Version Sanity Version
2.1.x 2.1.x - 2.24.x
2.0.x 2.0.x
1.4.x 1.150.x

How does it look?

Preview

Demo

Clone the original demo repository and run sanity start to see how it works.

How do I use it?

Just add inputComponent: Tabs to your field. Please note that the field type must be object.

import Tabs from 'sanity-plugin-tabs';

export default {
  type: 'document',
  title: `Front Page`,
  name: `frontPage`,
  inputComponent: Tabs,
  fieldsets: [
    { name: 'main', title: 'Main', options: { sortOrder: 10 } },
    { name: 'aside', title: 'Aside', options: { sortOrder: 20 } },
    { name: 'meta', title: 'Meta', options: { sortOrder: 30 } },
  ],
  fields: [
    {
      type: 'object',
      name: 'mainTitle',
      title: 'Main Title',
      fieldset: 'main',

      fieldsets: [{ name: 'ingress', title: 'Ingress' }],

      fields: [
        {
          type: 'string',
          name: 'header',
          title: 'Header',
        },
        {
          type: 'string',
          name: 'ingressText',
          title: 'Text',
          fieldset: 'ingress',
        },
      ],
    },
    {
      type: 'string',
      name: 'info',
      title: 'Information',
      fieldset: 'aside',
    },
    {
      type: 'object',
      name: 'aside',
      fieldset: 'meta',
      inputComponent: Tabs,

      fieldsets: [
        { name: 'tags', title: 'Tags' },
        { name: 'categories', title: 'Categories' },
      ],

      fields: [
        {
          type: 'string',
          name: 'contentType',
          title: 'Content Type',
          fieldset: 'tags',
        },
        {
          type: 'string',
          name: 'category',
          title: 'Category',
          fieldset: 'categories',
        },
      ],
    },
  ]
};

Development

Run the following commands at the root of this repository.

npm i
npm run build
npm link

Now you can start developing the plugin.

To include it in your Sanity test site, navigate to the root folder of your CMS project and run:

npm link sanity-plugin-tabs

You will now reference the local version of the plugin when importing it as below:

import Tabs from 'sanity-plugin-tabs';

Debugging

To debug the plugin files in you then need to start Sanity with the flag --preserve-symlinks as in the command below:

sanity start --preserve-symlinks

And then from the sanity-plugin-tabs repository folder, run the project with:

npm run dev

Logging from the plugin is disabled by default, so if you'd like to see more detailed debug information, set the environment variable:

SANITY_STUDIO_PLUGIN_TABS_DEBUG=true

This can be easily done by creating a file called .env.development next to your project's sanity.json and adding the line above to that file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.