Bonjour à tous,
J’ai une expérience en développement iOS (Swift), et une expérience superficielle avec Rails et Javascript. J’essaie de développer un plugin pour Discourse et j’ai des difficultés à afficher une boîte de dialogue modale après avoir cliqué sur un bouton dans la barre d’outils de l’interface d’édition de publication.
J’ai réussi à ajouter le bouton en utilisant quelque chose comme ceci :
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));
}
};
J’ai essayé d’utiliser ChatGPT pour m’aider dans le développement, et il a fait plusieurs suggestions concernant la structure des dossiers. Utilisation de composants, de modèles, de fichiers de contrôleur, mais je n’arrive pas à faire apparaître la boîte de dialogue. Soit j’obtiens des messages d’erreur, soit rien ne se passe.
J’ai essayé de chercher sur le forum ici, mais je ne trouve rien qui puisse m’aider.
Quelqu’un pourrait-il m’indiquer la bonne direction quant à la façon dont je dois configurer la structure des dossiers et surtout les conventions de nommage des fichiers concernés, afin que je puisse afficher une simple boîte de dialogue modale pour commencer ?
Merci d’avance !
EDIT : Je suis conscient que la fonction perform ne fait rien dans le code ci-dessus. J’ai essayé plusieurs méthodes pour la faire fonctionner, mais rien n’a aidé. Je l’ai donc laissée vide ici, démontrant simplement ce que j’ai fait jusqu’à présent pour que le bouton apparaisse dans la barre d’outils.