2018-12-13 13:39:08 +05:30
|
|
|
import Vue from 'vue';
|
|
|
|
import DiscussionFilter from './components/discussion_filter.vue';
|
|
|
|
|
|
|
|
export default store => {
|
|
|
|
const discussionFilterEl = document.getElementById('js-vue-discussion-filter');
|
|
|
|
|
|
|
|
if (discussionFilterEl) {
|
|
|
|
const { defaultFilter, notesFilters } = discussionFilterEl.dataset;
|
|
|
|
const filterValues = notesFilters ? JSON.parse(notesFilters) : {};
|
|
|
|
const filters = Object.keys(filterValues).map(entry => ({
|
|
|
|
title: entry,
|
|
|
|
value: filterValues[entry],
|
|
|
|
}));
|
2019-07-07 11:18:12 +05:30
|
|
|
const props = { filters };
|
|
|
|
|
|
|
|
if (defaultFilter) {
|
|
|
|
props.selectedValue = parseInt(defaultFilter, 10);
|
|
|
|
}
|
2018-12-13 13:39:08 +05:30
|
|
|
|
|
|
|
return new Vue({
|
|
|
|
el: discussionFilterEl,
|
|
|
|
name: 'DiscussionFilter',
|
|
|
|
components: {
|
|
|
|
DiscussionFilter,
|
|
|
|
},
|
|
|
|
store,
|
|
|
|
render(createElement) {
|
2019-07-07 11:18:12 +05:30
|
|
|
return createElement('discussion-filter', { props });
|
2018-12-13 13:39:08 +05:30
|
|
|
},
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
};
|