Skip to content

Commit e9af1ef

Browse files
authored
fix types in ApiPagination component and store (#1291)
1 parent a9432a0 commit e9af1ef

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

Diff for: src/lib/holocene/api-pagination.svelte

+19-10
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,35 @@
33
import FilterSelect from '$lib/holocene/select/filter-select.svelte';
44
import SkeletonTable from '$lib/holocene/skeleton/table.svelte';
55
6-
import { createPaginationStore } from '$lib/stores/api-pagination';
6+
import {
7+
createPaginationStore,
8+
type PaginationStore,
9+
} from '$lib/stores/api-pagination';
710
import { options } from '$lib/stores/pagination';
811
import { isError } from '$lib/utilities/is';
912
import { onMount } from 'svelte';
1013
1114
import type { HTMLAttributes } from 'svelte/elements';
1215
16+
type T = $$Generic;
1317
interface $$Props extends HTMLAttributes<HTMLDivElement> {
1418
onError?: (error: Error | unknown) => void | undefined;
15-
onFetch: <T>() => Promise<PaginatedRequest<T>>;
19+
onFetch: () => Promise<PaginatedRequest<T>>;
1620
onShiftUp?: (event: KeyboardEvent) => void | undefined;
1721
onShiftDown?: (event: KeyboardEvent) => void | undefined;
1822
onSpace?: (event: KeyboardEvent) => void | undefined;
1923
pageSizeOptions?: string[] | number[];
2024
defaultPageSize?: string | number | undefined;
2125
total?: string | number;
2226
}
27+
2328
type PaginatedRequest<T> = (
2429
size: number,
25-
token: NextPageToken,
26-
) => Promise<{ items: T[]; nextPageToken: NextPageToken }>;
30+
token: string,
31+
) => Promise<{ items: T[]; nextPageToken: string }>;
2732
2833
export let onError: (error: Error) => void | undefined = undefined;
29-
export let onFetch: <T>() => Promise<PaginatedRequest<T>>;
34+
export let onFetch: () => Promise<PaginatedRequest<T>>;
3035
export let onShiftUp: (event: KeyboardEvent) => void | undefined = undefined;
3136
export let onShiftDown: (event: KeyboardEvent) => void | undefined =
3237
undefined;
@@ -36,7 +41,11 @@
3641
export let defaultPageSize: string | number | undefined = undefined;
3742
export let total: string | number = '';
3843
39-
let store = createPaginationStore(pageSizeOptions, defaultPageSize);
44+
let store: PaginationStore<T> = createPaginationStore(
45+
pageSizeOptions,
46+
defaultPageSize,
47+
);
48+
4049
let error: Error;
4150
4251
function clearError() {
@@ -58,8 +67,8 @@
5867
}
5968
}
6069
61-
async function initalDataFetch<T>() {
62-
const fetchData = await onFetch<T>();
70+
async function initalDataFetch() {
71+
const fetchData = await onFetch();
6372
try {
6473
const response = await fetchData($store.pageSize, '');
6574
const { items, nextPageToken } = response;
@@ -70,12 +79,12 @@
7079
}
7180
}
7281
73-
async function fetchIndexData<T>() {
82+
async function fetchIndexData() {
7483
clearError();
7584
store.setUpdating();
7685
if (!$store.hasNextIndexData) {
7786
try {
78-
const fetchData = await onFetch<T>();
87+
const fetchData = await onFetch();
7988
const response = await fetchData(
8089
$store.pageSize,
8190
$store.indexData[$store.index].nextToken,

Diff for: src/lib/stores/api-pagination.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
import type { Readable } from 'svelte/store';
1111

1212
type PaginationMethods<T> = {
13-
nextPageWithItems: (t: NextPageToken, items: T[]) => void;
13+
nextPageWithItems: (t: string, items: T[]) => void;
1414
nextPage: () => void;
1515
previousPage: () => void;
1616
setUpdating: () => void;

0 commit comments

Comments
 (0)