diff options
Diffstat (limited to 'app/assets/javascripts/vue_merge_request_widget/components/states/new_ready_to_merge.vue')
-rw-r--r-- | app/assets/javascripts/vue_merge_request_widget/components/states/new_ready_to_merge.vue | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/new_ready_to_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/new_ready_to_merge.vue new file mode 100644 index 00000000000..9a7743348ff --- /dev/null +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/new_ready_to_merge.vue @@ -0,0 +1,49 @@ +<script> +import mergeRequestQueryVariablesMixin from '../../mixins/merge_request_query_variables'; +import readyToMergeQuery from '../../queries/states/new_ready_to_merge.query.graphql'; +import StatusIcon from '../mr_widget_status_icon.vue'; + +export default { + apollo: { + canMerge: { + query: readyToMergeQuery, + skip() { + return !this.mr || !window.gon?.features?.mergeRequestWidgetGraphql; + }, + variables() { + return this.mergeRequestQueryVariables; + }, + update: (data) => data?.project?.mergeRequest?.userPermissions?.canMerge, + }, + }, + components: { + StatusIcon, + }, + mixins: [mergeRequestQueryVariablesMixin], + props: { + mr: { + type: Object, + required: true, + }, + }, + data() { + return { + canMerge: null, + }; + }, +}; +</script> + +<template> + <div class="mr-widget-body media"> + <status-icon status="success" /> + <p class="media-body gl-m-0! gl-font-weight-bold"> + <template v-if="canMerge"> + {{ __('Ready to merge!') }} + </template> + <template v-else> + {{ __('Ready to merge by members who can write to the target branch.') }} + </template> + </p> + </div> +</template> |