Revived the page! He's baaaaack

This commit is contained in:
2026-01-27 10:01:41 -05:00
parent 7c7cbef3f3
commit 67562f56aa
9 changed files with 469 additions and 95 deletions

View File

@@ -1,4 +1,4 @@
import { memberSettings, Member, MemberLight, MemberCardDetails } from "@shared/types/member";
import { memberSettings, Member, MemberLight, MemberCardDetails, PaginatedMembers } from "@shared/types/member";
// @ts-ignore
const addr = import.meta.env.VITE_APIHOST;
@@ -13,6 +13,33 @@ export async function getMembers(): Promise<Member[]> {
return response.json();
}
export async function getMembersFiltered(params: {
page?: number;
pageSize?: number;
search?: string;
status?: string;
unitId?: string;
} = {}): Promise<PaginatedMembers> {
// Construct the query string dynamically
const query = new URLSearchParams();
if (params.page) query.append('page', params.page.toString());
if (params.pageSize) query.append('pageSize', params.pageSize.toString());
if (params.search) query.append('search', params.search);
if (params.status && params.status !== 'all') query.append('status', params.status);
if (params.unitId && params.unitId !== 'all') query.append('unitId', params.unitId);
const response = await fetch(`${addr}/members/filtered?${query.toString()}`, {
credentials: 'include'
});
if (!response.ok) {
throw new Error("Failed to fetch members");
}
return response.json();
}
export async function getMemberSettings(): Promise<memberSettings> {
const response = await fetch(`${addr}/members/settings`, {
credentials: 'include'