مرحباً،
أود استدعاء إجراء toggleSearchMenu من عنصر واجهة مستخدم زر مخصص يفتح قائمة البحث عند النقر عليه.
لقد جربت:
click() {
this.sendWidgetAction('toggleSearchMenu').then(() => console.log("SENDWIDGETACTION"));
}
ولكن عند النقر على زري، يظهر toggleSearchMenu not found في وحدة التحكم.
لقد جربت طرقًا أخرى لا تعمل كما يمكنك رؤيتها هنا:
import { createWidget } from "discourse/widgets/widget";
import { iconNode } from "discourse-common/lib/icon-library";
import { h } from 'virtual-dom';
export default createWidget("search-btn-widget", {
tagName: "div.search-btn-widget",
buildKey: () => "search-btn-widget",
html(args) {
let search_button_helper = "button#search-btn";
let search_button_class;
let search_title = "Chercher un sujet";
let search_text = "Chercher un sujet";
let search_icon = "ri-small-recherche";
let search_label_helper = "span.d-button-label";
if (args == "default") {
search_button_class = "btn btn-default btn btn-icon-text";
} else if (args == "primary") {
search_button_class = "btn btn-primary btn btn-icon-text";
} else {
return;
}
const toggleSearch = function() {
this.sendWidgetAction("toggleSearchMenu");
};
return h(
search_button_helper,
{
className: search_button_class,
title: search_title,
// action: "toggleSearchMenu" => لا يعمل
// onclick: "toggleSearchMenu" => لا يعمل
onclick: toggleSearch
},
[iconNode(search_icon), h(search_label_helper, search_text)]
)
},
// click() {
// this.sendWidgetAction('toggleSearchMenu').then(() => console.log("SENDWIDGETACTION"));
// } => لا يعمل
});
أي فكرة حول كيفية استدعاء إجراء الواجهة هذا داخل الواجهة الخاصة بي إذا كان ذلك ممكنًا؟
شكراً جزيلاً لك ![]()