summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/snippets/components/show.vue
blob: 0779e87e6b643716f9a2e8de47ac8ef7448d1330 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<script>
import BlobEmbeddable from '~/blob/components/blob_embeddable.vue';
import SnippetHeader from './snippet_header.vue';
import SnippetTitle from './snippet_title.vue';
import SnippetBlob from './snippet_blob_view.vue';
import { GlLoadingIcon } from '@gitlab/ui';

import { getSnippetMixin } from '../mixins/snippets';
import { SNIPPET_VISIBILITY_PUBLIC } from '~/snippets/constants';

export default {
  components: {
    BlobEmbeddable,
    SnippetHeader,
    SnippetTitle,
    GlLoadingIcon,
    SnippetBlob,
  },
  mixins: [getSnippetMixin],
  computed: {
    embeddable() {
      return this.snippet.visibilityLevel === SNIPPET_VISIBILITY_PUBLIC;
    },
  },
};
</script>
<template>
  <div class="js-snippet-view">
    <gl-loading-icon
      v-if="isLoading"
      :label="__('Loading snippet')"
      size="lg"
      class="loading-animation prepend-top-20 append-bottom-20"
    />
    <template v-else>
      <snippet-header :snippet="snippet" />
      <snippet-title :snippet="snippet" />
      <blob-embeddable v-if="embeddable" class="gl-mb-5" :url="snippet.webUrl" />
      <div v-for="blob in blobs" :key="blob.path">
        <snippet-blob :snippet="snippet" :blob="blob" />
      </div>
    </template>
  </div>
</template>