gitlab-org--gitlab-foss/app/assets/javascripts/vue_shared/components/usage_quotas/usage_banner.vue

69 lines
2.4 KiB
Vue

<script>
import { GlSkeletonLoader } from '@gitlab/ui';
import { helpPagePath } from '~/helpers/help_page_helper';
import { s__ } from '~/locale';
export default {
name: 'UsageBanner',
components: {
GlSkeletonLoader,
},
props: {
loading: {
type: Boolean,
required: false,
default: false,
},
},
i18n: {
dependencyProxy: s__('UsageQuota|Dependency proxy'),
storageUsed: s__('UsageQuota|Storage used'),
dependencyProxyMessage: s__(
'UsageQuota|Local proxy used for frequently-accessed upstream Docker images. %{linkStart}More information%{linkEnd}',
),
},
storageUsageQuotaHelpPage: helpPagePath('user/usage_quotas'),
};
</script>
<template>
<div class="gl-display-flex gl-flex-direction-column">
<div class="gl-display-flex gl-align-items-center gl-py-3">
<div
class="gl-display-flex gl-xs-flex-direction-column gl-justify-content-space-between gl-align-items-stretch gl-flex-grow-1"
>
<div class="gl-display-flex gl-flex-direction-column gl-xs-mb-3 gl-min-w-0 gl-flex-grow-1">
<div
v-if="$slots['left-primary-text']"
class="gl-display-flex gl-align-items-center gl-text-body gl-font-weight-bold gl-min-h-6 gl-min-w-0"
>
<slot name="left-primary-text"></slot>
</div>
<div
v-if="$slots['left-secondary-text']"
class="gl-display-flex gl-align-items-center gl-text-gray-500 gl-min-h-6 gl-min-w-0 gl-flex-grow-1 gl-w-70p gl-md-max-w-70p"
>
<slot name="left-secondary-text"></slot>
</div>
</div>
<div
class="gl-display-flex gl-flex-direction-column gl-sm-align-items-flex-end gl-justify-content-space-between gl-text-gray-500 gl-flex-shrink-0"
>
<div
v-if="$slots['right-primary-text']"
class="gl-display-flex gl-align-items-center gl-sm-text-body gl-sm-font-weight-bold gl-min-h-6"
>
<slot name="right-primary-text"></slot>
</div>
<div
v-if="$slots['right-secondary-text']"
class="gl-display-flex gl-align-items-center gl-min-h-6"
>
<slot v-if="!loading" name="right-secondary-text"></slot>
<gl-skeleton-loader v-else :width="60" :lines="1" />
</div>
</div>
</div>
</div>
</div>
</template>