slate-react-presentation
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

Slate Presentation

This is a small package that lets you render a slate.js document without the overhead of the actual editor.

Install

Install with yarn:

yarn add slate-react-presentation

or install with npm:

npm install --save slate-react-presentation

Usage

To use this package, simply pass your slate.js document as the value along with your renderElement and renderLeaf functions. Instead of rewriting them, you can also reuse the render functions from your actual editor - this package should be 100% compatible with slate.js.

import React, { useCallback } from 'react';
import { SlateReactPresentation } from 'slate-react-presentation';

export function MyDisplayComponent({ document }) {
    const renderElement = useCallback(({ attributes, children, element }) => {
        switch(element.type) {
            case 'h1':
                return <h1 {...attributes}>{children}</h1>
            
            // ...

            default:
                return <p {...attributes}>{children}</p>
        }
    }, []);

    const renderLeaf = useCallback(({ attributes, children, leaf }) => {
        if(leaf.bold) {
            children = <b>{children}</b>
        }

        // ...

        return <span {...attributes}>{children}</span>
    }, []);


    return (
        <SlateReactPresentation 
            value={document} // [{ type: 'h1' children: [ ... ]}, ...]
            renderElement={renderElement}
            renderLeaf={renderLeaf}
            />
    )
}

Package Sidebar

Install

npm i slate-react-presentation

Weekly Downloads

5,838

Version

0.2.1

License

MIT

Unpacked Size

386 kB

Total Files

13

Last publish

Collaborators

  • rockettomatooo