diff options
Diffstat (limited to 'app/assets/javascripts/releases/components/releases_pagination_apollo_client.vue')
-rw-r--r-- | app/assets/javascripts/releases/components/releases_pagination_apollo_client.vue | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/app/assets/javascripts/releases/components/releases_pagination_apollo_client.vue b/app/assets/javascripts/releases/components/releases_pagination_apollo_client.vue new file mode 100644 index 00000000000..73339677a4b --- /dev/null +++ b/app/assets/javascripts/releases/components/releases_pagination_apollo_client.vue @@ -0,0 +1,37 @@ +<script> +import { GlKeysetPagination } from '@gitlab/ui'; +import { isBoolean } from 'lodash'; +import { historyPushState, buildUrlWithCurrentLocation } from '~/lib/utils/common_utils'; + +export default { + name: 'ReleasesPaginationApolloClient', + components: { GlKeysetPagination }, + props: { + pageInfo: { + type: Object, + required: true, + validator: (info) => isBoolean(info.hasPreviousPage) && isBoolean(info.hasNextPage), + }, + }, + methods: { + onPrev(before) { + historyPushState(buildUrlWithCurrentLocation(`?before=${before}`)); + }, + onNext(after) { + historyPushState(buildUrlWithCurrentLocation(`?after=${after}`)); + }, + }, +}; +</script> +<template> + <div class="gl-display-flex gl-justify-content-center"> + <gl-keyset-pagination + v-bind="pageInfo" + :prev-text="__('Prev')" + :next-text="__('Next')" + v-on="$listeners" + @prev="onPrev($event)" + @next="onNext($event)" + /> + </div> +</template> |