// // @flow
// import React from 'react';
// import Code from './components/Code';
// import HorizontalRule from './components/HorizontalRule';
// import InlineCode from './components/InlineCode';
// import Image from './components/Image';
// import Link from './components/Link';
// import ListItem from './components/ListItem';
// import TodoList from './components/TodoList';
// import {
// Heading1,
// Heading2,
// Heading3,
// Heading4,
// Heading5,
// Heading6,
// } from './components/Heading';
// import Paragraph from './components/Paragraph';
// import BlockToolbar from './components/Toolbar/BlockToolbar';
// import type { Props, Node, Transform } from './types';
//
// type Options = {
// onInsertImage: Function,
// onChange: Function,
// };
//
// const createSchema = ({ onInsertImage, onChange }: Options) => {
// return {
// marks: {
// bold: (props: Props) => {props.children},
// code: (props: Props) => {props.children},
// italic: (props: Props) => {props.children},
// underlined: (props: Props) => {props.children},
// deleted: (props: Props) => {props.children},
// added: (props: Props) => {props.children},
// },
//
// nodes: {
// 'block-toolbar': (props: Props) => (
//
// ),
// paragraph: (props: Props) => ,
// 'block-quote': (props: Props) => (
//
{props.children}
// ),
// 'horizontal-rule': HorizontalRule,
// 'bulleted-list': (props: Props) => (
//
// ),
// 'ordered-list': (props: Props) => (
// {props.children}
// ),
// 'todo-list': (props: Props) => (
// {props.children}
// ),
// table: (props: Props) => (
//
// ),
// 'table-row': (props: Props) => (
// {props.children}
// ),
// 'table-head': (props: Props) => (
// {props.children} |
// ),
// 'table-cell': (props: Props) => (
// {props.children} |
// ),
// code: Code,
// image: Image,
// link: Link,
// 'list-item': ListItem,
// heading1: (props: Props) => ,
// heading2: (props: Props) => ,
// heading3: (props: Props) => ,
// heading4: (props: Props) => ,
// heading5: (props: Props) => ,
// heading6: (props: Props) => ,
// },
//
// rules: [
// // ensure first node is always a heading
// {
// match: (node: Node) => {
// return node.kind === 'document';
// },
// validate: (document: Node) => {
// const firstNode = document.nodes.first();
// return firstNode && firstNode.type === 'heading1' ? null : firstNode;
// },
// normalize: (transform: Transform, document: Node, firstNode: Node) => {
// transform.setBlock({ type: 'heading1' });
// },
// },
//
// // automatically removes any marks in first heading
// {
// match: (node: Node) => {
// return node.kind === 'heading1';
// },
// validate: (heading: Node) => {
// const hasMarks = heading.getMarks().isEmpty();
// const hasInlines = heading.getInlines().isEmpty();
//
// return !(hasMarks && hasInlines);
// },
// normalize: (transform: Transform, heading: Node) => {
// transform.unwrapInlineByKey(heading.key);
//
// heading.getMarks().forEach(mark => {
// heading.nodes.forEach(textNode => {
// if (textNode.kind === 'text') {
// transform.removeMarkByKey(
// textNode.key,
// 0,
// textNode.text.length,
// mark
// );
// }
// });
// });
//
// return transform;
// },
// },
// ],
// };
// };
//
// export default createSchema;