import { Component, computed, inject } from '@angular/core'; import { PageShellComponent } from '@shared/layout/page-shell/page-shell.component'; import { AlertComponent } from '@shared/ui/alert/alert.component'; import { ASYNC } from '@shared/ui/async/async.component'; import { map } from '@shared/application/remote-data'; import { BigProfileStore } from '@registratie/application/big-profile.store'; import { HerregistratieWizardComponent } from '@herregistratie/ui/herregistratie-wizard/herregistratie-wizard.component'; /** A whole new page built from existing building blocks. Eligibility is a SERVER-computed decision read from the aggregated view — the frontend renders it, it does not recompute the rule. */ @Component({ selector: 'app-herregistratie-page', imports: [PageShellComponent, AlertComponent, ...ASYNC, HerregistratieWizardComponent], template: ` @if (eligible) { Uw huidige registratie verloopt binnenkort. Vraag tijdig herregistratie aan.
} @else { Voor uw huidige registratiestatus is herregistratie niet mogelijk. }
`, }) export class HerregistratiePage { private store = inject(BigProfileStore); // The eligibility decision comes from the server (decisions block), not a // client-side rule. The UI just reads the boolean. protected eligibility = computed(() => map(this.store.decisions(), (d) => d.eligibleForHerregistratie), ); }