website cleanup

This commit is contained in:
2025-12-24 21:44:58 +01:00
parent 9b683a59d3
commit d78854a4c6
277 changed files with 6141 additions and 2693 deletions

View File

@@ -1,9 +1,18 @@
import type { TeamMemberDTO } from '@/lib/types/generated/GetTeamMembersOutputDTO';
import type { TeamMemberDTO } from '@/lib/types/generated/TeamMemberDTO';
type TeamMemberRole = 'owner' | 'manager' | 'member';
function normalizeTeamRole(role: string): TeamMemberRole {
if (role === 'owner' || role === 'manager' || role === 'member') return role;
// Backwards compatibility
if (role === 'admin') return 'manager';
return 'member';
}
export class TeamMemberViewModel {
driverId: string;
driverName: string;
role: 'owner' | 'admin' | 'member';
role: TeamMemberRole;
joinedAt: string;
isActive: boolean;
avatarUrl: string;
@@ -14,7 +23,7 @@ export class TeamMemberViewModel {
constructor(dto: TeamMemberDTO, currentUserId: string, teamOwnerId: string) {
this.driverId = dto.driverId;
this.driverName = dto.driverName;
this.role = dto.role;
this.role = normalizeTeamRole(dto.role);
this.joinedAt = dto.joinedAt;
this.isActive = dto.isActive;
this.avatarUrl = dto.avatarUrl;
@@ -26,7 +35,7 @@ export class TeamMemberViewModel {
get roleBadgeVariant(): string {
switch (this.role) {
case 'owner': return 'primary';
case 'admin': return 'secondary';
case 'manager': return 'secondary';
case 'member': return 'default';
default: return 'default';
}
@@ -51,4 +60,4 @@ export class TeamMemberViewModel {
get formattedJoinedAt(): string {
return new Date(this.joinedAt).toLocaleDateString();
}
}
}