プラグイン経由でツールバーボタンをクリックした後にモーダルダイアログを表示する

こんにちは皆さん、

私は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:

ご質問にお答えする知識はありませんが、コンポーザーにボタンを追加してモーダルを開くプラグインとテーマコンポーネントが両方あります。コードの中に何かヒントが見つかるかもしれません。

「いいね!」 1

@Canapin様、ありがとうございます。

これらのプラグインが正しい方向へ導いてくれました :slight_smile:

「いいね!」 1

コードを共有していただけると、他の人の助けになりますよ :slight_smile:

「いいね!」 1

コードが整理され、完了したら、プラグイン全体をここに共有します :slightly_smiling_face:

「いいね!」 1

お約束通り、こちらで共有します。

「いいね!」 1