Mostra una finestra di dialogo modale dopo aver fatto clic sul pulsante della barra degli strumenti tramite un plugin

Ciao a tutti,

Ho esperienza nello sviluppo iOS (Swift), solo un’esperienza superficiale con Rails e Javascript. Sto cercando di sviluppare un plugin per Discourse e ho difficoltà a mostrare una finestra di dialogo modale dopo aver cliccato su un pulsante nella barra degli strumenti dell’editor dei post.

Sono riuscito ad aggiungere il pulsante con qualcosa di simile a questo:

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));
  }
};

Ho provato a utilizzare ChatGPT per aiutarmi nello sviluppo e mi ha dato diversi suggerimenti riguardo alla struttura delle cartelle. Utilizzando componenti, template, file controller, ma non riesco a far apparire la finestra di dialogo. O ricevo messaggi di errore o non succede nulla.

Ho provato a cercare nel forum, ma non riesco a trovare nulla che possa aiutarmi.

Qualcuno può indicarmi la giusta direzione su come devo impostare la struttura delle cartelle e soprattutto le convenzioni di denominazione dei file coinvolti, in modo da poter mostrare una semplice finestra di dialogo modale per iniziare?

Grazie in anticipo!

EDIT: Sono consapevole che la funzione perform non fa nulla nel codice sopra. Ho provato diversi metodi per farla funzionare, ma nulla ha aiutato. Quindi l’ho lasciata vuota qui, solo per dimostrare cosa ho fatto finora per far apparire il pulsante nella barra degli strumenti.

Ciao Peter :slight_smile:

Non ho le conoscenze per rispondere alla tua domanda, ma ecco un plugin e un componente tematico che aggiungono entrambi un pulsante alla composizione che apre una finestra modale, forse troverai alcuni spunti nel loro codice:

1 Mi Piace

Grazie @Canapin,

questi plugin mi hanno aiutato a puntare nella giusta direzione :slight_smile:

1 Mi Piace

Sentiti libero di condividere qui il tuo codice funzionante, aiuterà sicuramente altre persone :slight_smile:

1 Mi Piace

Condividerò sicuramente il codice funzionante qui, l’intero plugin in realtà, quando sarà ripulito e avrò finito :slightly_smiling_face:

1 Mi Piace

Condivido qui come promesso:

1 Mi Piace