diff --git a/packages/web-app-files/src/components/AppBar/ViewOptions.vue b/packages/web-app-files/src/components/AppBar/ViewOptions.vue index 4eef7af04c3..c7dba42825e 100644 --- a/packages/web-app-files/src/components/AppBar/ViewOptions.vue +++ b/packages/web-app-files/src/components/AppBar/ViewOptions.vue @@ -39,7 +39,7 @@
  • import { mapMutations, mapState, mapActions } from 'vuex' +import { watch } from '@vue/composition-api' +import { useRouteQuery, useDefaults } from '../../composables' export default { + setup() { + const { pagination: paginationDefaults } = useDefaults() + const itemsPerPage = useRouteQuery('items-per-page', paginationDefaults.perPage.value) + watch(itemsPerPage, (v) => { + paginationDefaults.perPage.value = v + }) + + return { + itemsPerPage + } + }, computed: { ...mapState('Files', ['areHiddenFilesShown']), ...mapState('Files/sidebar', { sidebarClosed: 'closed' }), - ...mapState('Files/pagination', ['itemsPerPage']), viewOptionsButtonLabel() { return this.$gettext('Display customization options of the files list') @@ -81,44 +93,11 @@ export default { set(value) { this.SET_HIDDEN_FILES_VISIBILITY(value) } - }, - - itemsPerPageModel: { - get() { - return this.itemsPerPage - }, - - set(value) { - this.updateQuery(value) - } - } - }, - - watch: { - $route: { - handler(route) { - if (Object.prototype.hasOwnProperty.call(route.query, 'items-per-page')) { - this.SET_ITEMS_PER_PAGE(route.query['items-per-page']) - - return - } - - this.updateQuery() - }, - immediate: true } }, methods: { ...mapMutations('Files', ['SET_HIDDEN_FILES_VISIBILITY']), - ...mapActions('Files/sidebar', { toggleSidebar: 'toggle' }), - ...mapMutations('Files/pagination', ['SET_ITEMS_PER_PAGE']), - - updateQuery(limit = this.itemsPerPageModel) { - const query = { ...this.$route.query, 'items-per-page': limit } - - this.SET_ITEMS_PER_PAGE(limit) - this.$router.replace({ query }).catch(() => {}) - } + ...mapActions('Files/sidebar', { toggleSidebar: 'toggle' }) } } diff --git a/packages/web-app-files/src/components/FilesList/Pagination.vue b/packages/web-app-files/src/components/FilesList/Pagination.vue index 6465443d32b..c9bfb5c1ac0 100644 --- a/packages/web-app-files/src/components/FilesList/Pagination.vue +++ b/packages/web-app-files/src/components/FilesList/Pagination.vue @@ -10,12 +10,16 @@ diff --git a/packages/web-app-files/src/components/Search/List.vue b/packages/web-app-files/src/components/Search/List.vue index 4f8b9d9f137..aebc6a57c13 100644 --- a/packages/web-app-files/src/components/Search/List.vue +++ b/packages/web-app-files/src/components/Search/List.vue @@ -1,6 +1,6 @@