www.gusucode.com > Flarum开源的PHP国外手机版论坛 0.1 Beta2 源码程序 > Flarum_v0.1.beta2/extensions/sticky/js/forum/src/addStickyControl.js

    import { extend } from 'flarum/extend';
import DiscussionControls from 'flarum/utils/DiscussionControls';
import DiscussionPage from 'flarum/components/DiscussionPage';
import Button from 'flarum/components/Button';

export default function addStickyControl() {
  extend(DiscussionControls, 'moderationControls', function(items, discussion) {
    if (discussion.canSticky()) {
      items.add('sticky', Button.component({
        children: app.trans(discussion.isSticky() ? 'sticky.unsticky' : 'sticky.sticky'),
        icon: 'thumb-tack',
        onclick: this.stickyAction.bind(discussion)
      }));
    }
  });

  DiscussionControls.stickyAction = function() {
    this.save({isSticky: !this.isSticky()}).then(() => {
      if (app.current instanceof DiscussionPage) {
        app.current.stream.update();
      }

      m.redraw();
    });
  };
}