Show family members list

This commit is contained in:
2023-08-16 10:14:18 +02:00
parent d0cfc0e981
commit b39122cc43
5 changed files with 191 additions and 1 deletions

View File

@@ -1,4 +1,5 @@
import { APIClient } from "./ApiClient";
import { Member } from "./MemberApi";
interface FamilyAPI {
user_id: number;
@@ -52,6 +53,15 @@ export class Family implements FamilyAPI {
get BaseURL(): string {
return this.URL("");
}
/**
* Get application URL for member page
*/
memberURL(member: Member, edit?: boolean): string {
return (
`/family/${this.family_id}/member/${member.id}` + (edit ? "/edit" : "")
);
}
}
export enum JoinFamilyResult {

View File

@@ -171,6 +171,15 @@ export function fmtDate(d?: DateValue): string {
}/${d?.year?.toString().padStart(4, "0") ?? "__"}`;
}
const OLD_TIME = -58991812735;
export function dateTimestamp(d?: DateValue): number {
if (!d) return OLD_TIME;
const date = new Date();
date.setFullYear(d.year ?? 1010, (d.month ?? 1) - 1, d.day ?? 1);
return date.getTime() / 1000;
}
export class MembersList {
private list: Member[];
private map: Map<number, Member>;
@@ -184,6 +193,14 @@ export class MembersList {
}
}
public get isEmpty(): boolean {
return this.list.length === 0;
}
public get fullList(): Member[] {
return this.list;
}
filter(predicate: (m: Member) => boolean): Member[] {
return this.list.filter(predicate);
}