diff --git a/app/assets/javascripts/diffs/components/app.vue b/app/assets/javascripts/diffs/components/app.vue index bb3111486275a413cfcfb792fa9510f4fef0f3bc..81dec3844e088b762eae3ced15ea6fbb4bf85249 100644 --- a/app/assets/javascripts/diffs/components/app.vue +++ b/app/assets/javascripts/diffs/components/app.vue @@ -1,4 +1,5 @@ diff --git a/app/assets/javascripts/diffs/components/loaders/diff_files_loading.vue b/app/assets/javascripts/diffs/components/loaders/diff_files_loading.vue new file mode 100644 index 0000000000000000000000000000000000000000..55d0c89218aef55ef47fcb120e5f13df3f9e7904 --- /dev/null +++ b/app/assets/javascripts/diffs/components/loaders/diff_files_loading.vue @@ -0,0 +1,40 @@ + + + diff --git a/app/assets/javascripts/diffs/components/loaders/file_tree_loading.vue b/app/assets/javascripts/diffs/components/loaders/file_tree_loading.vue new file mode 100644 index 0000000000000000000000000000000000000000..d5d57160e66ad794514f2a370fffea1abdb22458 --- /dev/null +++ b/app/assets/javascripts/diffs/components/loaders/file_tree_loading.vue @@ -0,0 +1,24 @@ + + + diff --git a/app/assets/javascripts/diffs/components/loaders/mr_version_controls_loading.vue b/app/assets/javascripts/diffs/components/loaders/mr_version_controls_loading.vue new file mode 100644 index 0000000000000000000000000000000000000000..8d0aeb01921c3409ba891afe726ff780ab79b7dd --- /dev/null +++ b/app/assets/javascripts/diffs/components/loaders/mr_version_controls_loading.vue @@ -0,0 +1,24 @@ + + + diff --git a/app/assets/stylesheets/pages/merge_requests.scss b/app/assets/stylesheets/pages/merge_requests.scss index a62df1258afc39df31852a04865b78d4fa6cd345..ca1eae2f5426a4865810616127333d432c708a27 100644 --- a/app/assets/stylesheets/pages/merge_requests.scss +++ b/app/assets/stylesheets/pages/merge_requests.scss @@ -439,6 +439,77 @@ $mr-widget-min-height: 69px; } } +/************************************ + * + * App Layout during loading states + * + ***********************************/ + +.version-controls-loader { + grid-template-columns: 1fr 1fr; + + svg { + max-height: 32px; + + &:last-of-type { + position: absolute; + right: 78px; + } + } + + .gl-spinner-container { + grid-column: 1 / 3; + } +} + +.version-controls-loader, +.file-tree-loader, +.diff-files-loader { + .gl-skeleton-loader { + display: none; + } + + @include media-breakpoint-up(sm) { + .gl-spinner-container { + display: none; + } + + .gl-skeleton-loader { + display: unset; + } + } +} + +.diffs { + .files { + display: flex; + + &.with-tree { + @include media-breakpoint-up(md) { + display: grid; + } + + .diff-files-loader .gl-spinner-container { + @include gl-mt-5; + } + } + } + + .diff-files-holder { + grid-column: 1; + + @include media-breakpoint-up(md) { + grid-column: 2; + } + } +} + +/************************************ + * + * In lieu of another section starting: End of previous section + * + ***********************************/ + .nothing-here-block { img { width: 230px; diff --git a/changelogs/unreleased/tor-feature-mr-skeleton-loader.yml b/changelogs/unreleased/tor-feature-mr-skeleton-loader.yml new file mode 100644 index 0000000000000000000000000000000000000000..160129f373fc46c418f42b156e3c005f3364a03b --- /dev/null +++ b/changelogs/unreleased/tor-feature-mr-skeleton-loader.yml @@ -0,0 +1,6 @@ +--- +title: Swap to skeleton loaders from a single circular loader on MR Diffs (Changes) + tab +merge_request: 53133 +author: +type: added