diff --git a/pagination/PaginationStore.ts b/pagination/PaginationStore.ts new file mode 100644 index 0000000..eae75df --- /dev/null +++ b/pagination/PaginationStore.ts @@ -0,0 +1,37 @@ +import { action, observable } from 'mobx' + +export interface PaginationResponse { + items: T[] + itemsCount: number + pagesCount: number +} + +class PaginationStore { + @observable + page: number = 1 + @observable + pageSize: number = 30 + @observable + filter: string = '' + + @action + changePage = (page: number = 1, pageSize: number = 30) => { + this.page = page + this.pageSize = pageSize + } + + @action + search = (filter: string) => { + this.filter = filter + this.page = 1 + } + + @action + reset = () => { + this.page = 1 + this.pageSize = 30 + this.filter = '' + } +} + +export default PaginationStore