Files
lmnp-organizer/frontend/src/app/app.html
T

75 lines
2.4 KiB
HTML

@if (!isLoggedIn) {
<app-sign-in-page (loginRequested)="login()" />
} @else {
<div class="workspace-shell">
<app-workspace-navigation
[activeTab]="activeTab()"
[username]="username"
[email]="email"
[userInitial]="userInitial()"
(tabSelected)="activeTab.set($event)"
(logoutRequested)="logout()"
/>
<main class="workspace-main">
<header class="mobile-header">
<div class="mobile-brand">
<app-brand-mark class="brand-mark" />
<strong>LMNP Organizer</strong>
</div>
<div class="compact-avatar">{{ userInitial() }}</div>
</header>
<div class="page-container">
@if (activeTab() === 'dashboard') {
<app-dashboard-page
[username]="username"
[email]="email"
[userInitial]="userInitial()"
[apartmentCount]="apartments().length"
[helloMessage]="helloMessage()"
(apartmentsRequested)="activeTab.set('apartments')"
(connectionCheckRequested)="callHelloApi()"
/>
}
@if (activeTab() === 'apartments') {
<app-apartments-page
[apartments]="apartments()"
(deleteRequested)="deleteApartment($event)"
(apartmentSaved)="saveApartment($event)"
/>
}
@if (activeTab() === 'tenants') {
<app-tenants-page
[tenants]="tenants()"
[attachmentError]="tenantAttachmentError()"
(tenantSaved)="saveTenant($event)"
(deleteRequested)="deleteTenant($event)"
(attachmentUploadRequested)="uploadTenantAttachment($event)"
(attachmentDownloadRequested)="downloadTenantAttachment($event)"
/>
}
@if (activeTab() === 'leases') {
<app-leases-page
[leases]="leases()"
[apartments]="apartments()"
[tenants]="tenants()"
(leaseSaved)="saveLease($event)"
(deleteRequested)="deleteLease($event)"
(pdfRequested)="downloadLeasePdf($event)"
/>
}
@if (activeTab() === 'settings') {
<app-settings-page
[username]="username"
[email]="email"
[themePreference]="themePreference()"
(themePreferenceChanged)="themeService.setPreference($event)"
(logoutRequested)="logout()"
/>
}
</div>
</main>
</div>
}