75 lines
2.4 KiB
HTML
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>
|
|
}
|