mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 13:31:44 +08:00
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 { addUserMenuGlyph } from "discourse/widgets/user-menu";
|
||||||
import { addPostClassesCallback } from "discourse/widgets/post";
|
import { addPostClassesCallback } from "discourse/widgets/post";
|
||||||
import { addPostTransformCallback } from "discourse/widgets/post-stream";
|
import { addPostTransformCallback } from "discourse/widgets/post-stream";
|
||||||
import { attachAdditionalPanel } from "discourse/widgets/header";
|
import {
|
||||||
|
attachAdditionalPanel,
|
||||||
|
addToHeaderIcons
|
||||||
|
} from "discourse/widgets/header";
|
||||||
import {
|
import {
|
||||||
registerIconRenderer,
|
registerIconRenderer,
|
||||||
replaceIcon
|
replaceIcon
|
||||||
|
@ -1141,6 +1144,19 @@ class PluginApi {
|
||||||
addCategoryLinkIcon(renderer) {
|
addCategoryLinkIcon(renderer) {
|
||||||
addExtraIconRenderer(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;
|
let _pluginv01;
|
||||||
|
|
|
@ -12,6 +12,12 @@ import { addExtraUserClasses } from "discourse/helpers/user-avatar";
|
||||||
import { scrollTop } from "discourse/mixins/scroll-top";
|
import { scrollTop } from "discourse/mixins/scroll-top";
|
||||||
import { h } from "virtual-dom";
|
import { h } from "virtual-dom";
|
||||||
|
|
||||||
|
const _extraHeaderIcons = [];
|
||||||
|
|
||||||
|
export function addToHeaderIcons(icon) {
|
||||||
|
_extraHeaderIcons.push(icon);
|
||||||
|
}
|
||||||
|
|
||||||
const dropdown = {
|
const dropdown = {
|
||||||
buildClasses(attrs) {
|
buildClasses(attrs) {
|
||||||
if (attrs.active) {
|
if (attrs.active) {
|
||||||
|
@ -226,6 +232,12 @@ createWidget("header-icons", {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_extraHeaderIcons) {
|
||||||
|
_extraHeaderIcons.forEach(icon => {
|
||||||
|
icons.push(this.attach(icon));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return icons;
|
return icons;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue
Block a user