Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/vue_shared/components/toggle_labels.vue')
-rw-r--r--app/assets/javascripts/vue_shared/components/toggle_labels.vue62
1 files changed, 62 insertions, 0 deletions
diff --git a/app/assets/javascripts/vue_shared/components/toggle_labels.vue b/app/assets/javascripts/vue_shared/components/toggle_labels.vue
new file mode 100644
index 00000000000..05c837e32f0
--- /dev/null
+++ b/app/assets/javascripts/vue_shared/components/toggle_labels.vue
@@ -0,0 +1,62 @@
+<script>
+import { GlToggle } from '@gitlab/ui';
+import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';
+import isShowingLabelsQuery from '~/graphql_shared/client/is_showing_labels.query.graphql';
+import setIsShowingLabelsMutation from '~/graphql_shared/client/set_is_showing_labels.mutation.graphql';
+
+export default {
+ components: {
+ GlToggle,
+ LocalStorageSync,
+ },
+ data() {
+ return {
+ isShowingLabels: null,
+ };
+ },
+ apollo: {
+ isShowingLabels: {
+ query: isShowingLabelsQuery,
+ update: (data) => data.isShowingLabels,
+ },
+ },
+ computed: {
+ trackProperty() {
+ return this.isShowingLabels ? 'on' : 'off';
+ },
+ },
+ methods: {
+ setShowLabels(val) {
+ this.$apollo.mutate({
+ mutation: setIsShowingLabelsMutation,
+ variables: {
+ isShowingLabels: val,
+ },
+ });
+ },
+ },
+};
+</script>
+
+<template>
+ <div class="board-labels-toggle-wrapper gl-display-flex gl-align-items-center gl-ml-3 gl-h-7">
+ <local-storage-sync
+ :value="isShowingLabels"
+ storage-key="gl-show-board-labels"
+ @input="setShowLabels"
+ />
+ <gl-toggle
+ :value="isShowingLabels"
+ :label="__('Show labels')"
+ :data-track-property="trackProperty"
+ data-track-action="toggle"
+ data-track-label="show_labels"
+ label-position="left"
+ aria-describedby="board-labels-toggle-text"
+ data-testid="show-labels-toggle"
+ data-qa-selector="show_labels_toggle"
+ class="gl-flex-direction-row"
+ @change="setShowLabels"
+ />
+ </div>
+</template>