Files
Toju/toju-app/src/app/features/direct-call/private-call-participant-card.component.ts

34 lines
1.1 KiB
TypeScript

import { Component, input } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NgIcon, provideIcons } from '@ng-icons/core';
import { lucideWifiOff } from '@ng-icons/lucide';
import type { User } from '../../shared-kernel';
@Component({
selector: 'app-private-call-participant-card',
standalone: true,
imports: [CommonModule, NgIcon],
viewProviders: [provideIcons({ lucideWifiOff })],
host: { class: 'block min-w-0' },
templateUrl: './private-call-participant-card.component.html'
})
export class PrivateCallParticipantCardComponent {
readonly user = input.required<User>();
readonly connected = input.required<boolean>();
readonly speaking = input.required<boolean>();
readonly issueLabel = input<string | null>(null);
readonly compact = input(false);
avatarSize(): string {
return this.compact() ? '5.75rem' : 'clamp(6.5rem, 38vw, 13rem)';
}
avatarSizeSm(): string {
return this.compact() ? '6rem' : 'clamp(4.25rem, 22vw, 10rem)';
}
participantInitial(): string {
return this.user().displayName.charAt(0).toUpperCase() || '?';
}
}