+
+
+
+ setStartDate(e.target.value)}
+ />
+
+
+
+ setEndDate(e.target.value)}
+ />
+
+
+
+
+
+
+
+
+
+ {(startDate || endDate || method || kind) && (
+
+ )}
+
+
+
+ {total} payment{total !== 1 ? "s" : ""} total
+ {total > 0 && ` — page ${page} of ${totalPages}`}
+
+
+
+
+ {totalPages > 1 && (
+
+
Page {page} of {totalPages}
+
+
+ {Array.from({ length: totalPages }, (_, i) => i + 1)
+ .filter(p => p === 1 || p === totalPages || Math.abs(p - page) <= 1)
+ .reduce<(number | "…")[]>((acc, p, i, arr) => {
+ if (i > 0 && (p as number) - (arr[i - 1] as number) > 1) acc.push("…");
+ acc.push(p);
+ return acc;
+ }, [])
+ .map((p, i) =>
+ p === "…" ? (
+ …
+ ) : (
+
+ )
+ )}
+
+
+
+ )}
+