debian-mirror-gitlab/app/assets/javascripts/notes/discussion_filters.js

35 lines
908 B
JavaScript
Raw Normal View History

2018-12-13 13:39:08 +05:30
import Vue from 'vue';
import DiscussionFilter from './components/discussion_filter.vue';
2021-03-08 18:12:59 +05:30
export default (store) => {
2018-12-13 13:39:08 +05:30
const discussionFilterEl = document.getElementById('js-vue-discussion-filter');
if (discussionFilterEl) {
const { defaultFilter, notesFilters } = discussionFilterEl.dataset;
const filterValues = notesFilters ? JSON.parse(notesFilters) : {};
2021-03-08 18:12:59 +05:30
const filters = Object.keys(filterValues).map((entry) => ({
2018-12-13 13:39:08 +05:30
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,
2022-04-04 11:22:00 +05:30
name: 'DiscussionFilterRoot',
2018-12-13 13:39:08 +05:30
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;
};