sidebar.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. BlazeComponent.extendComponent({
  2. template: function() {
  3. return 'boardSidebar';
  4. },
  5. mixins: function() {
  6. return [Mixins.InfiniteScrolling];
  7. },
  8. onCreated: function() {
  9. this._isOpen = new ReactiveVar(true);
  10. },
  11. isOpen: function() {
  12. return this._isOpen.get();
  13. },
  14. open: function() {
  15. if (! this._isOpen.get()) {
  16. this._isOpen.set(true);
  17. }
  18. },
  19. hide: function() {
  20. if (this._isOpen.get()) {
  21. this._isOpen.set(false);
  22. }
  23. },
  24. toogle: function() {
  25. this._isOpen.set(! this._isOpen.get());
  26. },
  27. calculateNextPeak: function() {
  28. var altitude = this.find('.js-board-sidebar-content').scrollHeight;
  29. this.callFirstWith(this, 'setNextPeak', altitude);
  30. },
  31. reachNextPeak: function() {
  32. var activitiesComponent = this.componentChildren('activities')[0];
  33. activitiesComponent.loadNextPage();
  34. },
  35. isTongueHidden: function() {
  36. return this.isOpen() && Filter.isActive();
  37. },
  38. events: function() {
  39. // XXX Hacky, we need some kind of `super`
  40. var mixinEvents = this.getMixin(Mixins.InfiniteScrolling).events();
  41. return mixinEvents.concat([{
  42. 'click .js-toogle-sidebar': this.toogle
  43. }]);
  44. }
  45. }).register('boardSidebar');