إظهار مربع حوار بعد النقر على زر شريط الأدوات عبر مكون إضافي

مرحباً بالجميع،

لدي خلفية في تطوير iOS (Swift)، وخبرة سطحية فقط مع Rails و Javascript. أحاول تطوير إضافة لـ discourse، وأواجه صعوبة في عرض مربع حوار منبثق بعد النقر على زر في شريط أدوات محرر المشاركات.

لقد نجحت في إضافة الزر من خلال شيء مثل هذا:

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)