Skip to content

Commit 46ec85a

Browse files
committed
changes from comments on pr
1 parent f798977 commit 46ec85a

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

widgets/src/_standalone/ProcessOverview/index.svelte

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script lang="ts">
22
import Spinner from './Icons/Spinner.svelte';
33
import ExclamationMark from './Icons/ExclamationMark.svelte';
4-
import { type ProgressData, type Column } from '$lib/types';
4+
import { type ProgressData, type Column, type RawData } from '$lib/types';
55
import Table from '$lib/Table.svelte';
66
import { t, config } from './config';
77
import ErrorBanner from '$lib/ErrorBanner.svelte';
@@ -20,15 +20,22 @@
2020
let size: number = $state(parseInt(page_size));
2121
let page: number = $state(getCurrentPage());
2222
23+
function parseInteger(int: string | null): number | null {
24+
if (int) {
25+
return Number(int);
26+
}
27+
return null;
28+
}
29+
2330
function getCurrentPage(): number {
2431
const url = new URL(document.location.href);
25-
const page = Number(url.searchParams.get('page')) || null;
32+
const page = parseInteger(url.searchParams.get('page'));
2633
return page ?? 1;
2734
}
2835
function getCurrentFilter(): number | null {
2936
const url = new URL(document.location.href);
30-
const failedAt = Number(url.searchParams.get('failed_at')) || null;
31-
return failedAt ?? null;
37+
const failedAt = parseInteger(url.searchParams.get('failed_at'));
38+
return failedAt;
3239
}
3340
3441
function updateUrl(): void {
@@ -57,11 +64,11 @@
5764
url.searchParams.set('size', String(size));
5865
fetch(url.toString())
5966
.then((response) => response.json())
60-
.then(({ data: recievedData, meta }) => {
67+
.then(({ data: recievedData, meta }: { data: ProgressData | null; meta: RawData }) => {
6168
if (recievedData) {
6269
total = meta?.total ?? null;
6370
data = recievedData;
64-
filters = data.columns.filter(({ type }) => 'step' === type);
71+
filters = recievedData.columns.filter(({ type }) => 'step' === type);
6572
}
6673
fetching = false;
6774
})
@@ -74,8 +81,9 @@
7481
});
7582
7683
function selectFilter(event: Event): void {
84+
// Page is reset on filters, so when filtered we start from scratch, and not accidentally end up on a page that has no content
7785
page = 1;
78-
selectedFilter = Number((event.target as HTMLInputElement).value) || null;
86+
selectedFilter = parseInteger((event.target as HTMLInputElement).value);
7987
}
8088
</script>
8189

widgets/src/lib/types.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export type Column = {
1212
};
1313

1414
type Failure = {
15-
code: Number;
15+
code: number;
1616
message: string;
1717
occurred_at: Date;
1818
retryable: Boolean;
@@ -51,10 +51,10 @@ type Item = {
5151
};
5252

5353
export type RawData = {
54-
page: Number;
55-
pages: Number;
56-
size: Number;
57-
total: Number;
54+
page: number;
55+
pages: number;
56+
size: number;
57+
total: number;
5858
items: Item[];
5959
};
6060

0 commit comments

Comments
 (0)