sanity-plugin-availability
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

sanity-plugin-availability

Studio v3 exclusive Schema and Custom Input to indicate and rapidly author availability data.

Custom input component showing days of the week and available times

Installation

npm install --save sanity-plugin-availability

or

yarn add sanity-plugin-availability

Usage

Add it as a plugin in sanity.config.ts (or .js):

// ./sanity.config.ts

 import {defineConfig} from 'sanity'
 import {availability} from 'sanity-plugin-availability'

 export const defineConfig({
  // all other settings...
  plugins: [
    // all other plugins...
    availability()
  ]
 })

Then use the availability field type as a field in your schema files.

defineField({
  name: 'availability',
  type: 'availability',
})

To create default times for all new documents, set an Initial Value at the document level. The helper function defaultAvailabilityDays is exported from the plugin for this.

(In future the plugin will do this itself, but a bug in the Studio presently requires this to be done at the document level so that the correct array _key values are set)

import {defineType} from 'sanity'
import {defaultAvailabilityDays} from 'sanity-plugin-availability'

export default defineType({
  name: 'person',
  title: 'Person',
  type: 'document',
  initialValue: {
    availability: defaultAvailabilityDays(),
  },
  // ... all other schema settings
})

Caveats

To get this first version launched choices have been made and there are currently no configurable options:

  • Default availability times are Monday-Friday, 9am-5pm.
  • Time increments are only available in 15 minutes.
  • Time is shown in 12 hour time, but can be searched by 24 hour time queries.
  • Days must be sorted Monday to Sunday, times from earliest to latest, but there are no controls for adjusting sorting if they happen to get out of sync.

License

MIT © Simeon Griggs See LICENSE

License

MIT © Simeon Griggs

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.

Readme

Keywords

Package Sidebar

Install

npm i sanity-plugin-availability

Weekly Downloads

133

Version

1.0.1

License

MIT

Unpacked Size

55.9 kB

Total Files

21

Last publish

Collaborators

  • simeongriggs