Type changes and coercions, spelling, @ts, and @eslint fixes

This commit is contained in:
luke-hagar-sp
2024-01-17 13:05:35 -06:00
parent b5f2585f36
commit a9a4950c1b
8 changed files with 136 additions and 67 deletions

View File

@@ -1,12 +1,10 @@
import { goto } from '$app/navigation';
export function formatDate(date: string | null | undefined) {
if (!date) return 'N/A';
return new Date(date).toLocaleString();
}
export function getOffset(url: URL) {
return url.searchParams.get('offset') || '0';
}
export function getLimit(url: URL) {
return url.searchParams.get('limit') || '10';
}
@@ -25,10 +23,60 @@ export function getPage(url: URL) {
export function getPaginationParams(url: URL) {
return {
offset: getOffset(url),
limit: getLimit(url),
page: getPage(url),
filters: getFilters(url),
sorters: getSorters(url)
};
}
type PaginationParams = {
limit: string;
page: string;
filters: string;
sorters: string;
};
export function createOnPageChange(params: PaginationParams, path: string) {
return function onPageChange(e: CustomEvent): void {
const urlParams = new URLSearchParams();
urlParams.set('page', e.detail);
urlParams.set('limit', params.limit);
urlParams.set('sorters', params.sorters);
urlParams.set('filters', params.filters);
console.log(`${path}?${urlParams.toString()}`);
goto(`${path}?${urlParams.toString()}`);
};
}
export function createOnAmountChange(params: PaginationParams, path: string) {
return function onAmountChange(e: CustomEvent): void {
const urlParams = new URLSearchParams();
urlParams.set('page', params.page);
urlParams.set('limit', e.detail);
urlParams.set('sorters', params.sorters);
urlParams.set('filters', params.filters);
console.log(`${path}?${urlParams.toString()}`);
goto(`${path}?${urlParams.toString()}`);
};
}
export function createOnGo(params: PaginationParams, path: string) {
return function onGo(e: KeyboardEvent | MouseEvent): void {
if (e.type !== 'click' && (e as KeyboardEvent).key !== 'Enter') return;
const urlParams = new URLSearchParams();
urlParams.set('page', params.page);
urlParams.set('limit', params.limit);
urlParams.set('sorters', params.sorters);
urlParams.set('filters', params.filters);
console.log(`${path}?${urlParams.toString()}`);
goto(`${path}?${urlParams.toString()}`);
};
}