added footer with legal and contact

This commit is contained in:
z1glr
2025-01-07 20:54:02 +00:00
parent c3bc06fe82
commit f0ad6a3b64
8 changed files with 159 additions and 11 deletions

View File

@@ -1,29 +1,31 @@
type QueryParams = Record<string, string | { toString(): string }>;
export type APICallResult<T extends object> = Response & { json: () => Promise<T> };
export type APICallResult<T extends object> = Response & {
json: () => Promise<T>;
};
export async function apiCall<K extends object>(
method: "GET",
api: string,
params?: QueryParams
params?: QueryParams,
): Promise<APICallResult<K>>;
export async function apiCall<K extends object>(
method: "POST" | "PATCH",
api: string,
params?: QueryParams,
body?: object
body?: object,
): Promise<APICallResult<K>>;
export async function apiCall<K extends object>(
method: "DELETE",
api: string,
params?: QueryParams,
body?: object
body?: object,
): Promise<APICallResult<K>>;
export async function apiCall<K extends object>(
method: "GET" | "POST" | "PATCH" | "DELETE",
api: string,
params?: QueryParams,
body?: object
body?: object,
): Promise<APICallResult<K>> {
let url = window.origin + "/api/" + api;
@@ -36,8 +38,8 @@ export async function apiCall<K extends object>(
} else {
return [key, value];
}
})
)
}),
),
);
url += "?" + urlsearchparams.toString();
@@ -45,12 +47,22 @@ export async function apiCall<K extends object>(
const response = await fetch(url, {
headers: {
"Content-Type": "application/json; charset=UTF-8"
"Content-Type": "application/json; charset=UTF-8",
},
credentials: "include",
method,
body: body !== undefined ? JSON.stringify(body) : undefined
body: body !== undefined ? JSON.stringify(body) : undefined,
});
return response;
}
}
export function classNames(classNames: Record<string, boolean>): string {
return Object.entries(classNames)
.map(([classString, value]) => {
if (value) {
return classString;
}
})
.join(" ");
}