diff --git a/extensions/sticky/js/src/forum/addStickyClass.js b/extensions/sticky/js/src/forum/addStickyClass.js new file mode 100644 index 000000000..d090469c9 --- /dev/null +++ b/extensions/sticky/js/src/forum/addStickyClass.js @@ -0,0 +1,12 @@ +import { extend } from 'flarum/common/extend'; +import classList from 'flarum/common/utils/classList'; + +import DiscussionListItem from 'flarum/forum/components/DiscussionListItem'; + +export default function addStickyClass() { + extend(DiscussionListItem.prototype, 'elementAttrs', function (attrs) { + if (this.attrs.discussion.isSticky()) { + attrs.className = classList(attrs.className, 'DiscussionListItem--sticky'); + } + }); +} diff --git a/extensions/sticky/js/src/forum/index.js b/extensions/sticky/js/src/forum/index.js index 6981d26b4..3a1dd0940 100644 --- a/extensions/sticky/js/src/forum/index.js +++ b/extensions/sticky/js/src/forum/index.js @@ -6,6 +6,7 @@ import DiscussionStickiedPost from './components/DiscussionStickiedPost'; import addStickyBadge from './addStickyBadge'; import addStickyControl from './addStickyControl'; import addStickyExcerpt from './addStickyExcerpt'; +import addStickyClass from './addStickyClass'; app.initializers.add('flarum-sticky', () => { app.postComponents.discussionStickied = DiscussionStickiedPost; @@ -16,5 +17,6 @@ app.initializers.add('flarum-sticky', () => { addStickyBadge(); addStickyControl(); addStickyExcerpt(); + addStickyClass(); });