mirror of
https://github.com/discourse/discourse.git
synced 2025-05-28 12:02:05 +08:00
FIX: adds select-kit api to modify header computed content (#5476)
This api would allow to simply modify header text or icons, eg: ``` api.modifySelectKit("select-kit") .modifyHeaderComputedContent((context, computedContent) => { computedContent.title = "Not so evil"; return computedContent; }); ```
This commit is contained in:
@ -25,6 +25,15 @@ function modifyContent(pluginApiIdentifiers, contentFunction) {
|
||||
_modifyContentCallbacks[pluginApiIdentifiers].push(contentFunction);
|
||||
}
|
||||
|
||||
let _modifyHeaderComputedContentCallbacks = {};
|
||||
function modifyHeaderComputedContent(pluginApiIdentifiers, contentFunction) {
|
||||
if (Ember.isNone(_modifyHeaderComputedContentCallbacks[pluginApiIdentifiers])) {
|
||||
_modifyHeaderComputedContentCallbacks[pluginApiIdentifiers] = [];
|
||||
}
|
||||
|
||||
_modifyHeaderComputedContentCallbacks[pluginApiIdentifiers].push(contentFunction);
|
||||
}
|
||||
|
||||
let _onSelectCallbacks = {};
|
||||
function onSelect(pluginApiIdentifiers, mutationFunction) {
|
||||
if (Ember.isNone(_onSelectCallbacks[pluginApiIdentifiers])) {
|
||||
@ -50,6 +59,16 @@ export function applyContentPluginApiCallbacks(identifiers, content, context) {
|
||||
return content;
|
||||
}
|
||||
|
||||
export function applyHeaderContentPluginApiCallbacks(identifiers, content, context) {
|
||||
identifiers.forEach((key) => {
|
||||
(_modifyHeaderComputedContentCallbacks[key] || []).forEach((c) => {
|
||||
content = c(context, content);
|
||||
});
|
||||
});
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
export function applyOnSelectPluginApiCallbacks(identifiers, val, context) {
|
||||
identifiers.forEach((key) => {
|
||||
(_onSelectCallbacks[key] || []).forEach((c) => c(context, val));
|
||||
@ -70,6 +89,10 @@ export function modifySelectKit(pluginApiIdentifiers) {
|
||||
modifyContent(pluginApiIdentifiers, callback);
|
||||
return modifySelectKit(pluginApiIdentifiers);
|
||||
},
|
||||
modifyHeaderComputedContent: (callback) => {
|
||||
modifyHeaderComputedContent(pluginApiIdentifiers, callback);
|
||||
return modifySelectKit(pluginApiIdentifiers);
|
||||
},
|
||||
onSelect: (callback) => {
|
||||
onSelect(pluginApiIdentifiers, callback);
|
||||
return modifySelectKit(pluginApiIdentifiers);
|
||||
@ -81,6 +104,7 @@ export function clearCallbacks() {
|
||||
_appendContentCallbacks = {};
|
||||
_prependContentCallbacks = {};
|
||||
_modifyContentCallbacks = {};
|
||||
_modifyHeaderComputedContentCallbacks = {};
|
||||
_onSelectCallbacks = {};
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user