import React, { useState } from 'react' import { Grid, Container } from '@toptal/picasso' import { ImagePlugin, CodeBlockPlugin, RichText, RichTextEditor, LinkPlugin, EmojiPlugin, CodePlugin, } from '@toptal/picasso-rich-text-editor' import { htmlToHast } from '@toptal/picasso-rich-text-editor/utils' import type { CustomEmojiGroup } from '@toptal/picasso-rich-text-editor/RichTextEditor' import type { ASTType } from '../types' const Example = () => { const [html, setHtml] = useState('') return ( , , new Promise(resolve => setTimeout(resolve, 2000)) } />, , , ]} /> ) } const customEmojis = [ { id: 'talent-community', name: 'Talent Community', emojis: [ { id: 'talent-community', name: 'Talent Community', keywords: ['Toptal', 'Talent Community', 'Community'], skins: [ { src: 'https://emoji.slack-edge.com/T01HSMSV622/talent-community/3937b2735bdea8c3.png', }, ], }, ], }, ] as CustomEmojiGroup[] const defaultValue: ASTType = { type: 'root', children: [ { type: 'element', tagName: 'h3', properties: {}, children: [{ type: 'text', value: 'Position Description' }], }, { type: 'element', tagName: 'p', properties: {}, children: [ { type: 'element', tagName: 'img', properties: { src: './jacqueline/128x88.jpg', alt: 'Jacqueline', }, children: [], }, ], }, { type: 'element', tagName: 'p', properties: {}, children: [ { type: 'text', value: 'We’re looking for ' }, { type: 'element', tagName: 'em', properties: {}, children: [ { type: 'element', tagName: 'strong', properties: {}, children: [{ type: 'text', value: 'hardworking' }], }, ], }, { type: 'text', value: ', self-starting ' }, { type: 'element', tagName: 'em', properties: {}, children: [{ type: 'text', value: 'Designers ' }], }, { type: 'text', value: 'for our ' }, { type: 'element', tagName: 'img', properties: { src: customEmojis[0].emojis[0].skins[0].src, 'data-src': customEmojis[0].emojis[0].skins[0].src, 'data-emoji-name': customEmojis[0].emojis[0].id, }, children: [], }, { type: 'element', tagName: 'strong', properties: {}, children: [{ type: 'text', value: ' Product Design' }], }, { type: 'text', value: ' team to help us define how talent interacts with ', }, { type: 'element', tagName: 'a', properties: { href: 'https://toptal.com' }, children: [ { type: 'text', value: 'Toptal, ' }, { type: 'element', tagName: 'strong', properties: {}, children: [ { type: 'text', value: 'the greatest talent company ' }, ], }, { type: 'element', tagName: 'em', properties: {}, children: [{ type: 'text', value: 'in the world' }], }, ], }, { type: 'text', value: ' 💪' }, ], }, { type: 'element', tagName: 'p', properties: {}, children: [ { type: 'text', value: 'Example of inline ' }, { type: 'element', tagName: 'code', properties: {}, children: [{ type: 'text', value: 'code()' }], }, ], }, { type: 'element', tagName: 'pre', properties: {}, children: [ { type: 'text', value: '' }, ], }, { type: 'element', tagName: 'p', properties: {}, children: [ { type: 'text', value: 'You’ll build beautiful and inspiring design experiences that help users discover and connect with resources they need in truly innovative ways.', }, ], }, { type: 'element', tagName: 'h3', properties: {}, children: [{ type: 'text', value: 'Requirements' }], }, { type: 'element', tagName: 'ol', properties: {}, children: [ { type: 'element', tagName: 'li', properties: {}, children: [ { type: 'text', value: 'Collaborate with PMs and other designers to ship your first product features.', }, { type: 'element', tagName: 'ol', properties: {}, children: [ { type: 'element', tagName: 'li', properties: {}, children: [ { type: 'text', value: 'Learn about our design system.' }, ], }, ], }, ], }, ], }, { type: 'element', tagName: 'h3', properties: {}, children: [{ type: 'text', value: 'Requirements' }], }, { type: 'element', tagName: 'ul', properties: {}, children: [ { type: 'element', tagName: 'li', properties: {}, children: [ { type: 'text', value: 'Proficiency with various design and prototyping tools (such as Sketch, Abstract, Marvel, Principle, Figma), as well as knowledge of HTML and CSS.', }, ], }, { type: 'element', tagName: 'li', properties: {}, children: [ { type: 'text', value: 'An understanding that phenomenal experiences come from collaborative decision-making with front-end developers, engineers, researchers, content strategists, and other disciplines.', }, { type: 'element', tagName: 'ul', properties: {}, children: [ { type: 'element', tagName: 'li', properties: {}, children: [ { type: 'text', value: 'Lorem itaque assumenda id accusamus omnis! Vel veritatis voluptatibus possimus eum aspernatur Facilis nobis iste iste reprehenderit nihil. Fugiat ipsam', }, ], }, ], }, ], }, ], }, ], } export default Example