RD-03 moved the dashboard page to overzicht/ui/overzicht.page.ts and left four sections in registratie/ui/dashboard/. The folder was named after a page that lives in another context. A reader who opened it found four sections that are not the dashboard. The folder is now overzicht-secties/ — registratie's sections for the overzicht page. The alias does not change, because the sections stay in the registratie context. The story titles do not change, because they name the context. Five documents cited registratie/ui/dashboard.page.ts, a file that RD-03 renamed. They now name overzicht.page.ts, or the section that owns the behaviour they describe. The /dashboard route keeps its path. It is a user-visible URL. npm run ci --full passes: 67 and 45 storybook suites, 306 axe tests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
72 lines
2.6 KiB
TypeScript
72 lines
2.6 KiB
TypeScript
import { Component, inject } from '@angular/core';
|
|
import { successOf } from '@shared/application/remote-data';
|
|
import { HeadingComponent } from '@shared/ui/atoms/heading/heading.component';
|
|
import { SkeletonComponent } from '@shared/ui/atoms/skeleton/skeleton.component';
|
|
import { DataBlockComponent } from '@shared/ui/molecules/data-block/data-block.component';
|
|
import { DataRowComponent } from '@shared/ui/molecules/data-row/data-row.component';
|
|
import { ASYNC } from '@shared/ui/molecules/async/async.component';
|
|
import { BigProfileStore } from '@registratie/application/big-profile.store';
|
|
import { RegistrationSummaryComponent } from '@registratie/ui/registration-summary/registration-summary.component';
|
|
|
|
/** Section: "Mijn registratie" — the BIG-register summary plus the BRP
|
|
persoonsgegevens, both from the one screen-shaped dashboard call
|
|
(BigProfileStore). */
|
|
@Component({
|
|
selector: 'app-mijn-registratie-section',
|
|
imports: [
|
|
HeadingComponent,
|
|
SkeletonComponent,
|
|
DataBlockComponent,
|
|
DataRowComponent,
|
|
RegistrationSummaryComponent,
|
|
...ASYNC,
|
|
],
|
|
template: `
|
|
<app-async [data]="store.profile()" (retryClicked)="store.reloadProfile()">
|
|
<ng-template appAsyncLoaded>
|
|
@if (profile(); as p) {
|
|
<section>
|
|
<app-heading [level]="2" i18n="@@dashboard.mijnRegistratie"
|
|
>Mijn registratie</app-heading
|
|
>
|
|
<div class="app-section">
|
|
<app-registration-summary [reg]="p.registration" />
|
|
</div>
|
|
<app-data-block
|
|
class="app-section"
|
|
i18n-heading="@@dashboard.persoonsgegevens"
|
|
heading="Persoonsgegevens (BRP)"
|
|
>
|
|
<div
|
|
app-data-row
|
|
i18n-key="@@dashboard.straat"
|
|
key="Straat"
|
|
[value]="p.person.adres.straat"
|
|
></div>
|
|
<div
|
|
app-data-row
|
|
i18n-key="@@dashboard.postcode"
|
|
key="Postcode"
|
|
[value]="p.person.adres.postcode"
|
|
></div>
|
|
<div
|
|
app-data-row
|
|
i18n-key="@@dashboard.woonplaats"
|
|
key="Woonplaats"
|
|
[value]="p.person.adres.woonplaats"
|
|
></div>
|
|
</app-data-block>
|
|
</section>
|
|
}
|
|
</ng-template>
|
|
<ng-template appAsyncLoading>
|
|
<app-skeleton height="2.5rem" [count]="4" />
|
|
</ng-template>
|
|
</app-async>
|
|
`,
|
|
})
|
|
export class MijnRegistratieSection {
|
|
protected store = inject(BigProfileStore);
|
|
protected profile = () => successOf(this.store.profile());
|
|
}
|