From 60379c7c98b862f5d165fa94bd5a096c14ff6c72 Mon Sep 17 00:00:00 2001
From: Constance Okoghenun <cokoghenun@gitlab.com>
Date: Fri, 29 Jun 2018 14:27:27 +0000
Subject: [PATCH] Resolve "Merge request refactor displays changes dropdown
 incorrectly"

---
 .../components/changed_files_dropdown.vue     | 100 +++++++++---------
 app/assets/stylesheets/pages/diff.scss        |   4 +
 2 files changed, 55 insertions(+), 49 deletions(-)

diff --git a/app/assets/javascripts/diffs/components/changed_files_dropdown.vue b/app/assets/javascripts/diffs/components/changed_files_dropdown.vue
index f224b9dd246..b38d217fbe3 100644
--- a/app/assets/javascripts/diffs/components/changed_files_dropdown.vue
+++ b/app/assets/javascripts/diffs/components/changed_files_dropdown.vue
@@ -66,59 +66,61 @@ export default {
           @click="clearSearch"
         ></i>
       </div>
-      <ul>
-        <li
-          v-for="diffFile in filteredDiffFiles"
-          :key="diffFile.name"
-        >
-          <a
-            :href="`#${diffFile.fileHash}`"
-            :title="diffFile.newPath"
-            class="diff-changed-file"
+      <div class="dropdown-content">
+        <ul>
+          <li
+            v-for="diffFile in filteredDiffFiles"
+            :key="diffFile.name"
           >
-            <icon
-              :name="fileChangedIcon(diffFile)"
-              :size="16"
-              :class="fileChangedClass(diffFile)"
-              class="diff-file-changed-icon append-right-8"
-            />
-            <span class="diff-changed-file-content append-right-8">
-              <strong
-                v-if="diffFile.blob && diffFile.blob.name"
-                class="diff-changed-file-name"
-              >
-                {{ diffFile.blob.name }}
-              </strong>
-              <strong
-                v-else
-                class="diff-changed-blank-file-name"
-              >
-                {{ s__('Diffs|No file name available') }}
-              </strong>
-              <span class="diff-changed-file-path prepend-top-5">
-                {{ truncatedDiffPath(diffFile.blob.path) }}
+            <a
+              :href="`#${diffFile.fileHash}`"
+              :title="diffFile.newPath"
+              class="diff-changed-file"
+            >
+              <icon
+                :name="fileChangedIcon(diffFile)"
+                :size="16"
+                :class="fileChangedClass(diffFile)"
+                class="diff-file-changed-icon append-right-8"
+              />
+              <span class="diff-changed-file-content append-right-8">
+                <strong
+                  v-if="diffFile.blob && diffFile.blob.name"
+                  class="diff-changed-file-name"
+                >
+                  {{ diffFile.blob.name }}
+                </strong>
+                <strong
+                  v-else
+                  class="diff-changed-blank-file-name"
+                >
+                  {{ s__('Diffs|No file name available') }}
+                </strong>
+                <span class="diff-changed-file-path prepend-top-5">
+                  {{ truncatedDiffPath(diffFile.blob.path) }}
+                </span>
               </span>
-            </span>
-            <span class="diff-changed-stats">
-              <span class="cgreen">
-                +{{ diffFile.addedLines }}
+              <span class="diff-changed-stats">
+                <span class="cgreen">
+                  +{{ diffFile.addedLines }}
+                </span>
+                <span class="cred">
+                  -{{ diffFile.removedLines }}
+                </span>
               </span>
-              <span class="cred">
-                -{{ diffFile.removedLines }}
-              </span>
-            </span>
-          </a>
-        </li>
+            </a>
+          </li>
 
-        <li
-          v-show="filteredDiffFiles.length === 0"
-          class="dropdown-menu-empty-item"
-        >
-          <a>
-            {{ __('No files found') }}
-          </a>
-        </li>
-      </ul>
+          <li
+            v-show="filteredDiffFiles.length === 0"
+            class="dropdown-menu-empty-item"
+          >
+            <a>
+              {{ __('No files found') }}
+            </a>
+          </li>
+        </ul>
+      </div>
     </div>
   </span>
 </template>
diff --git a/app/assets/stylesheets/pages/diff.scss b/app/assets/stylesheets/pages/diff.scss
index d652982410a..8c25d177813 100644
--- a/app/assets/stylesheets/pages/diff.scss
+++ b/app/assets/stylesheets/pages/diff.scss
@@ -737,6 +737,10 @@
   max-width: 560px;
   width: 100%;
   z-index: 150;
+  min-height: $dropdown-min-height;
+  max-height: $dropdown-max-height;
+  overflow-y: auto;
+  margin-bottom: 0;
 
   @include media-breakpoint-up(sm) {
     left: $gl-padding;
-- 
2.30.9