Clicking on an index nav item should always refresh the discussion list

This commit is contained in:
Toby Zerner 2015-05-18 15:27:39 +09:30
parent bfef59c172
commit 8b7e7c0afd
4 changed files with 18 additions and 4 deletions

View File

@ -0,0 +1,10 @@
import NavItem from 'flarum/components/nav-item'
export default class IndexNavItem extends NavItem {
static props(props) {
props.onclick = props.onclick || function() {
app.cache.discussionList = null;
m.redraw.strategy('none');
};
}
}

View File

@ -12,7 +12,7 @@ import DiscussionPage from 'flarum/components/discussion-page';
import SelectInput from 'flarum/components/select-input';
import ActionButton from 'flarum/components/action-button';
import NavItem from 'flarum/components/nav-item';
import IndexNavItem from 'flarum/components/index-nav-item';
import LoadingIndicator from 'flarum/components/loading-indicator';
import DropdownSelect from 'flarum/components/dropdown-select';
@ -204,7 +204,7 @@ export default class IndexPage extends Component {
var params = {sort: m.route.param('sort')};
items.add('allDiscussions',
NavItem.component({
IndexNavItem.component({
href: app.route('index', params),
label: 'All Discussions',
icon: 'comments-o'

View File

@ -32,7 +32,7 @@ export default class Component {
static component(props) {
props = props || {};
if (this.props) {
props = this.props(props);
this.props(props);
}
var view = function(component) {
component.props = props;

View File

@ -4,7 +4,11 @@ import icon from 'flarum/helpers/icon'
export default class NavItem extends Component {
view() {
var active = this.constructor.active(this.props);
return m('li'+(active ? '.active' : ''), m('a', {href: this.props.href, config: m.route}, [
return m('li'+(active ? '.active' : ''), m('a', {
href: this.props.href,
onclick: this.props.onclick,
config: m.route
}, [
icon(this.props.icon+' icon'),
this.props.label, ' ',
this.props.badge ? m('span.count', this.props.badge) : ''