import React from 'react';

export interface Editor {
  getHTML(): string;
  commands: { setContent(value: string): void };
  chain(): any;
  isActive(name: string): boolean;
  setEditable(editable: boolean): void;
}

export function useEditor(options: { content?: string }): Editor {
  let content = options.content ?? '';
  const chain = {
    focus: () => chain,
    toggleBold: () => chain,
    toggleItalic: () => chain,
    toggleBulletList: () => chain,
    toggleOrderedList: () => chain,
    run: () => true,
  };
  return {
    getHTML: () => content,
    commands: { setContent: value => { content = value; } },
    chain: () => chain,
    isActive: () => false,
    setEditable: () => {},
  };
}

export function EditorContent(): React.ReactElement {
  return <div />;
}

export class ReactRenderer {
  element = document.createElement('div');
  ref: unknown;
  constructor(_component: React.ComponentType<unknown>, _options: unknown) {}
  updateProps(_props: unknown): void {}
  destroy(): void {}
}

const extension = {};
export default extension;
