import React, { useCallback, useEffect, useRef, useState } from "react";
import { CKEditor } from "@ckeditor/ckeditor5-react";

import "@/styles/custom-editor.css";
import Editor from "@/vendor/ckeditor5/build/ckeditor";

function CustomEditor(props) {
  const maxHeight = props.maxHeight || 600;

  return (
    <div className="ckeditor-wrapper">
      <CKEditor
        editor={Editor}
        data={props.initialData}
        onChange={(event, editor) => {
          const data = editor.getData();
          console.log({ event, editor, data });
          props.onChange(data);
        }}
        config={{
          toolbar: [
            "heading",
            "fontsize",
            "bold",
            "italic",
            "link",
            "numberedList",
            "bulletedList",
            "undo",
            "redo",
            "alignment",
            "outdent",
            "indent",
            "blockQuote",
            "insertTable",
            "codeBlock",
            "sourceEditing",
          ],
          content_style: `
            body {
              font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
              font-size: 14px;
              line-height: 1.6;
              color: #111 !important; 
              background: #fff !important;
              margin: 0;
              padding: 1rem;
            }
            p {
              margin: 0.5em 0 !important;
            }
            h1, h2, h3, h4, h5, h6 {
              margin: 1em 0 0.5em 0;
              color: inherit !important;
            }
            ul, ol {
              margin: 0.5em 0;
              padding-left: 2em;
            }
            blockquote {
              margin: 1em 0;
              padding: 0.5em 1em;
              border-left: 4px solid #d1d5db;
              background-color: #f9fafb;
              color: inherit !important;
            }
          `,
          height: props.height || 400,
          removePlugins: ["Title"],
          mobile: {
            theme: "silver",
          },
        }}
      />
    </div>
  );
}

export default CustomEditor;
