summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2017-11-06 08:53:33 +0000
committerPhil Hughes <me@iamphill.com>2017-11-06 10:52:04 +0000
commiteacd821a3c0bae80a56a6933d5ab6aea4b9f283e (patch)
treea8a1ddf44d0b2b840ceb9a855ee0fc3a6c1c5187
parente2bcb3a46fd7d29bcbd17101e9a4e8f7d0ca4746 (diff)
downloadgitlab-ce-eacd821a3c0bae80a56a6933d5ab6aea4b9f283e.tar.gz
moved key into data structure
uses an array of classes to render skeleton loading cells
-rw-r--r--app/assets/javascripts/repo/components/repo_file.vue2
-rw-r--r--app/assets/javascripts/repo/components/repo_sidebar.vue2
-rw-r--r--app/assets/javascripts/repo/stores/utils.js2
-rw-r--r--app/assets/javascripts/vue_shared/components/skeleton_loading_container.vue11
4 files changed, 12 insertions, 5 deletions
diff --git a/app/assets/javascripts/repo/components/repo_file.vue b/app/assets/javascripts/repo/components/repo_file.vue
index e7a40e06da7..9f16e6bb2cc 100644
--- a/app/assets/javascripts/repo/components/repo_file.vue
+++ b/app/assets/javascripts/repo/components/repo_file.vue
@@ -39,7 +39,7 @@
return this.file.id.substr(0, 8);
},
submoduleColSpan() {
- return !this.isCollapsed && this.isSubmodule ? 3 : undefined;
+ return !this.isCollapsed && this.isSubmodule ? 3 : 1;
},
},
methods: {
diff --git a/app/assets/javascripts/repo/components/repo_sidebar.vue b/app/assets/javascripts/repo/components/repo_sidebar.vue
index 8efc1aaa06c..3f61d048288 100644
--- a/app/assets/javascripts/repo/components/repo_sidebar.vue
+++ b/app/assets/javascripts/repo/components/repo_sidebar.vue
@@ -80,7 +80,7 @@ export default {
/>
<repo-file
v-for="(file, index) in treeList"
- :key="file.name + file.type"
+ :key="file.key"
:file="file"
/>
</tbody>
diff --git a/app/assets/javascripts/repo/stores/utils.js b/app/assets/javascripts/repo/stores/utils.js
index 57c0dd62c41..fae1f4439a9 100644
--- a/app/assets/javascripts/repo/stores/utils.js
+++ b/app/assets/javascripts/repo/stores/utils.js
@@ -1,5 +1,6 @@
export const dataStructure = () => ({
id: '',
+ key: '',
type: '',
name: '',
url: '',
@@ -55,6 +56,7 @@ export const decorateData = (entity) => {
return {
...dataStructure(),
id,
+ key: `${name}-${type}-${id}`,
type,
name,
url,
diff --git a/app/assets/javascripts/vue_shared/components/skeleton_loading_container.vue b/app/assets/javascripts/vue_shared/components/skeleton_loading_container.vue
index 4e759fb6c6c..7ab5e069003 100644
--- a/app/assets/javascripts/vue_shared/components/skeleton_loading_container.vue
+++ b/app/assets/javascripts/vue_shared/components/skeleton_loading_container.vue
@@ -12,6 +12,11 @@
default: 6,
},
},
+ computed: {
+ lineClasses() {
+ return new Array(this.lines).fill().map((_, i) => `skeleton-line-${i}`);
+ },
+ },
};
</script>
@@ -23,9 +28,9 @@
}"
>
<div
- v-for="line in lines"
- :key="line"
- :class="'skeleton-line-' + line"
+ v-for="(css, index) in lineClasses"
+ :key="index"
+ :class="css"
>
</div>
</div>