diff --git a/.eslint_todo/vue-require-explicit-emits.mjs b/.eslint_todo/vue-require-explicit-emits.mjs index 0caefe4d786dbcb4d31be2faa7b3a43515f09a6a..a271ebd688d9a54d10fc687cf98870942259797a 100644 --- a/.eslint_todo/vue-require-explicit-emits.mjs +++ b/.eslint_todo/vue-require-explicit-emits.mjs @@ -144,7 +144,6 @@ export default { 'app/assets/javascripts/contributors/components/contributor_area_chart.vue', 'app/assets/javascripts/custom_emoji/components/form.vue', 'app/assets/javascripts/custom_emoji/components/list.vue', - 'app/assets/javascripts/dap_welcome_modal/dap_welcome_modal.vue', 'app/assets/javascripts/deploy_keys/components/action_btn.vue', 'app/assets/javascripts/deploy_keys/components/confirm_modal.vue', 'app/assets/javascripts/design_management/components/delete_button.vue', diff --git a/.eslint_todo/vue-require-name-property.mjs b/.eslint_todo/vue-require-name-property.mjs index a2c42b444b14ba9f5fda106cdbbd7b38fa5577a0..ea735e87929d71b9cf20b705bf6a9d571c1a5e21 100644 --- a/.eslint_todo/vue-require-name-property.mjs +++ b/.eslint_todo/vue-require-name-property.mjs @@ -306,11 +306,7 @@ export default { 'app/assets/javascripts/custom_emoji/components/list.vue', 'app/assets/javascripts/custom_emoji/pages/index.vue', 'app/assets/javascripts/custom_emoji/pages/new.vue', - 'app/assets/javascripts/dap_welcome_modal/explainer_ai.vue', - 'app/assets/javascripts/dap_welcome_modal/explainer_feedback.vue', - 'app/assets/javascripts/dap_welcome_modal/explainer_panels.vue', - 'app/assets/javascripts/dap_welcome_modal/explainer_search.vue', - 'app/assets/javascripts/dap_welcome_modal/explainer_ui.vue', + 'app/assets/javascripts/deploy_freeze/components/deploy_freeze_modal.vue', 'app/assets/javascripts/deploy_freeze/components/deploy_freeze_settings.vue', 'app/assets/javascripts/deploy_freeze/components/deploy_freeze_table.vue', diff --git a/app/assets/javascripts/dap_welcome_modal/dap_welcome_modal.vue b/app/assets/javascripts/dap_welcome_modal/dap_welcome_modal.vue deleted file mode 100644 index f901d5b5a4b291607c19d047f2db937a03bad7c2..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/dap_welcome_modal/dap_welcome_modal.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - diff --git a/app/assets/javascripts/dap_welcome_modal/explainer_ai.vue b/app/assets/javascripts/dap_welcome_modal/explainer_ai.vue deleted file mode 100644 index 6e9e6b2614c0854167df7da409c029044d933bad..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/dap_welcome_modal/explainer_ai.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/app/assets/javascripts/dap_welcome_modal/explainer_feedback.vue b/app/assets/javascripts/dap_welcome_modal/explainer_feedback.vue deleted file mode 100644 index d7c18f66129aae4df5c1c476856a81eddabce3a4..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/dap_welcome_modal/explainer_feedback.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/app/assets/javascripts/dap_welcome_modal/explainer_panels.vue b/app/assets/javascripts/dap_welcome_modal/explainer_panels.vue deleted file mode 100644 index 21160d7097f890ca346d9fabf0353e85c4d226cd..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/dap_welcome_modal/explainer_panels.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/app/assets/javascripts/dap_welcome_modal/explainer_search.vue b/app/assets/javascripts/dap_welcome_modal/explainer_search.vue deleted file mode 100644 index 4e00af7a725489b249d55d5999a92618357f3933..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/dap_welcome_modal/explainer_search.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - diff --git a/app/assets/javascripts/dap_welcome_modal/explainer_ui.vue b/app/assets/javascripts/dap_welcome_modal/explainer_ui.vue deleted file mode 100644 index 3bd4d98acf8b737d6259dcb27517d4769e6b8ad9..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/dap_welcome_modal/explainer_ui.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - diff --git a/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_ai_illustration.vue b/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_ai_illustration.vue deleted file mode 100644 index 07926250cb9c368e20cf7b787daaea7a4cc15899..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_ai_illustration.vue +++ /dev/null @@ -1,139 +0,0 @@ - diff --git a/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_feedback_illustration.vue b/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_feedback_illustration.vue deleted file mode 100644 index c5646caaebe0d06be58d05a18731d2727aa5e75e..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_feedback_illustration.vue +++ /dev/null @@ -1,125 +0,0 @@ - diff --git a/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_panels_illustration.vue b/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_panels_illustration.vue deleted file mode 100644 index f591a7719c4df1f476e4e0e1ba9d65258bfd12fb..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_panels_illustration.vue +++ /dev/null @@ -1,213 +0,0 @@ - diff --git a/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_search_illustration.vue b/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_search_illustration.vue deleted file mode 100644 index 0c526cd6e49ce5c17848a43feb00d44bacf6d86c..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_search_illustration.vue +++ /dev/null @@ -1,129 +0,0 @@ - diff --git a/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_ui_illustration.vue b/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_ui_illustration.vue deleted file mode 100644 index 8468cbf76cac63f9bb2e5b2f2d7f76e825e88993..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/dap_welcome_modal/illustrations/explainer_ui_illustration.vue +++ /dev/null @@ -1,147 +0,0 @@ - diff --git a/app/assets/javascripts/entrypoints/super_sidebar.js b/app/assets/javascripts/entrypoints/super_sidebar.js index 364fd283f746e8cf7597c4bd1305a1cd197e6520..6fbb77673cb824bf0bce48bd26adb144f2e59124 100644 --- a/app/assets/javascripts/entrypoints/super_sidebar.js +++ b/app/assets/javascripts/entrypoints/super_sidebar.js @@ -1,6 +1,5 @@ import '~/webpack'; import '~/commons'; -import { parseBoolean } from '~/lib/utils/common_utils'; import { initSuperSidebar, initSuperSidebarToggle, @@ -10,15 +9,6 @@ import { } from '~/super_sidebar/super_sidebar_bundle'; const superSidebarData = getSuperSidebarData(); -const projectStudioEnabled = parseBoolean(document.body.dataset.projectStudioEnabled); - -// The `showDapWelcomeModal` determines whether to show DAP intro banner to new -// users or not. We only set it if project studio is both available and enabled -// for current user and banner was never shown to this user (i.e. missing key) -// Once user dismisses this modal, key is set to `false` and banner is not shown in future. -if (projectStudioEnabled && localStorage.getItem('showDapWelcomeModal') === null) { - localStorage.setItem('showDapWelcomeModal', 'true'); -} initSuperSidebar(superSidebarData); initSuperSidebarToggle(); diff --git a/app/assets/javascripts/super_sidebar/components/user_menu.vue b/app/assets/javascripts/super_sidebar/components/user_menu.vue index b53f29c831334ab399b6f860d2661884ded0dc70..60336fecd78067db7833a29c708c2cc6ff97080b 100644 --- a/app/assets/javascripts/super_sidebar/components/user_menu.vue +++ b/app/assets/javascripts/super_sidebar/components/user_menu.vue @@ -12,7 +12,6 @@ import { import UserMenuUpgradeSubscription from 'ee_component/super_sidebar/components/user_menu_upgrade_subscription.vue'; import SafeHtml from '~/vue_shared/directives/safe_html'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; -import DapWelcomeModal from '~/dap_welcome_modal/dap_welcome_modal.vue'; import { s__, __, sprintf } from '~/locale'; import Tracking from '~/tracking'; import { SET_STATUS_MODAL_ID } from '~/set_status_modal/constants'; @@ -54,7 +53,6 @@ export default { UserCounts, UserMenuProfileItem, UserMenuUpgradeSubscription, - DapWelcomeModal, SetStatusModal: () => import( /* webpackChunkName: 'statusModalBundle' */ '~/set_status_modal/set_status_modal_wrapper.vue' @@ -76,7 +74,6 @@ export default { data() { return { setStatusModalReady: false, - showDapWelcomeModal: false, updatedAvatarUrl: null, }; }, @@ -241,7 +238,6 @@ export default { }, mounted() { document.addEventListener('userAvatar:update', this.updateAvatar); - this.showDapWelcomeModal = localStorage.getItem('showDapWelcomeModal') === 'true'; }, unmounted() { document.removeEventListener('userAvatar:update', this.updateAvatar); @@ -257,9 +253,6 @@ export default { this.setStatusModalReady = true; this.$refs.userDropdown.close(); }, - closeDapWelcomeModal() { - localStorage.setItem('showDapWelcomeModal', 'false'); - }, initBuyCIMinsCallout() { const el = this.$refs?.buyPipelineMinutesNotificationCallout?.$el; el?.addEventListener('click', this.onBuyCIMinutesItemClick); @@ -500,6 +493,5 @@ export default { default-emoji="speech_balloon" v-bind="statusModalData" /> - diff --git a/app/assets/stylesheets/framework.scss b/app/assets/stylesheets/framework.scss index 579105d08198a6a392e23816551b31e25128a48c..d22f75c4a9dd4348a77513797cdb0ab72e494823 100644 --- a/app/assets/stylesheets/framework.scss +++ b/app/assets/stylesheets/framework.scss @@ -11,7 +11,6 @@ // Project Studio @import 'framework/application-chrome'; @import 'framework/ds_experiments'; -@import 'framework/dap_welcome_modal'; @import 'framework/animations'; @import 'framework/vue_transitions'; diff --git a/app/assets/stylesheets/framework/dap_welcome_modal.scss b/app/assets/stylesheets/framework/dap_welcome_modal.scss deleted file mode 100644 index 7d3a295f9ff1476cd6872a04f524f64db7a3eb8a..0000000000000000000000000000000000000000 --- a/app/assets/stylesheets/framework/dap_welcome_modal.scss +++ /dev/null @@ -1,708 +0,0 @@ -// these custom properties were created this way to make them animatable -@property --_flashlight-start { - syntax: ''; - inherits: false; - initial-value: 0deg; -} - -@property --_flashlight-step-1 { - syntax: ''; - inherits: false; - initial-value: 0deg; -} - -@property --_flashlight-step-2 { - syntax: ''; - inherits: false; - initial-value: 0deg; -} - -@property --_flashlight-step-3 { - syntax: ''; - inherits: false; - initial-value: 0deg; -} - -@property --_flashlight-step-4 { - syntax: ''; - inherits: false; - initial-value: 0deg; -} - -@property --_flashlight-end { - syntax: ''; - inherits: false; - initial-value: 0deg; -} - -@property --_mask-start { - syntax: ''; - inherits: false; - initial-value: 0%; -} - -@property --_svg-color { - syntax: ''; - inherits: true; - initial-value: var(--_svg-color-old); -} - -// theme and mode adjustments -#dap_welcome_modal { - --gl-button-confirm-primary-background-color-default: var(--gl-color-neutral-950); - --gl-button-confirm-primary-border-color-default: var(--gl-color-neutral-950); - --_svg-color-old: color-mix(in srgb, var(--gl-color-neutral-950), var(--theme-color) 20%); - --_svg-color-new: color-mix(in srgb, var(--gl-color-neutral-950), var(--theme-color) 100%); - - background-color: rgba(from var(--gl-background-color-overlay) r g b / 90%); - - .modal-content { - background: rgba(from var(--gl-color-neutral-0) r g b / 90%); - } -} - -.gl-dark #dap_welcome_modal { - --gl-button-confirm-primary-background-color-default: var(--gl-color-neutral-10); - --gl-button-confirm-primary-border-color-default: var(--gl-color-neutral-10); - --_svg-color-old: color-mix(in srgb, var(--gl-color-neutral-10), var(--theme-color) 20%); - --_svg-color-new: color-mix(in srgb, var(--gl-color-neutral-10), var(--theme-color) 60%); - - background-color: rgba(from var(--gl-background-color-overlay) r g b / 70%); - - .modal-content { - background: rgba(from var(--gl-color-neutral-950) r g b / 80%); - } -} - - -// modal styles -#dap_welcome_modal { - --_flashlight-main-color: hsla(from var(--theme-color) h calc(s + 20) calc(l + 35) / 30%); - --_flashlight-complimentary-color: hsla( - from var(--theme-color) calc(h + 30) calc(s + 20) calc(l + 35) / 15% - ); - --_svg-color: var(--_svg-color-old); - backdrop-filter: blur(0.25rem); - - .modal-body { - text-align: center; - } - - .modal-footer > div:has(.gl-button:only-child) { - justify-content: center !important; - } - - - // spotlight effect - &::before { - content: ''; - position: absolute; - width: 100%; - height: 100%; - mask: radial-gradient(circle at 50% 100%, black var(--_mask-start), transparent); - background-image: conic-gradient( - from -90deg at 50% 120%, - transparent var(--_flashlight-start), - var(--_flashlight-complimentary-color) var(--_flashlight-step-1), - var(--_flashlight-main-color) var(--_flashlight-step-2), - var(--_flashlight-main-color) var(--_flashlight-step-3), - var(--_flashlight-complimentary-color) var(--_flashlight-step-4), - transparent var(--_flashlight-end) - ); - animation: - dap-welcome-modal-spotlight 1s - linear( - 0 0%, - 0 1.8%, - 0.01 3.6%, - 0.03 6.35%, - 0.07 9.1%, - 0.13 11.4%, - 0.19 13.4%, - 0.27 15%, - 0.34 16.1%, - 0.54 18.35%, - 0.66 20.6%, - 0.72 22.4%, - 0.77 24.6%, - 0.81 27.3%, - 0.85 30.4%, - 0.88 35.1%, - 0.92 40.6%, - 0.94 47.2%, - 0.96 55%, - 0.98 64%, - 0.99 74.4%, - 1 86.4%, - 1 100% - ) - both, - dap-welcome-modal-spotlight-breath 10s 1s ease-in-out infinite; - } -} - -@keyframes dap-welcome-modal-spotlight { - from { - --_flashlight-start: 90deg; - --_flashlight-step-1: 90deg; - --_flashlight-step-2: 90deg; - --_flashlight-step-3: 90deg; - --_flashlight-step-4: 90deg; - --_flashlight-end: 90deg; - --_mask-start: 0%; - } - - to { - --_flashlight-start: 40deg; - --_flashlight-step-1: 60deg; - --_flashlight-step-2: 70deg; - --_flashlight-step-3: 110deg; - --_flashlight-step-4: 120deg; - --_flashlight-end: 140deg; - --_mask-start: 50%; - } -} - -@keyframes dap-welcome-modal-spotlight-breath { - 0%, - 100% { - --_flashlight-start: 40deg; - --_flashlight-step-1: 60deg; - --_flashlight-step-2: 70deg; - --_flashlight-step-3: 110deg; - --_flashlight-step-4: 120deg; - --_flashlight-end: 140deg; - } - - 50% { - --_flashlight-start: 20deg; - --_flashlight-step-1: 45deg; - --_flashlight-step-2: 65deg; - --_flashlight-step-3: 115deg; - --_flashlight-step-4: 135deg; - --_flashlight-end: 160deg; - } -} - -#dap_welcome_modal .modal-dialog { - overflow: clip; -} - -#dap_welcome_modal .slides { - display: flex; - width: 100%; - clip-path: inset(0); - - .slide:not(.active) { - opacity: 0; - } - - .slide { - width: 100%; - flex-shrink: 0; - @apply gl-pt-2; - transition: all 0.2s $gl-easing-out-cubic; - } - - .slide:nth-child(1) { - margin-left: calc(var(--_currentStep) * -100%); - } -} - -#dap_welcome_modal .particles { - position: fixed; - width: 100vw; - height: 100vh; - padding: 0 10vw; - top: 0; - left: 0; - z-index: -2; - display: flex; - justify-content: space-around; - mask: radial-gradient(circle at 50% 100%, black 50%, transparent 75%); - overflow: hidden; - - .particle { - align-self: flex-end; - aspect-ratio: 1; - background: hsla(from var(--theme-color) calc(h + 30) calc(s + 20) calc(l + 20) / 25%); - border-radius: 50%; - translate: 0 100%; - animation-name: dap-welcome-modal-particle-move, dap-welcome-modal-particle-shine; - animation-timing-function: linear; - animation-iteration-count: infinite; - - width: calc(0.5rem * var(--size)); - animation-delay: calc(10s * var(--delay) - 5s); - animation-duration: calc(20s * var(--duration) + 5s), 5s; - filter: blur(calc(0.1rem * var(--blur))); - } -} - -@keyframes dap-welcome-modal-particle-move { - from { - translate: 0 100%; - } - - to { - translate: 0 calc(-100vh - 100%); - } -} - -@keyframes dap-welcome-modal-particle-shine { - from { - scale: 1; - } - - to { - scale: 0.8; - } -} - -#dap_welcome_modal .bullets { - display: flex; - gap: var(--gl-spacing-scale-3); - - .item { - border: 0; - background-color: var(--gl-text-color-subtle); - width: 0.5rem; - height: 0.5rem; - padding: 0; - border-radius: 50%; - transition: background-color 0.2s cubic-bezier(0.22, 0.61, 0.36, 1); - - &.active { - background-color: var(--gl-text-color-default); - } - } -} - - -// ai panel explainer illustration -#dap_welcome_modal .active .explainer-ai { - --_animation: 3s cubic-bezier(0.22, 0.61, 0.36, 1) both infinite; -} - -#dap_welcome_modal .explainer-ai { - display: block; - margin: auto; - max-width: 100%; - --_svg-color: var(--_svg-color-new); - - .main-panel { - animation: dap-welcome-modal-explainer-ai-main var(--_animation); - } - - .side-panel { - animation: dap-welcome-modal-explainer-ai-side var(--_animation); - } - - .ui { - opacity: 0.4; - } -} - -@keyframes dap-welcome-modal-explainer-ai-main { - 0%, - 50%, - 100% { - width: 259px; - } - - 55%, - 95% { - width: 127px; - } -} - -@keyframes dap-welcome-modal-explainer-ai-side { - 0%, - 50%, - 100% { - opacity: 0; - translate: 127px 0; - width: 0; - } - - 55%, - 95% { - opacity: 1; - translate: 0 0; - width: 127px; - } -} - - -// panels explainer illustration -#dap_welcome_modal .active .explainer-panels { - --_animation: 5s cubic-bezier(0.22, 0.61, 0.36, 1) both infinite; - - .main-panel-list rect:nth-child(1) { - animation-name: dap-welcome-modal-explainer-panels-list, dap-welcome-modal-explainer-panels-list-items; - animation-delay: 0s, 0s; - } - - .main-panel-list rect:nth-child(2) { - animation-name: dap-welcome-modal-explainer-panels-list, dap-welcome-modal-explainer-panels-list-items; - animation-delay: 0s, 1s; - } - - .main-panel-list rect:nth-child(3) { - animation-name: dap-welcome-modal-explainer-panels-list, dap-welcome-modal-explainer-panels-list-active; - } -} - -#dap_welcome_modal .explainer-panels { - display: block; - margin: auto; - max-width: 100%; - --_svg-color: var(--_svg-color-new); - - .main-panel { - animation: dap-welcome-modal-explainer-panels-main var(--_animation); - } - - .main-panel-list rect { - width: 112px; - width: 244px; - opacity: 0.1; - animation: dap-welcome-modal-explainer-panels-list var(--_animation); - } - - .side-panel { - animation: dap-welcome-modal-explainer-panels-side var(--_animation); - } - - .ui { - opacity: 0.4; - } -} - -@keyframes dap-welcome-modal-explainer-panels-main { - 0%, - 50%, - 100% { - width: 259px; - } - - 55%, - 95% { - width: 127px; - } -} - -@keyframes dap-welcome-modal-explainer-panels-side { - 0%, - 50%, - 100% { - opacity: 0; - translate: 127px 0; - width: 0; - } - - 55%, - 95% { - opacity: 1; - translate: 0 0; - width: 127px; - } -} - -@keyframes dap-welcome-modal-explainer-panels-list { - 0%, - 50%, - 100% { - width: 244px; - } - - 55%, - 95% { - width: 112px; - } -} - -@keyframes dap-welcome-modal-explainer-panels-list-items { - 0%, - 25%, - 100% { - opacity: 0.1; - } - - 5%, - 20% { - opacity: 0.5; - } -} - -@keyframes dap-welcome-modal-explainer-panels-list-active { - 0%, - 45%, - 100% { - opacity: 0.1; - } - - 50%, - 95% { - opacity: 0.5; - } - - 0%, - 46%, - 50% { - width: 244px; - translate: 0 0; - } - - 100% { - translate: 0 0; - } - - 48% { - width: 240px; - translate: 2px 0; - } - - 55%, - 95% { - width: 112px; - } -} - - -// search explainer illustration -#dap_welcome_modal .explainer-search { - display: block; - margin: auto; - max-width: 100%; - --_svg-color: var(--_svg-color-new); - - .ui { - opacity: 0.4; - } -} - - -// ui explainer illustration -#dap_welcome_modal .active .explainer-ui { - --_animation: 6s cubic-bezier(0.22, 0.61, 0.36, 1) infinite; -} - -#dap_welcome_modal .explainer-ui { - display: block; - margin: auto; - max-width: 100%; - animation: dap-welcome-modal-explainer-ui-color var(--_animation); - - .window { - animation: dap-welcome-modal-explainer-ui-window var(--_animation); - } - - .search { - animation: dap-welcome-modal-explainer-ui-search var(--_animation); - } - - .searchbar { - animation: dap-welcome-modal-explainer-ui-searchbar var(--_animation); - } - - .user { - animation: dap-welcome-modal-explainer-ui-user var(--_animation); - } - - .user-actions { - animation: dap-welcome-modal-explainer-ui-user-actions var(--_animation); - } - - .main-panel { - animation: dap-welcome-modal-explainer-ui-main-panel var(--_animation); - } - - .sparkles { - animation: dap-welcome-modal-explainer-ui-sparkles var(--_animation); - } - - .ai-panel { - animation: dap-welcome-modal-explainer-ui-ai-panel var(--_animation); - } - - .sidebar { - animation: dap-welcome-modal-explainer-ui-sidebar var(--_animation); - } - - .line { - animation: dap-welcome-modal-explainer-ui-line var(--_animation); - } -} - -@keyframes dap-welcome-modal-explainer-ui-color { - 0%, - 25%, - 100% { - --_svg-color: var(--_svg-color-old); - } - - 30%, - 95% { - --_svg-color: var(--_svg-color-new); - } -} - -@keyframes dap-welcome-modal-explainer-ui-window { - 0%, - 25%, - 100% { - rx: 3.5; - } - - 30%, - 95% { - rx: 11.5; - } -} - -@keyframes dap-welcome-modal-explainer-ui-search { - 0%, - 25%, - 100% { - translate: -88px 30px; - rx: 2; - } - - 30%, - 95% { - translate: 0 0; - rx: 4.5; - } -} - -@keyframes dap-welcome-modal-explainer-ui-searchbar { - 0%, - 25%, - 100% { - width: 63px; - } - - 30%, - 95% { - width: 111px; - } -} - -@keyframes dap-welcome-modal-explainer-ui-user { - 0%, - 25%, - 100% { - translate: -226px 0; - } - - 30%, - 95% { - translate: 0 0; - } -} - -@keyframes dap-welcome-modal-explainer-ui-user-actions { - 0%, - 25%, - 100% { - translate: -212px 16px; - } - - 30%, - 95% { - translate: 0 0; - } -} - -@keyframes dap-welcome-modal-explainer-ui-main-panel { - 0%, - 25%, - 100% { - rx: 2; - width: 224px; - height: 168px; - translate: 0 -24px; - stroke: transparent; - } - - 30%, - 95% { - rx: 7.5; - width: 204px; - height: 140px; - translate: 0 0; - stroke: var(--_svg-color); - } -} - -@keyframes dap-welcome-modal-explainer-ui-sparkles { - 0%, - 25%, - 100% { - opacity: 0; - } - - 30%, - 95% { - opacity: 1; - } -} - -@keyframes dap-welcome-modal-explainer-ui-ai-panel { - 0%, - 25%, - 100% { - translate: 20px 0; - stroke: transparent; - } - - 30%, - 95% { - translate: 0 0; - stroke: var(--_svg-color); - } -} - -@keyframes dap-welcome-modal-explainer-ui-sidebar { - 0%, - 25%, - 100% { - rx: 2; - width: 75px; - height: 168px; - translate: -4px -24px; - stroke: transparent; - } - - 30%, - 95% { - rx: 7.5; - width: 68px; - height: 140px; - translate: 0 0; - stroke: var(--_svg-color); - } -} - -@keyframes dap-welcome-modal-explainer-ui-line { - 0%, - 25%, - 100% { - opacity: 1; - } - - 30%, - 95% { - opacity: 0; - } -} - - -// feedback explainer illustration -#dap_welcome_modal .explainer-feedback { - display: block; - margin: auto; - max-width: 100%; - --_svg-color: var(--_svg-color-new); -} diff --git a/ee/spec/features/ai_sidepanel_spec.rb b/ee/spec/features/ai_sidepanel_spec.rb index f0239e8c57308c560c663685f801655d7343cdce..443626f8ae515e80aae92e3ecb81f4790d36ebf3 100644 --- a/ee/spec/features/ai_sidepanel_spec.rb +++ b/ee/spec/features/ai_sidepanel_spec.rb @@ -42,7 +42,6 @@ it 'does not show AI sidepanel' do visit project_path(project) - dismiss_welcome_banner_if_present(page) expect(page).not_to have_css(ai_sidepanel_selector) end @@ -59,7 +58,6 @@ set_cookie('duo_agentic_mode_on', 'true') visit project_path(project) - dismiss_welcome_banner_if_present(page) expect(page).to have_css(ai_sidepanel_selector) @@ -98,7 +96,6 @@ set_cookie('duo_agentic_mode_on', 'true') visit project_path(project) - dismiss_welcome_banner_if_present(page) within(ai_sidepanel_selector) do find_by_testid(sessions_toggle_selector).click @@ -143,7 +140,6 @@ set_cookie('duo_agentic_mode_on', 'true') visit project_path(project) - dismiss_welcome_banner_if_present(page) end it 'shows empty state when no sessions exist' do @@ -159,7 +155,6 @@ project.project_setting.update!(duo_features_enabled: false) allow(::Gitlab::Llm::TanukiBot).to receive(:chat_disabled_reason).and_return(:project) visit project_path(project) - dismiss_welcome_banner_if_present(page) end it 'prevents access to sessions tab' do diff --git a/ee/spec/features/duo_chat/user_navigates_duo_chat_history_spec.rb b/ee/spec/features/duo_chat/user_navigates_duo_chat_history_spec.rb index d8b0f7bd9c8dfd1d2b81a1f3757f1202ce913723..1742d3d64f67feb3aa9c848d62aa7d20869401e9 100644 --- a/ee/spec/features/duo_chat/user_navigates_duo_chat_history_spec.rb +++ b/ee/spec/features/duo_chat/user_navigates_duo_chat_history_spec.rb @@ -49,7 +49,6 @@ def close_popover skip 'Test not applicable in classic UI' unless Users::ProjectStudio.enabled_for_user?(user) # rubocop:disable RSpec/AvoidConditionalStatements -- temporary Project Studio rollout visit project_path(project) - dismiss_welcome_banner_if_present(page) open_duo_chat close_popover end diff --git a/ee/spec/features/registrations/identity_verification_spec.rb b/ee/spec/features/registrations/identity_verification_spec.rb index dde0cc62b265e01f4b1dcc7735ce5875890ca2e4..078e791e96b0293094e3d84339aca43958060aae 100644 --- a/ee/spec/features/registrations/identity_verification_spec.rb +++ b/ee/spec/features/registrations/identity_verification_spec.rb @@ -517,8 +517,6 @@ def sign_up(flow: :standard, **opts) end def user_signs_out - dismiss_welcome_banner_if_present(page) - find_by_testid('user-dropdown').click click_link 'Sign out' diff --git a/ee/spec/features/registrations/saas/standard_flow_with_2fa_spec.rb b/ee/spec/features/registrations/saas/standard_flow_with_2fa_spec.rb index bc0f1aaa68de1411162e8aa75efd7bd36c164e26..6fb834aa5d8df93df6596c35b1717cda22eecbf4 100644 --- a/ee/spec/features/registrations/saas/standard_flow_with_2fa_spec.rb +++ b/ee/spec/features/registrations/saas/standard_flow_with_2fa_spec.rb @@ -28,8 +28,6 @@ expect_to_be_on_2fa_verification(with_invite_notification: true) - dismiss_welcome_banner_if_present(page) - otp_authenticator_registration_and_copy_codes(user.current_otp, password) expect_to_be_on_profile_account_page @@ -52,8 +50,6 @@ expect_to_be_on_2fa_verification(with_invite_notification: true) - dismiss_welcome_banner_if_present(page) - otp_authenticator_registration_and_copy_codes(user.current_otp, password) expect_to_be_on_profile_account_page @@ -84,8 +80,6 @@ expect_to_be_on_2fa_verification - dismiss_welcome_banner_if_present(page) - otp_authenticator_registration_and_copy_codes(user.current_otp, password) expect_to_be_on_profile_account_page diff --git a/ee/spec/features/registrations/saas/trial_flow_company_creating_project_spec.rb b/ee/spec/features/registrations/saas/trial_flow_company_creating_project_spec.rb index d56b34e0ab48bdc7a5028064234b7df3b9d82283..bd7e4c45772f9691456e8e6ead3129ea3d8327b3 100644 --- a/ee/spec/features/registrations/saas/trial_flow_company_creating_project_spec.rb +++ b/ee/spec/features/registrations/saas/trial_flow_company_creating_project_spec.rb @@ -37,7 +37,6 @@ fills_in_group_and_project_creation_form_with_trial click_on 'Create project' - dismiss_welcome_banner_if_present(page) expect_to_be_in_get_started expect(tracking_events_key).to have_all_expected_events end @@ -48,7 +47,6 @@ stub_feature_flags(premium_message_during_trial: true) setup_trial_for_experiment - dismiss_welcome_banner_if_present(page) within_testid('super-sidebar') do click_link_or_button 'Merge requests' end @@ -83,7 +81,6 @@ stub_feature_flags(premium_message_during_trial: false) setup_trial_for_experiment - dismiss_welcome_banner_if_present(page) within_testid('super-sidebar') do click_link_or_button 'Merge requests' end @@ -126,7 +123,6 @@ def setup_trial_for_experiment fills_in_group_and_project_creation_form_with_trial click_on 'Create project' - dismiss_welcome_banner_if_present(page) expect_to_be_in_get_started update_with_applied_trials(with_duo: false) @@ -161,7 +157,6 @@ def setup_trial_for_experiment fills_in_group_and_project_creation_form_with_trial click_on 'Create project' - dismiss_welcome_banner_if_present(page) expect_to_be_in_learn_gitlab end end diff --git a/ee/spec/features/work_items/list/user_interacts_with_drawer_spec.rb b/ee/spec/features/work_items/list/user_interacts_with_drawer_spec.rb index 53f3b5cd68f7e9ab434464f3954c2682d71f3ccb..666a882be9b5002e9351229aaec57cd05c63cd29 100644 --- a/ee/spec/features/work_items/list/user_interacts_with_drawer_spec.rb +++ b/ee/spec/features/work_items/list/user_interacts_with_drawer_spec.rb @@ -167,7 +167,6 @@ visit project_work_items_path(project) close_work_item_feedback_popover_if_present - dismiss_welcome_banner_if_present(page) first_card.click @@ -187,7 +186,6 @@ visit group_work_items_path(group) close_work_item_feedback_popover_if_present - dismiss_welcome_banner_if_present(page) first_card.click @@ -213,7 +211,6 @@ visit group_epics_path(group) close_work_item_feedback_popover_if_present - dismiss_welcome_banner_if_present(page) first_card.click diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 8ec196d3ed5282c8fd203f19804517b1b5366372..b227c7321329687c26a77686c34484e5ba93da01 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -29472,9 +29472,6 @@ msgstr "" msgid "Find the activation code for a purchased or renewed subscription in the Customers Portal or purchase confirmation email." msgstr "" -msgid "Find what you need faster" -msgstr "" - msgid "FindFile|Switch branch/tag" msgstr "" @@ -31282,9 +31279,6 @@ msgstr "" msgid "GitLab metadata URL" msgstr "" -msgid "GitLab now has a sleek panel-based layout. Find what you need faster with centered search and all your work items conveniently positioned in the upper right." -msgstr "" - msgid "GitLab project export" msgstr "" @@ -46971,9 +46965,6 @@ msgstr "" msgid "Open raw" msgstr "" -msgid "Open the GitLab Duo AI assistant panel from anywhere in GitLab. Ask questions, request code help, or get guidance without interrupting your workflow." -msgstr "" - msgid "Open threads must be resolved." msgstr "" @@ -64271,9 +64262,6 @@ msgstr "" msgid "Share the %{strong_open}GitLab single sign-on URL%{strong_close} with members so they can sign in to your group through your identity provider" msgstr "" -msgid "Share your feedback!" -msgstr "" - msgid "Shared groups" msgstr "" @@ -66035,12 +66023,6 @@ msgstr "" msgid "StatusPage|your status page frontend." msgstr "" -msgid "Stay in context" -msgstr "" - -msgid "Stay in your workflow with contextual panels. Select an issue to view its details right alongside your list, so you can quickly review, edit, and move on to the next task." -msgstr "" - msgid "Step" msgstr "" @@ -75491,9 +75473,6 @@ msgstr "" msgid "We've detected unusual activity" msgstr "" -msgid "We've improved the GitLab user experience with a more modern, intuitive interface built on a new panel-based layout." -msgstr "" - msgid "We've noticed an unusually high storage usage on %{project_name}" msgstr "" @@ -75977,9 +75956,6 @@ msgstr "" msgid "Welcome to the new merge request homepage! This page gives you a centralized view of all the merge requests you're working on. Know at a glance what merge requests need your attention first so you can spend less time checking in, and more time reviewing and responding to feedback." msgstr "" -msgid "Welcome to the redesigned GitLab UI" -msgstr "" - msgid "Welcome, %{name}!" msgstr "" diff --git a/qa/qa/flow/login.rb b/qa/qa/flow/login.rb index 1039fdca0b571d521dfba31e61f3f87e5efdaa00..0b1f967ef3fe86754696fc4604792c626a465238 100644 --- a/qa/qa/flow/login.rb +++ b/qa/qa/flow/login.rb @@ -28,10 +28,6 @@ def sign_in(as: nil, address: :gitlab, skip_page_validation: false, admin: false login.sign_in_using_credentials(user: as, skip_page_validation: skip_page_validation) end end - - return unless Runtime::Env.project_studio_enabled? && Page::Main::Menu.perform(&:signed_in?) - - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) end def sign_in_as_admin(address: :gitlab) diff --git a/qa/qa/page/main/login.rb b/qa/qa/page/main/login.rb index 38973abb470d9352fea62931c9a6e6af7fbe53bb..097944c38e67ed460aa03d9905cbb576016e3182 100644 --- a/qa/qa/page/main/login.rb +++ b/qa/qa/page/main/login.rb @@ -82,10 +82,6 @@ def sign_in_using_credentials(user: nil, skip_page_validation: false, raise_on_i ) end end - - return unless Runtime::Env.project_studio_enabled? && !skip_page_validation - - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) end def sign_in_using_admin_credentials @@ -95,7 +91,6 @@ def sign_in_using_admin_credentials end Page::Main::Menu.perform(&:has_personal_area?) - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) end def sign_in_using_ldap_credentials(user:) @@ -114,8 +109,6 @@ def sign_in_using_ldap_credentials(user:) Page::Main::Menu.perform(&:signed_in?) dismiss_duo_chat_popup if respond_to?(:dismiss_duo_chat_popup) - - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) end def has_sign_in_tab?(wait: Capybara.default_max_wait_time) diff --git a/qa/qa/page/main/menu.rb b/qa/qa/page/main/menu.rb index 8d6ea18b9e2987e974eff2e4220fe9b00b18b9f3..4f38a69a2f0a4a4f95e71b3bfa6742a9d3a84123 100644 --- a/qa/qa/page/main/menu.rb +++ b/qa/qa/page/main/menu.rb @@ -106,16 +106,6 @@ def signed_in_as_user?(user) click_element 'user-avatar-content' if has_element?('user-profile-link', wait: 0) end - def dismiss_welcome_modal_if_present - return unless has_element?('#dap_welcome_modal___BV_modal_footer_', wait: 1) - - click_button 'Get started' - within(find('#dap_welcome_modal___BV_modal_content_')) { click_element('close-icon') } - wait_until(reload: false) do - !has_css?('#dap_welcome_modal___BV_modal_footer_') - end - end - def not_signed_in? return true if Page::Main::Login.perform(&:on_login_page?) @@ -130,7 +120,6 @@ def sign_out break true unless signed_in? - dismiss_welcome_modal_if_present within_user_menu do click_element 'sign-out-link' end diff --git a/qa/qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_ssh_recovery_spec.rb b/qa/qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_ssh_recovery_spec.rb index 168fdae0ebb31e84424f67d6614bde951ba1ce89..210178a9756246bab56d3269588fffed08a01f00 100644 --- a/qa/qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_ssh_recovery_spec.rb +++ b/qa/qa/specs/features/browser_ui/10_software_supply_chain_security/login/2fa_ssh_recovery_spec.rb @@ -33,7 +33,6 @@ module QA end expect(Page::Main::Menu.perform(&:signed_in?)).to be_truthy - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) Page::Main::Menu.perform(&:sign_out) Flow::Login.sign_in(as: user, skip_page_validation: true) diff --git a/qa/qa/specs/features/browser_ui/10_software_supply_chain_security/login/oauth_login_with_github_spec.rb b/qa/qa/specs/features/browser_ui/10_software_supply_chain_security/login/oauth_login_with_github_spec.rb index b8de7ab816ac801e6c9f9de12cb5578bf2586c9a..c512d8da470d8d6e374e19b692468c72f2cba8f0 100644 --- a/qa/qa/specs/features/browser_ui/10_software_supply_chain_security/login/oauth_login_with_github_spec.rb +++ b/qa/qa/specs/features/browser_ui/10_software_supply_chain_security/login/oauth_login_with_github_spec.rb @@ -14,7 +14,6 @@ module QA Page::Main::Login.perform(&:sign_in_with_github) Vendor::Github::Page::Login.perform(&:login) - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) # After OAuth login, user might be on profile page or dashboard # Check that we're logged in by verifying the user menu is present diff --git a/qa/qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_saml_enforced_sso_new_account_spec.rb b/qa/qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_saml_enforced_sso_new_account_spec.rb index c625c92d817445d13927fdff6a08324450f165c8..847cddd0af3e44e64541eaacdb9da83199d7f5a9 100644 --- a/qa/qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_saml_enforced_sso_new_account_spec.rb +++ b/qa/qa/specs/features/ee/browser_ui/10_software_supply_chain_security/group/group_saml_enforced_sso_new_account_spec.rb @@ -27,7 +27,6 @@ module QA EE::Page::Group::SamlSSOSignIn.perform(&:click_sign_in) Flow::Saml.login_to_idp_if_required(idp_user.username, idp_user.password) - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) expect(page).to have_text("Signed in with SAML") @@ -46,7 +45,6 @@ module QA EE::Page::Group::SamlSSOSignIn.perform(&:click_sign_in) Flow::Saml.login_to_idp_if_required(idp_user.username, idp_user.password) - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) expect(page).to have_text( "Sign in with your existing credentials to connect your organization's account" @@ -63,7 +61,6 @@ module QA EE::Page::Group::SamlSSOSignIn.perform(&:click_sign_in) Flow::Saml.login_to_idp_if_required(idp_user.username, idp_user.password) - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) expect(page).to have_text("Signed in with SAML") end diff --git a/qa/qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb b/qa/qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb index 26bdeda73c279e706f1e268939f09d060b353381..91ef98383dc5cf3cff9351bfe632760a039cfc0c 100644 --- a/qa/qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb +++ b/qa/qa/specs/features/ee/browser_ui/3_create/repository/merge_with_code_owner_in_subgroup_spec.rb @@ -12,7 +12,6 @@ module QA group_or_project.add_member(approver, Resource::Members::AccessLevel::MAINTAINER) Flow::Login.sign_in - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) project.visit! end diff --git a/qa/qa/specs/features/ee/browser_ui/5_package/dependency_proxy_sso_spec.rb b/qa/qa/specs/features/ee/browser_ui/5_package/dependency_proxy_sso_spec.rb index 5d2b288a9e57fc91351894c3edfaa024eb61195e..dd2c25599246c45a9f898f40ea52b5144396e1db 100644 --- a/qa/qa/specs/features/ee/browser_ui/5_package/dependency_proxy_sso_spec.rb +++ b/qa/qa/specs/features/ee/browser_ui/5_package/dependency_proxy_sso_spec.rb @@ -36,13 +36,11 @@ module QA EE::Page::Group::SamlSSOSignIn.perform(&:click_sign_in) Flow::Saml.login_to_idp_if_required(idp_user.username, idp_user.password) - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) QA::Flow::User.confirm_user(idp_user) visit_group_sso_url EE::Page::Group::SamlSSOSignIn.perform(&:click_sign_in) - Page::Main::Menu.perform(&:dismiss_welcome_modal_if_present) end after do diff --git a/spec/features/boards/sidebar_spec.rb b/spec/features/boards/sidebar_spec.rb index ffdad9f9a394abf138d235f1b9f53760aa8dad92..ce24eda655840e6ef7690e2a229703471beea459 100644 --- a/spec/features/boards/sidebar_spec.rb +++ b/spec/features/boards/sidebar_spec.rb @@ -24,7 +24,6 @@ sign_in(user) visit project_board_path(project, board) - dismiss_welcome_banner_if_present(page) click_button 'Collapse sidebar' # otherwise panel opens as drawer and intercepts clicks wait_for_requests @@ -38,7 +37,6 @@ sign_in(user) visit project_board_path(project, board) - dismiss_welcome_banner_if_present(page) wait_for_requests end diff --git a/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb b/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb index 5dcaf90e9d9a86c730f58a0fd65b739ace317882..9b9db16f9a8a954077c83204dd6a23c0fefc7a4f 100644 --- a/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb +++ b/spec/features/merge_request/user_suggests_changes_on_diff_spec.rb @@ -29,7 +29,6 @@ def expect_suggestion_has_content(element, expected_changing_content, expected_s sign_in(user) visit(diffs_project_merge_request_path(project, merge_request)) - dismiss_welcome_banner_if_present(page) wait_for_requests end @@ -266,7 +265,6 @@ def hash(path) # Making sure it's not a Front-end cache. visit(diffs_project_merge_request_path(project, merge_request)) - dismiss_welcome_banner_if_present(page) wait_for_requests expect(page).to have_button('Apply suggestion').twice @@ -437,7 +435,6 @@ def diffs_metadata wait_for_requests visit(project_merge_request_path(project, merge_request)) - dismiss_welcome_banner_if_present(page) wait_for_requests end diff --git a/spec/features/users/login_spec.rb b/spec/features/users/login_spec.rb index 5d424795a3cf8c3808dd5765eccfe1a15a02cd4a..a3623a124f8726784bd8be2cf35f3c8d9df35a74 100644 --- a/spec/features/users/login_spec.rb +++ b/spec/features/users/login_spec.rb @@ -1160,7 +1160,6 @@ def sign_in_using_saml! # page is shown. wait_for_requests - dismiss_welcome_banner_if_present(page) click_button _('Register authenticator') otp_secret = page.find('.two-factor-secret').text.gsub('Key:', '').delete(' ') current_otp = ROTP::TOTP.new(otp_secret).now @@ -1247,8 +1246,6 @@ def sign_in_using_saml! # Wait until the form has been initialized has_testid?('form-ready') - dismiss_welcome_banner_if_present(page) - fill_in 'Email', with: 'hello@world.com' click_button 'Update profile settings' diff --git a/spec/features/work_items/list/user_interacts_with_drawer_spec.rb b/spec/features/work_items/list/user_interacts_with_drawer_spec.rb index 7cb4a977119ce2089ec7c1caf7c0577c990eeac5..cc2e6141d3fd932f473201ee6c1c0d9ff5e3782f 100644 --- a/spec/features/work_items/list/user_interacts_with_drawer_spec.rb +++ b/spec/features/work_items/list/user_interacts_with_drawer_spec.rb @@ -30,7 +30,6 @@ sign_in(user) visit project_work_items_path(project) - dismiss_welcome_banner_if_present(page) first_card.click @@ -61,7 +60,6 @@ sign_in(user) visit project_issues_path(project) - dismiss_welcome_banner_if_present(page) first_card.click @@ -100,7 +98,6 @@ sign_in(user) visit project_work_items_path(project) - dismiss_welcome_banner_if_present(page) first_card.click @@ -131,7 +128,6 @@ sign_in(user) visit project_issues_path(project) - dismiss_welcome_banner_if_present(page) first_card.click diff --git a/spec/frontend/super_sidebar/components/user_menu_spec.js b/spec/frontend/super_sidebar/components/user_menu_spec.js index 037db1c919c35600814072dfecf082bc93d4fcdf..4f4e9308510232807bcc38b8a59a16ef8d401db7 100644 --- a/spec/frontend/super_sidebar/components/user_menu_spec.js +++ b/spec/frontend/super_sidebar/components/user_menu_spec.js @@ -4,11 +4,9 @@ import { nextTick } from 'vue'; import axios from '~/lib/utils/axios_utils'; import { mountExtended } from 'helpers/vue_test_utils_helper'; import { stubComponent } from 'helpers/stub_component'; -import { useLocalStorageSpy } from 'helpers/local_storage_helper'; import UserMenu from '~/super_sidebar/components/user_menu.vue'; import UserMenuProfileItem from '~/super_sidebar/components/user_menu_profile_item.vue'; import SetStatusModal from '~/set_status_modal/set_status_modal_wrapper.vue'; -import DapWelcomeModal from '~/dap_welcome_modal/dap_welcome_modal.vue'; import { mockTracking } from 'helpers/tracking_helper'; import { visitUrl } from '~/lib/utils/url_utility'; import * as Sentry from '~/sentry/sentry_browser_wrapper'; @@ -28,7 +26,6 @@ describe('UserMenu component', () => { const GlEmoji = { template: '' }; const findDropdown = () => wrapper.findComponent(GlDisclosureDropdown); const findSetStatusModal = () => wrapper.findComponent(SetStatusModal); - const findDapWelcomeModal = () => wrapper.findComponent(DapWelcomeModal); const showDropdown = () => findDropdown().vm.$emit('shown'); const findStopImpersonationButton = () => wrapper.findByTestId('stop-impersonation-btn'); @@ -524,39 +521,6 @@ describe('UserMenu component', () => { }); }); - describe('DAP welcome modal', () => { - useLocalStorageSpy(); - - it.each` - description | showDapWelcomeModal | modalVisibility - ${'shows DAP welcome modal'} | ${'true'} | ${true} - ${'does not show DAP welcome modal'} | ${'false'} | ${false} - `( - '$description when showDapWelcomeModal localStorageKey is set to $showDapWelcomeModal', - async ({ showDapWelcomeModal, modalVisibility }) => { - localStorage.setItem('showDapWelcomeModal', showDapWelcomeModal); - - createWrapper(); - - await nextTick(); - - expect(findDapWelcomeModal().exists()).toBe(modalVisibility); - }, - ); - - it('closing DAP welcome modal causes showDapWelcomeModal localStorage key set to `false`', async () => { - localStorage.setItem('showDapWelcomeModal', 'true'); - - createWrapper(); - - await nextTick(); - - findDapWelcomeModal().vm.$emit('close'); - - expect(localStorage.setItem).toHaveBeenCalledWith('showDapWelcomeModal', 'false'); - }); - }); - describe('GitLab Next item', () => { describe('on gitlab.com', () => { let item; diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 3f3ca8ce92f6c31785be593bd3fe8afe8d9a9b45..ecb246a2ebff7cac02c95a5ac82ec1b1f0bf08e0 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -230,7 +230,6 @@ include StubCurrentOrganization include StubFeatureFlags - include ProjectStudioHelpers include StubSnowplow include StubMember include VersionCheckHelpers diff --git a/spec/support/capybara_wait_for_requests.rb b/spec/support/capybara_wait_for_requests.rb index 4be4eee8e7da90cb7e558258db854e6669ec10be..40259bc237d0891a7934e912ccf85709fc050a81 100644 --- a/spec/support/capybara_wait_for_requests.rb +++ b/spec/support/capybara_wait_for_requests.rb @@ -15,8 +15,6 @@ def visit(visit_uri, &block) yield if block wait_for_requests - - dismiss_welcome_banner_if_present(self) if respond_to?(:dismiss_welcome_banner_if_present) end end diff --git a/spec/support/helpers/login_helpers.rb b/spec/support/helpers/login_helpers.rb index 86f9e029261c5e404e26e4605a501dfa2540ec2a..35f409c1b7c4f501918624754b55f6a0addf8407 100644 --- a/spec/support/helpers/login_helpers.rb +++ b/spec/support/helpers/login_helpers.rb @@ -47,8 +47,6 @@ def gitlab_sign_in(user_or_role, **kwargs) gitlab_sign_in_with(user, **kwargs) @current_user = user - - dismiss_welcome_banner_if_present(page) end def gitlab_sign_in_via(provider, user, uid, saml_response = nil) @@ -67,8 +65,6 @@ def gitlab_enable_admin_mode_sign_in_via(provider, user, uid, saml_response: nil # Requires Javascript driver. def gitlab_sign_out(user = @current_user) - dismiss_welcome_banner_if_present(page) - if has_testid?('super-sidebar') click_on "#{user.name} user’s menu" else diff --git a/spec/support/helpers/project_studio_helpers.rb b/spec/support/helpers/project_studio_helpers.rb deleted file mode 100644 index 0526660e0a92fde965a188933f2dc984f9005002..0000000000000000000000000000000000000000 --- a/spec/support/helpers/project_studio_helpers.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module ProjectStudioHelpers - def dismiss_welcome_banner_if_present(page) - modal_dismiss_button_selector = '#dap_welcome_modal header button[aria-label="Close"]' - - return unless page.respond_to?(:has_selector?) - - return unless page.has_selector?(modal_dismiss_button_selector, wait: 0) - - page.find(modal_dismiss_button_selector).click - - rescue Selenium::WebDriver::Error::StaleElementReferenceError - # Element became stale between finding and clicking - likely already dismissed - end -end