2021-07-14 03:08:27 +00:00
|
|
|
import Vue from 'vue';
|
2021-10-20 09:12:43 +00:00
|
|
|
import IssueBoardFilteredSearch from 'ee_else_ce/boards/components/issue_board_filtered_search.vue';
|
2021-07-14 03:08:27 +00:00
|
|
|
import store from '~/boards/stores';
|
|
|
|
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
|
|
|
|
import { queryToObject } from '~/lib/utils/url_utility';
|
|
|
|
|
2022-02-18 06:14:34 +00:00
|
|
|
export default (
|
|
|
|
apolloProvider,
|
|
|
|
isSignedIn,
|
|
|
|
releasesFetchPath,
|
|
|
|
epicFeatureAvailable,
|
|
|
|
iterationFeatureAvailable,
|
|
|
|
) => {
|
2021-07-14 03:08:27 +00:00
|
|
|
const el = document.getElementById('js-issue-board-filtered-search');
|
|
|
|
const rawFilterParams = queryToObject(window.location.search, { gatherArrays: true });
|
|
|
|
|
|
|
|
const initialFilterParams = {
|
|
|
|
...convertObjectPropsToCamelCase(rawFilterParams, {}),
|
|
|
|
};
|
|
|
|
|
|
|
|
if (!el) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
return new Vue({
|
|
|
|
el,
|
2022-02-16 12:13:53 +00:00
|
|
|
name: 'BoardFilteredSearchRoot',
|
2021-07-14 03:08:27 +00:00
|
|
|
provide: {
|
|
|
|
initialFilterParams,
|
2021-11-16 09:13:21 +00:00
|
|
|
isSignedIn,
|
2021-11-25 06:12:46 +00:00
|
|
|
releasesFetchPath,
|
2022-02-18 06:14:34 +00:00
|
|
|
epicFeatureAvailable,
|
|
|
|
iterationFeatureAvailable,
|
2021-07-14 03:08:27 +00:00
|
|
|
},
|
|
|
|
store, // TODO: https://gitlab.com/gitlab-org/gitlab/-/issues/324094
|
|
|
|
apolloProvider,
|
|
|
|
render: (createElement) =>
|
|
|
|
createElement(IssueBoardFilteredSearch, {
|
|
|
|
props: { fullPath: store.state?.fullPath || '', boardType: store.state?.boardType || '' },
|
|
|
|
}),
|
|
|
|
});
|
|
|
|
};
|