diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-09 12:08:55 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-09 12:08:55 +0300 |
commit | 5fe2d74e00bacd9a78d43801a9ed19325597f7ae (patch) | |
tree | f9e9895c63f1bba4b1064079f998f9be6919aabf /app/assets/javascripts/vue_shared/components/web_ide_link.vue | |
parent | eba9cac2e8181aaf1a08e1730f440155c765741e (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/vue_shared/components/web_ide_link.vue')
-rw-r--r-- | app/assets/javascripts/vue_shared/components/web_ide_link.vue | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/app/assets/javascripts/vue_shared/components/web_ide_link.vue b/app/assets/javascripts/vue_shared/components/web_ide_link.vue index 59385774212..3934efbc811 100644 --- a/app/assets/javascripts/vue_shared/components/web_ide_link.vue +++ b/app/assets/javascripts/vue_shared/components/web_ide_link.vue @@ -7,10 +7,10 @@ import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue'; import ConfirmForkModal from '~/vue_shared/components/confirm_fork_modal.vue'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; -const KEY_EDIT = 'edit'; -const KEY_WEB_IDE = 'webide'; -const KEY_GITPOD = 'gitpod'; -const KEY_PIPELINE_EDITOR = 'pipeline_editor'; +export const KEY_EDIT = 'edit'; +export const KEY_WEB_IDE = 'webide'; +export const KEY_GITPOD = 'gitpod'; +export const KEY_PIPELINE_EDITOR = 'pipeline_editor'; export const i18n = { modal: { @@ -27,6 +27,9 @@ export const i18n = { ), }; +export const PREFERRED_EDITOR_KEY = 'gl-web-ide-button-selected'; +export const PREFERRED_EDITOR_RESET_KEY = 'gl-web-ide-button-selected-reset'; + export default { components: { ActionsButton, @@ -305,6 +308,9 @@ export default { return this.glFeatures.vscodeWebIde && !this.showEditButton; }, }, + mounted() { + this.resetPreferredEditor(); + }, methods: { select(key) { this.selection = key; @@ -312,8 +318,23 @@ export default { showModal(dataKey) { this[dataKey] = true; }, + resetPreferredEditor() { + if (!this.glFeatures.vscodeWebIde || this.showEditButton) { + return; + } + + if (localStorage.getItem(PREFERRED_EDITOR_RESET_KEY) === 'true') { + return; + } + + localStorage.setItem(PREFERRED_EDITOR_KEY, KEY_WEB_IDE); + localStorage.setItem(PREFERRED_EDITOR_RESET_KEY, true); + + this.select(KEY_WEB_IDE); + }, }, webIdeButtonId: 'web-ide-link', + PREFERRED_EDITOR_KEY, }; </script> @@ -332,7 +353,7 @@ export default { @actionClicked="dismiss" /> <local-storage-sync - storage-key="gl-web-ide-button-selected" + :storage-key="$options.PREFERRED_EDITOR_KEY" :value="selection" as-string @input="select" |