DEV: Plugin api for adding extra header icons (#9964)
This commit is contained in:
parent
4e3a84c687
commit
b3c8d36412
|
@ -28,7 +28,10 @@ import { addTagsHtmlCallback } from "discourse/lib/render-tags";
|
|||
import { addUserMenuGlyph } from "discourse/widgets/user-menu";
|
||||
import { addPostClassesCallback } from "discourse/widgets/post";
|
||||
import { addPostTransformCallback } from "discourse/widgets/post-stream";
|
||||
import { attachAdditionalPanel } from "discourse/widgets/header";
|
||||
import {
|
||||
attachAdditionalPanel,
|
||||
addToHeaderIcons
|
||||
} from "discourse/widgets/header";
|
||||
import {
|
||||
registerIconRenderer,
|
||||
replaceIcon
|
||||
|
@ -1141,6 +1144,19 @@ class PluginApi {
|
|||
addCategoryLinkIcon(renderer) {
|
||||
addExtraIconRenderer(renderer);
|
||||
}
|
||||
/**
|
||||
* Adds a widget to the header-icon ul. The widget must already be created. You can create new widgets
|
||||
* in a theme or plugin via an initializer prior to calling this function.
|
||||
*
|
||||
* ```
|
||||
* api.addToHeaderIcons(
|
||||
* createWidget('some-widget')
|
||||
* ```
|
||||
*
|
||||
**/
|
||||
addToHeaderIcons(icon) {
|
||||
addToHeaderIcons(icon);
|
||||
}
|
||||
}
|
||||
|
||||
let _pluginv01;
|
||||
|
|
|
@ -12,6 +12,12 @@ import { addExtraUserClasses } from "discourse/helpers/user-avatar";
|
|||
import { scrollTop } from "discourse/mixins/scroll-top";
|
||||
import { h } from "virtual-dom";
|
||||
|
||||
const _extraHeaderIcons = [];
|
||||
|
||||
export function addToHeaderIcons(icon) {
|
||||
_extraHeaderIcons.push(icon);
|
||||
}
|
||||
|
||||
const dropdown = {
|
||||
buildClasses(attrs) {
|
||||
if (attrs.active) {
|
||||
|
@ -226,6 +232,12 @@ createWidget("header-icons", {
|
|||
);
|
||||
}
|
||||
|
||||
if (_extraHeaderIcons) {
|
||||
_extraHeaderIcons.forEach(icon => {
|
||||
icons.push(this.attach(icon));
|
||||
});
|
||||
}
|
||||
|
||||
return icons;
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue