generalDataStore.ts
4 months ago
index.ts
1 year ago
integrationsStore.ts
4 months ago
modalStore.ts
1 year ago
pagesStore.ts
5 months ago
pagesStore.ts
36 lines
| 1 | import { defineStore } from 'pinia'; |
| 2 | |
| 3 | import { useServerPagination } from '@/composables/useServerPagination'; |
| 4 | import { pagesRepo } from '@/data/repositories/pagesRepo'; |
| 5 | import { STORE_PERSISTENT_KEYS } from '@/types/enums'; |
| 6 | import type { WordPressPage } from '@/types/models/pagesModels'; |
| 7 | |
| 8 | export const usePagesStore = defineStore( |
| 9 | 'pagesStore', |
| 10 | () => { |
| 11 | const serverPagination = useServerPagination<WordPressPage>( |
| 12 | async (page: number, perPage: number) => |
| 13 | await pagesRepo.getPagesWithSubscriptionBlock({ page, perPage }, undefined), |
| 14 | { |
| 15 | itemsPerPage: 5, |
| 16 | initialPage: 1, |
| 17 | autoLoad: true |
| 18 | } |
| 19 | ); |
| 20 | |
| 21 | const resetToFirstPage = async () => { |
| 22 | await serverPagination.goToPage(1); |
| 23 | }; |
| 24 | |
| 25 | return { |
| 26 | pages: serverPagination.items, |
| 27 | isPagesLoading: serverPagination.isLoading, |
| 28 | resetToFirstPage, |
| 29 | ...serverPagination |
| 30 | }; |
| 31 | }, |
| 32 | { |
| 33 | persist: { key: STORE_PERSISTENT_KEYS.PAGES_STORE } |
| 34 | } |
| 35 | ); |
| 36 |