gitlab-org--gitlab-foss/app/assets/javascripts/ide/components/panes/right.vue

55 lines
1.4 KiB
Vue

<script>
import { mapGetters, mapState } from 'vuex';
import { __ } from '~/locale';
import CollapsibleSidebar from './collapsible_sidebar.vue';
import { rightSidebarViews } from '../../constants';
import PipelinesList from '../pipelines/list.vue';
import JobsDetail from '../jobs/detail.vue';
import Clientside from '../preview/clientside.vue';
export default {
name: 'RightPane',
components: {
CollapsibleSidebar,
},
props: {
extensionTabs: {
type: Array,
required: false,
default: () => [],
},
},
computed: {
...mapState(['currentMergeRequestId', 'clientsidePreviewEnabled']),
...mapGetters(['packageJson']),
showLivePreview() {
return this.packageJson && this.clientsidePreviewEnabled;
},
rightExtensionTabs() {
return [
{
show: true,
title: __('Pipelines'),
views: [
{ component: PipelinesList, ...rightSidebarViews.pipelines },
{ component: JobsDetail, ...rightSidebarViews.jobsDetail },
],
icon: 'rocket',
},
{
show: this.showLivePreview,
title: __('Live preview'),
views: [{ component: Clientside, ...rightSidebarViews.clientSidePreview }],
icon: 'live-preview',
},
...this.extensionTabs,
];
},
},
};
</script>
<template>
<collapsible-sidebar :extension-tabs="rightExtensionTabs" side="right" :width="350" />
</template>