Skip to content

feat(GlSkeletonLoader): migrate GlSkeletonLoading functionality into GlSkeletonLoader

What does this MR do?

See #872 (closed)

Original thread:

https://gitlab.slack.com/archives/CH9QG9TAQ/p1594048978110800

Deprecation plan:

  1. Get gitlab!38663 (merged) reviewed and ready to merge.
  2. Merge this MR
  3. Update @gitlab/ui dependency in integration MR and merge.
  4. Open a MR that exports GlSkeletonLoading as GlDeprecatedSkeletonLoading
    • - export { default as GlSkeletonLoading } from './src/components/base/skeleton_loading/skeleton_loading.vue'
      + export { default as GlSkeletonLoading, default as GlDeprecatedSkeletonLoading } from './src/components/base/skeleton_loading/skeleton_loading.vue';
  5. Open up a MR in gitlab-org/gitlab to import GlDeprecatedSkeletonLoading and alias it back to GlSkeletonLoading
    • - import { GlSkeletonLoading } from '@gitlab/ui';
      + import { GlDeprecatedSkeletonLoading as GlSkeletonLoading } from '@gitlab/ui';
  6. Create an Epic that identifies all the GlDeprecatedSkeletonLoading components that need to be migrated to GlSkeletonLoader
  7. Complete the epic
  8. Double check that GlSkeletonLoading isn't being used in any other gitlab-org codebases
  9. Remove GlSkeletonLoading from @gitlab/ui and release a new major version.

Context

I decided to switch to using a render function for two reasons:

  1. I wanted to keep this component functional to keep it performant
  2. It is hard to create helper methods when using a template because the script doesn't have access to the context. See https://github.com/vuejs/vue/issues/7995 for more info.

Does this MR meet the acceptance criteria?

Conformity

Edited by Peter Hegman

Merge request reports