7.0.0 • Published 2 months ago

prismic-utils v7.0.0

Weekly downloads
12
License
MIT
Repository
github
Last release
2 months ago

Prismic Utils

A collection of functions for fetching and parsing data from a Prismic CMS

Build Status npm

Important Links


Table of Contents

  1. Installation
  2. Deserializing Documents
  3. Reducers
  4. Action Creators
  5. Fetching Data
  6. Utils

Installation

Yarn

yarn add prismic-utils

NPM

npm install prismic-utils --save


Deserializing Data

Deserialize a Prismic document into a simple object

import { deserializeDocument } from 'prismic-utils'

const page = deserializeDocument(doc, options)

Params

doc: the Prismic document that has been fetched from the Prismic API

Nest deserialized data

Use kebab case when naming your Prismic fields to nest your deserialized data.

E.g. header-title will deserialize to { header: { title: '' } }


Reducers

Create a Redux reducer to manage Prismic doc(s)

Eliminate the need to write repetitive reducers to manage data from Prismic docs.

import { createDocumentsReducer } from 'prismic-utils'

combineReducers({
	pages: createDocumentsReducer('pages')
})

Params

namespace: this will be used to decide which actions to act upon

  • createDocumentsReducer('pages') will listen for pages/FETCH, pages/FETCH_SUCCESS and pages/FETCH_FAILURE

options: additional options

  • fetch: override the default handler used for FETCH action
  • fetchSuccess: override the default handler used for FETCH_SUCCESS action
  • fetchFailure: override the default handler used for FETCH_FAILURE action
  • initialState: override the default initial state i.e. {}

Action Creators

Create a Redux action creator

Eliminate the need to write repetitive files to fetch Prismic docs and dispatch the relevant actions.

import { createDocumentsAction } from 'prismic-utils'

dispatch(createDocumentsAction('page', options))

createDocumentsAction returns a function to be used by Redux Thunk to fetch your documents and dispatch the relevant actions.

Params

namespace: this will be used to namespace the actions

  • dispatch(createDocumentsAction('pages', options)) will dispatch the following actions
  • pages/FETCH when the request is being fired off
  • pages/FETCH_SUCCESS when the request is fulfilled, with the data key of the payload containing the found documents
  • pages/FETCH_FAILURE if there was an error during the request
  • token can be an actual token, or you can pass in a function that will be called with the redux store, so you can retrieve your token from your store

options: additional options that will be used by fetchDocuments

createDocumentAction is the same as createDocumentsAction, except it will only retrieve and return a single document.


Fetching Data

fetchDocuments

Fetch documents from the Prismic API

import { fetchDocuments } from 'prismic-utils'

fetchDocuments(options)
	.then((docs) => docs) // docs will be an array of documents

Params

options: various options to use when fetching:

fetchDocument

Fetch a single document

import { fetchDocument } from 'prismic-utils'

fetchDocument(options)
	.then((doc) => doc)

Utils

Prismic utils also exports a couple of useful utilities

PrismicRichText

This is a React component that can be used to render Rich Text fields using all react components, rather than relying on inserting raw HTML using dangerouslySetInnerHTML.

import { PrismicRichText } from 'prismic-utils'

const MyComponent = ({ myRichTextField }) => (
	<PrismicRichText>
		{myRichTextField.data}
	</PrismicRichText>
)
7.0.0

2 months ago

6.4.8

3 years ago

6.4.5

4 years ago

6.4.4

4 years ago

6.4.3

4 years ago

6.4.2

4 years ago

6.4.1

4 years ago

6.4.0

4 years ago

6.3.0

5 years ago

6.2.0

6 years ago

6.1.1

6 years ago

6.1.0

6 years ago

6.0.0

6 years ago

5.0.2

7 years ago

4.1.3

7 years ago

4.1.2

7 years ago

4.1.1

7 years ago

5.0.1

7 years ago

5.0.0

7 years ago

4.1.0

7 years ago

4.0.0

7 years ago

3.0.9

7 years ago

3.0.8

7 years ago

3.0.7

7 years ago

3.0.6

7 years ago

3.0.5

7 years ago

3.0.4

7 years ago

3.0.3

7 years ago

3.0.2

7 years ago

3.0.1

7 years ago

3.0.0

7 years ago

2.1.8

7 years ago

2.1.7

7 years ago

2.1.6

7 years ago

2.1.5

7 years ago

2.1.4

7 years ago

2.1.3

7 years ago

2.1.2

7 years ago

2.1.1

7 years ago

2.1.0

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.1.0

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago