Skip to content
Snippets Groups Projects

Move search bar to top nav to test usage changes

Merged Tomas Bulva requested to merge 480341-move-search-bar-to-top-nav-to-test-usage-changes into master
1 unresolved thread
Compare and Show latest version
1 file
+ 19
3
Compare changes
  • Side-by-side
  • Inline
@@ -3,6 +3,11 @@ import { GlModalDirective, GlTooltipDirective, GlIcon, GlButton } from '@gitlab/
@@ -3,6 +3,11 @@ import { GlModalDirective, GlTooltipDirective, GlIcon, GlButton } from '@gitlab/
import { __, s__, sprintf } from '~/locale';
import { __, s__, sprintf } from '~/locale';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { InternalEvents } from '~/tracking';
import { InternalEvents } from '~/tracking';
 
import {
 
isNarrowScreen,
 
isNarrowScreenAddListener,
 
isNarrowScreenRemoveListener,
 
} from '~/lib/utils/css_utils';
import { SEARCH_MODAL_ID } from '../constants';
import { SEARCH_MODAL_ID } from '../constants';
import SearchModal from './global_search.vue';
import SearchModal from './global_search.vue';
@@ -31,8 +36,16 @@ export default {
@@ -31,8 +36,16 @@ export default {
data() {
data() {
return {
return {
searchTooltip: this.$options.i18n.searchKbdHelp,
searchTooltip: this.$options.i18n.searchKbdHelp,
 
isNarrowScreen: false,
};
};
},
},
 
mounted() {
 
this.isNarrowScreen = isNarrowScreen(this.$refs.buttonRoot);
 
isNarrowScreenAddListener(this.$refs.buttonRoot, this.handleNarrowScreenChange);
 
},
 
beforeDestroy() {
 
isNarrowScreenRemoveListener(this.$refs.buttonRoot, this.handleNarrowScreenChange);
 
},
methods: {
methods: {
handleNarrowScreenChange({ matches }) {
handleNarrowScreenChange({ matches }) {
this.isNarrowScreen = matches;
this.isNarrowScreen = matches;
@@ -51,18 +64,21 @@ export default {
@@ -51,18 +64,21 @@ export default {
<div
<div
v-if="glFeatures.searchButtonTopRight"
v-if="glFeatures.searchButtonTopRight"
ref="buttonRoot"
ref="buttonRoot"
class="gl-border gl-w-[300px] gl-rounded-base gl-border-gray-400"
:class="{ 'gl-border gl-w-[300px] gl-rounded-base gl-border-gray-400': !isNarrowScreen }"
>
>
<gl-button
<gl-button
id="super-sidebar-search"
id="super-sidebar-search"
v-gl-tooltip.bottom.html="searchTooltip"
v-gl-tooltip.bottom.html="searchTooltip"
v-gl-modal="$options.SEARCH_MODAL_ID"
v-gl-modal="$options.SEARCH_MODAL_ID"
class="user-bar-button gl-w-[300px] !gl-justify-start"
:class="{
 
'user-bar-button gl-w-[300px] !gl-justify-start': !isNarrowScreen,
 
'border-0 shadow-none bg-transparent': isNarrowScreen,
 
}"
data-testid="super-sidebar-search-button"
data-testid="super-sidebar-search-button"
@click="trackEvent('click_search_button_to_activate_command_palette', { label: 'top_right' })"
@click="trackEvent('click_search_button_to_activate_command_palette', { label: 'top_right' })"
>
>
<gl-icon name="search" />
<gl-icon name="search" />
<span>{{ $options.i18n.searchBtnText }}</span>
<span v-if="!isNarrowScreen">{{ $options.i18n.searchBtnText }}</span>
</gl-button>
</gl-button>
<search-modal @shown="hideSearchTooltip" @hidden="showSearchTooltip" />
<search-modal @shown="hideSearchTooltip" @hidden="showSearchTooltip" />
</div>
</div>
Loading