플러그인을 통해 툴바 버튼을 클릭한 후 모달 대화상자를 표시하는 방법

여러분 안녕하세요,

저는 iOS(Swift) 개발 배경을 가지고 있으며, Rails와 JavaScript에 대한 경험은 표면적인 수준에 불과합니다. 현재 discourse 플러그인을 개발 중인데, 게시글 편집기 UI의 툴바에서 버튼을 클릭한 후 모달 다이얼로그를 표시하는 데 어려움을 겪고 있습니다.

아래와 같은 코드를 통해 버튼을 성공적으로 추가했습니다:

assets/javascripts/discourse/initializers/audio-message-button.js.es6

import { withPluginApi } from 'discourse/lib/plugin-api';

function initializeWithApi(api) {
  api.onToolbarCreate(toolbar => {
    toolbar.addButton({
      id: "audio_message",
      group: "extras",
      icon: "microphone",
      perform: (editor) => {
        
      }
    });
  });
}

export default {
  name: 'audio-message-button',
  initialize(container) {
    withPluginApi('0.12.0', api => initializeWithApi(api));
  }
};

개발을 위해 ChatGPT를 활용하고 있는데, 폴더 구조에 대해 컴포넌트, 템플릿, 컨트롤러 파일 사용 등 여러 가지 제안을 받았습니다. 하지만 다이얼로그가 표시되지 않습니다. 오류 메시지가 뜨거나 아예 아무 반응이 없는 경우입니다.

여기 포럼에서 검색을 해 보았지만, 이 문제를 해결하는 데 도움이 될 만한 정보를 찾지 못했습니다.

간단한 모달 다이얼로그를 표시하여 개발을 시작할 수 있도록, 관련 파일의 폴더 구조 설정과 특히 파일 명명 규칙에 대해 올바른 방향을 알려 주실 수 있을까요?

미리 감사드립니다!

수정: 위 코드에서 perform 함수가 아무것도 하지 않는다는 점은 인지하고 있습니다. 동작하도록 하기 위해 여러 가지 방법을 시도해 보았지만, 아무것도 도움이 되지 않았습니다. 그래서 여기서는 비워 두었고, 툴바에 버튼이 표시되도록 지금까지 한 작업을 보여주기 위한 것입니다.

피터, 안녕하세요 :slight_smile:

질문에 대한 답변을 드릴 만큼 지식이 부족하지만, 컴포저에 버튼을 추가하고 모달을 여는 플러그인과 테마 컴포넌트를 하나씩 첨부합니다. 이 두 가지의 코드에서 힌트를 얻을 수 있을지도 모르겠네요:

@Canapin 감사합니다,

이 플러그인 덕분에 올바른 방향으로 이끌어 주셨네요 :slight_smile:

작동하는 코드를 여기에 공유해 주세요. 다른 분들께 분명 도움이 될 거예요 :slight_smile:

정리가 끝나고 완성되면 여기에서 동작하는 코드를, 사실 플러그인 전체를 공유할 거예요 :slightly_smiling_face:

약속대로 여기에 공유합니다: