editor.js + nextjs header 이슈

IT/공통라이브러리 2024. 12. 11. 23:21

editorjs에서 header tool을 사용하면 아래의 오류가 발생한다.

 ⨯ node_modules/@editorjs/editorjs/dist/editorjs.mjs (15:1) @ eval
 ⨯ ReferenceError: Element is not defined

 

그와 동시에 에디터에서 header를 사용하면 스타일이 정상적으로 적용되지 않는 오류가 발생한다.

해당 이슈는 editorjs/header 깃허브 이슈로 등록이 되어 있지만 명확한 해결 방법이 없어 보인다.

 

https://github.com/editor-js/header/issues/122

 

Type Mismatch · Issue #122 · editor-js/header

Type Mismatch I encountered a type mismatch error where the code passed Property 'config' is optional in type 'BlockToolConstructorOptions<any, any>' but required in type 'ConstructorArgs'. This in...

github.com

 

 

js에서는 문제가 없지만, ts에서는 문제가 되고 있는 듯 하다.

 

이슈에 대한 내용은 타입이 맞지 않아 생기는 것으로 editor.js에서 에디터를 생성할 때, 설정으로 툴에 헤더를 추가하게 된다.

  const config: EditorConfig = {
    holder,
    data,
    autofocus: true,
    tools: {
      header: {
        class: Header,
        config: {
          placeholder: "Enter a header",
          levels: [1, 2, 3, 4, 5],
          defaultLevel: 1,
        },
      },
      code: CodeTool,
      list: List,
    },
    async onChange(api, event) {
      const data = await api.saver.save();

      onChange && onChange(data);
    },
  };

 

 

정상적이라면 class에 추가된 Header에 문제가 없어야 하지만 현재 에디터상에서 나타나는 오류는 다음과 같다.

'typeof Header' 형식은 'ToolConstructable | undefined' 형식에 할당할 수 없습니다.
  'typeof Header' 형식은 'BlockToolConstructable' 형식에 할당할 수 없습니다.
    '__0' 및 'config' 매개 변수의 형식이 호환되지 않습니다.
      'BlockToolConstructorOptions<any, any>' 형식은 'ConstructorArgs' 형식에 할당할 수 없습니다.
        'config' 속성은 'BlockToolConstructorOptions<any, any>' 형식에서 선택적이지만 'ConstructorArgs' 형식에서는 필수입니다.ts(2322)

 

그리고 editorjs의 tool config객체의 정보는 ToolConstructable|ToolSettings 으로 다음과 같이 선언되어 있다.

  /**
   * Map of Tools to use
   */
  tools?: {
    [toolName: string]: ToolConstructable|ToolSettings;
  }

 

 

'IT > 공통라이브러리' 카테고리의 다른 글

소스코드 정리 - 주석  (0) 2025.01.09
grid 레이아웃 구성  (0) 2024.12.12
레이아웃 구성 연구 - divider 2  (0) 2024.12.10
레이아웃 구성 연구 - divider  (0) 2024.12.10
공통 라이브러리  (0) 2023.07.11