diff --git a/CHANGELOG.md b/CHANGELOG.md index ba4c6e55ed3..470f90e6458 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## 0.4.30 +* `Pagination`: + * New variable `defaultPaginationPageSize` has been added to be able to change default pagination size + * Add new value `firstPageWithOneElementPagination` + ## 0.4.29 * `Versions`: diff --git a/pagination/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/SimplePagination.kt b/pagination/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/SimplePagination.kt index eb4bb6aabd8..fed71b34d72 100644 --- a/pagination/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/SimplePagination.kt +++ b/pagination/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/SimplePagination.kt @@ -7,14 +7,17 @@ const val defaultMediumPageSize = 5 const val defaultLargePageSize = 10 const val defaultExtraLargePageSize = 15 +var defaultPaginationPageSize = defaultMediumPageSize + @Suppress("NOTHING_TO_INLINE", "FunctionName") -inline fun FirstPagePagination(size: Int = defaultMediumPageSize) = +inline fun FirstPagePagination(size: Int = defaultPaginationPageSize) = SimplePagination( page = 0, size = size ) val emptyPagination = Pagination(0, 0) +val firstPageWithOneElementPagination = FirstPagePagination(1) @Suppress("NOTHING_TO_INLINE") inline fun Pagination.nextPage() = diff --git a/pagination/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/utils/PaginatedIterable.kt b/pagination/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/utils/PaginatedIterable.kt index 26bf118ad54..e2f52f31d3e 100644 --- a/pagination/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/utils/PaginatedIterable.kt +++ b/pagination/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/utils/PaginatedIterable.kt @@ -36,6 +36,6 @@ class PaginatedIterable( @Suppress("NOTHING_TO_INLINE") inline fun makeIterable( noinline countGetter: () -> Long, - pageSize: Int = defaultMediumPageSize, + pageSize: Int = defaultPaginationPageSize, noinline paginationResultGetter: Pagination.() -> PaginationResult ): Iterable = PaginatedIterable(pageSize, countGetter, paginationResultGetter) diff --git a/pagination/ktor/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/PaginationInUrl.kt b/pagination/ktor/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/PaginationInUrl.kt index 5373489bf32..890927abad0 100644 --- a/pagination/ktor/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/PaginationInUrl.kt +++ b/pagination/ktor/common/src/commonMain/kotlin/dev/inmo/micro_utils/pagination/PaginationInUrl.kt @@ -18,6 +18,6 @@ val Pagination.asUrlQueryArrayParts val Map.extractPagination: Pagination get() = SimplePagination( get(paginationPageKey) ?.toIntOrNull() ?: 0, - get(paginationSizeKey) ?.toIntOrNull() ?: defaultMediumPageSize + get(paginationSizeKey) ?.toIntOrNull() ?: defaultPaginationPageSize ) diff --git a/pagination/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/pagination/ServerPaginationHelpers.kt b/pagination/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/pagination/ServerPaginationHelpers.kt index fee4d0be64a..744cc4e39dc 100644 --- a/pagination/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/pagination/ServerPaginationHelpers.kt +++ b/pagination/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/pagination/ServerPaginationHelpers.kt @@ -6,7 +6,7 @@ import io.ktor.http.Parameters val Parameters.extractPagination: Pagination get() = SimplePagination( get("page") ?.toIntOrNull() ?: 0, - get("size") ?.toIntOrNull() ?: defaultMediumPageSize + get("size") ?.toIntOrNull() ?: defaultPaginationPageSize ) val ApplicationCall.extractPagination: Pagination