Skip to content
Snippets Groups Projects

Search UI add issue scope results filtering by state

All threads resolved!
Compare and Show latest version
12 files
+ 127
97
Compare changes
  • Side-by-side
  • Inline
Files
12
@@ -3,6 +3,8 @@ import { GlDropdown, GlDropdownItem, GlDropdownDivider } from '@gitlab/ui';
import { FILTER_STATES, FILTER_HEADER, FILTER_TEXT } from '../constants';
import { setUrlParams, visitUrl } from '~/lib/utils/url_utility';
const FILTERS_ARRAY = Object.values(FILTER_STATES);
export default {
name: 'StateFilter',
components: {
@@ -19,7 +21,7 @@ export default {
type: String,
required: false,
default: FILTER_STATES.ANY.value,
validator: v => Object.values(FILTER_STATES).some(({ value }) => value === v),
validator: v => FILTERS_ARRAY.some(({ value }) => value === v),
},
},
computed: {
@@ -34,7 +36,11 @@ export default {
},
selectedFilter: {
get() {
return this.state;
if (FILTERS_ARRAY.some(({ value }) => value === this.state)) {
return this.state;
}
return FILTER_STATES.ANY.value;
},
set(state) {
visitUrl(setUrlParams({ state }));
@@ -42,6 +48,12 @@ export default {
},
},
methods: {
dropDownItemClass(filter) {
return {
'gl-border-b-solid gl-border-b-gray-100 gl-border-b-1 gl-pb-2! gl-mb-2':
filter === FILTER_STATES.ANY,
};
},
isFilterSelected(filter) {
return filter === this.selectedFilter;
},
@@ -50,9 +62,8 @@ export default {
},
},
filterStates: FILTER_STATES,
filterText: FILTER_TEXT,
filterHeader: FILTER_HEADER,
filtersArray: Object.values(FILTER_STATES),
filtersArray: FILTERS_ARRAY,
};
</script>
@@ -71,10 +82,7 @@ export default {
:key="filter.value"
:is-check-item="true"
:is-checked="isFilterSelected(filter.value)"
:class="{
'gl-border-b-solid gl-border-b-gray-100 gl-border-b-1 gl-pb-2! gl-mb-2':
filter === $options.filterStates.ANY,
}"
:class="dropDownItemClass(filter)"
@click="handleFilterChange(filter.value)"
>
{{ filter.label }}
Loading