# prismic-reactjs
**Repository Path**: mirrors_TrySound/prismic-reactjs
## Basic Information
- **Project Name**: prismic-reactjs
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-09-26
- **Last Updated**: 2025-09-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

[](http://badge.fury.io/js/prismic-reactjs)
[](https://travis-ci.org/prismicio/prismic-reactjs)
# Prismic Rich (π°) Text, for React
### A simple utility to render Rich Text with Prismic API V2
Prismic provides content writers with a WYSIWYG editor. It's awesome for formatting text but harder to deal with on client side. Fortunately, Prismic React provides utilities to tackle this exact issue!
Based on [prismic-richtext](https://github.com/prismicio/prismic-richtext), it allows you to render Prismic generated Rich Text as React components. It's meant to work in pair with the prismic-javascript library, a new javascript kit for the prismic API v2 [available here](https://github.com/prismicio/prismic-javascript).
* The [source code](https://github.com/prismicio/prismic-reactjs) is on Github.
* The [Changelog](https://github.com/prismicio/prismic-reactjs/releases) is on Github's releases tab.
* The [API reference](https://prismicio.github.io/prismic-javascript/globals.html) is on Github.
## Installation
#### Prismic Api Endpoint
First and foremost, make sure you're using the V2 API.
Your `prismic-configuration.js` (or equivalent) should probably contain a line like this one (or equivalent) π
```javascript
apiEndpoint: your-repo-name.prismic.io/api/v2
```
Consider polyfilling:
- [Object.assign()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
- [Object spread](https://babeljs.io/docs/en/babel-plugin-proposal-object-rest-spread)
#### NPM
π Prismic React is on npm...
```sh
npm install prismic-reactjs --save
```
#### CDN
... and on CDN!
```
https://unpkg.com/prismic-reactjs
```
(You may need to adapt the version number)
#### Downloadable version
You'll find downloadable versions on our release page: [https://github.com/prismicio/prismic-reactjs/releases](https://github.com/prismicio/prismic-reactjs/releases).
The kit is universal, it can be used:
* Server-side with NodeJS
* Client-side as part of your build with Browserify, Parcel, webpack...
* Client-side with a simple script tag
# Usage
Although this package is mainly about RichText, Prismic React exposes 3 utilities.
Import them in your project this way:
``` javascript
import {Date, Link, RichText} from 'prismic-reactjs';
```
## Date utility
Like `Link`, `Date` is directly imported from [prismic-helpers](https://github.com/prismicio/prismic-helpers). It converts a Date string received from the API, to an ISO (8601) Javascript Date (ie. something you're used to work with):
```javascript
import { Date as ParseDate } from 'prismic-reactjs'
ParseDate(mydoc.data.mydate)
```
β οΈ Make sure you rename the import to not override the built-in Date type.
In a near future, we might rename it at package level.
## Link utility
`Link` generates links to documents within your website (and outside).
Give it a Link fragment and you'll get a full fledged url:
```javascript
Link.url(mydoc.data.mylink, ctx.linkResolver)
```
πNote that `linkResolver` argument is not required if you are 100% sure that your're not linking to a document !
## RichText Component
RichText is a simple React component used to _render_ a Rich Text.
If you've been used to work with `RichText.render`, you're pretty much good to go!
#### Basic example
This is the most basic way to make it work, where `myDoc.data.title` is (obviously) a Rich Text object.
`linkResolver` will be triggered everytime RichText meets a link and wants to correctly resolve it.
```javascript
import { RichText } from 'prismic-reactjs';
// Use linkResolver if you *actually* have links
const linkResolver = (doc) => {
switch (doc.type) {
case ('homepage'): return '/'
}
}
const Header = (myDoc) => (