From bbca24a87324c104ba7a7483c6c255797990e817 Mon Sep 17 00:00:00 2001 From: David Wheatley Date: Mon, 16 Aug 2021 11:01:54 +0200 Subject: [PATCH] Add classes to sticky discussions (#31) --- extensions/sticky/js/src/forum/addStickyClass.js | 12 ++++++++++++ extensions/sticky/js/src/forum/index.js | 2 ++ 2 files changed, 14 insertions(+) create mode 100644 extensions/sticky/js/src/forum/addStickyClass.js 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(); });