style(registratie): WP-34 — BRP address as datablock, phone in grey fieldset
CI / frontend (push) Successful in 1m53s
CI / storybook-a11y (push) Successful in 4m51s
CI / backend (push) Successful in 1m26s
CI / e2e (push) Successful in 2m51s
CI / semgrep (push) Failing after 28s
CI / api-client-drift (push) Successful in 2m10s

Restyle the contact-change form with house CIBG surfaces instead of hand-rolled
markup: the read-only BRP address now uses app-data-block/app-data-row (grey
datablock), and the phone field sits in a plain <fieldset> inside the existing
.form-horizontal form (inherits the CIBG grey box). No new CSS surfaces; row keys
reuse the address.* i18n ids. Logic/machine/specs unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
eho
2026-07-23 08:05:40 +02:00
co-authored by Claude Opus 4.8
parent 0ea43af7b6
commit 57f6f2f8d8
4 changed files with 94 additions and 55 deletions
@@ -5,7 +5,7 @@ Phase: 7 — refinements
## Why ## Why
The "Mijn gegevens" screen let the user *edit* their address (straat/postcode/woonplaats) and The "Mijn gegevens" screen let the user _edit_ their address (straat/postcode/woonplaats) and
submit it as an adreswijziging. But the BRP (Basisregistratie Personen) is the authority for a submit it as an adreswijziging. But the BRP (Basisregistratie Personen) is the authority for a
person's address — you change it at the municipality, not in a register self-service portal. person's address — you change it at the municipality, not in a register self-service portal.
This WP corrects that: the address is shown **read-only** (rendered from the BRP data the This WP corrects that: the address is shown **read-only** (rendered from the BRP data the
@@ -5,6 +5,8 @@ import { HeadingComponent } from '@shared/ui/heading/heading.component';
import { AlertComponent } from '@shared/ui/alert/alert.component'; import { AlertComponent } from '@shared/ui/alert/alert.component';
import { FormFieldComponent } from '@shared/ui/form-field/form-field.component'; import { FormFieldComponent } from '@shared/ui/form-field/form-field.component';
import { TextInputComponent } from '@shared/ui/text-input/text-input.component'; import { TextInputComponent } from '@shared/ui/text-input/text-input.component';
import { DataBlockComponent } from '@shared/ui/data-block/data-block.component';
import { DataRowComponent } from '@shared/ui/data-row/data-row.component';
import { Adres } from '@registratie/domain/person'; import { Adres } from '@registratie/domain/person';
import { createStore } from '@shared/application/store'; import { createStore } from '@shared/application/store';
import { whenTag } from '@shared/kernel/fp'; import { whenTag } from '@shared/kernel/fp';
@@ -32,21 +34,20 @@ import { createSubmitChangeRequest } from '@registratie/application/submit-chang
AlertComponent, AlertComponent,
FormFieldComponent, FormFieldComponent,
TextInputComponent, TextInputComponent,
DataBlockComponent,
DataRowComponent,
], ],
styles: [ styles: [
` `
.brp { .source {
margin-block-end: var(--rhc-space-max-lg);
}
.brp dt {
font-weight: var(--rhc-text-font-weight-semi-bold);
}
.brp dd {
margin: 0 0 var(--rhc-space-max-sm) 0;
}
.brp .source {
color: var(--rhc-color-grijs-700); color: var(--rhc-color-grijs-700);
font-size: var(--rhc-text-font-size-sm); font-size: var(--rhc-text-font-size-sm);
margin-block-end: var(--rhc-space-max-lg);
}
legend {
padding: 0;
font-weight: var(--rhc-text-font-weight-semi-bold);
margin-block-end: var(--rhc-space-max-md);
} }
`, `,
], ],
@@ -68,14 +69,15 @@ import { createSubmitChangeRequest } from '@registratie/application/submit-chang
<app-heading [level]="2" i18n="@@changeRequest.heading">Contactgegevens wijzigen</app-heading> <app-heading [level]="2" i18n="@@changeRequest.heading">Contactgegevens wijzigen</app-heading>
@if (brpAdres(); as a) { @if (brpAdres(); as a) {
<dl class="brp app-section"> <app-data-block class="app-section" [heading]="brpHeading" [level]="2">
<dt i18n="@@changeRequest.brpAdresLabel">Adres (BRP)</dt> <div app-data-row [key]="straatLabel" [value]="a.straat"></div>
<dd>{{ a.straat }}<br />{{ a.postcode }} {{ a.woonplaats }}</dd> <div app-data-row [key]="postcodeLabel" [value]="a.postcode"></div>
<dd class="source" i18n="@@changeRequest.brpAdresBron"> <div app-data-row [key]="woonplaatsLabel" [value]="a.woonplaats"></div>
</app-data-block>
<p class="source" i18n="@@changeRequest.brpAdresBron">
Uw adres komt uit de Basisregistratie Personen en kan hier niet worden gewijzigd. Wijzig Uw adres komt uit de Basisregistratie Personen en kan hier niet worden gewijzigd. Wijzig
het bij uw gemeente. het bij uw gemeente.
</dd> </p>
</dl>
} }
<form (ngSubmit)="onSubmit()" class="form-horizontal app-section"> <form (ngSubmit)="onSubmit()" class="form-horizontal app-section">
@@ -84,6 +86,8 @@ import { createSubmitChangeRequest } from '@registratie/application/submit-chang
<span class="meta" i18n="@@form.verplichteVelden">* verplichte velden</span> <span class="meta" i18n="@@form.verplichteVelden">* verplichte velden</span>
</div> </div>
</div> </div>
<fieldset>
<legend i18n="@@changeRequest.contactLegend">Contactgegevens</legend>
<app-form-field <app-form-field
i18n-label="@@changeRequest.telefoonLabel" i18n-label="@@changeRequest.telefoonLabel"
label="Telefoonnummer" label="Telefoonnummer"
@@ -102,6 +106,7 @@ import { createSubmitChangeRequest } from '@registratie/application/submit-chang
[ngModelOptions]="{ standalone: true }" [ngModelOptions]="{ standalone: true }"
/> />
</app-form-field> </app-form-field>
</fieldset>
@if (failedError()) { @if (failedError()) {
<app-alert type="error" <app-alert type="error"
@@ -136,6 +141,13 @@ export class ChangeRequestFormComponent {
protected readonly submitLabel = $localize`:@@changeRequest.submit:Wijziging indienen`; protected readonly submitLabel = $localize`:@@changeRequest.submit:Wijziging indienen`;
protected readonly submitBezigLabel = $localize`:@@changeRequest.submitBezig:Bezig met indienen…`; protected readonly submitBezigLabel = $localize`:@@changeRequest.submitBezig:Bezig met indienen…`;
// Datablock heading + row keys (data-block/data-row take plain string inputs, so these
// are $localize fields, not template i18n). Row keys reuse the existing address.* ids.
protected readonly brpHeading = $localize`:@@changeRequest.brpAdresLabel:Adres (BRP)`;
protected readonly straatLabel = $localize`:@@address.straat:Straat en huisnummer`;
protected readonly postcodeLabel = $localize`:@@address.postcode:Postcode`;
protected readonly woonplaatsLabel = $localize`:@@address.woonplaats:Woonplaats`;
private editing = computed(() => whenTag(this.state(), 'Editing')); private editing = computed(() => whenTag(this.state(), 'Editing'));
protected errors = computed(() => this.editing()?.errors ?? {}); protected errors = computed(() => this.editing()?.errors ?? {});
protected failedError = computed(() => whenTag(this.state(), 'Failed')?.error ?? ''); protected failedError = computed(() => whenTag(this.state(), 'Failed')?.error ?? '');
+8
View File
@@ -1318,6 +1318,14 @@
<context context-type="linenumber">40,41</context> <context context-type="linenumber">40,41</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="changeRequest.contactLegend" datatype="html">
<source>Contactgegevens</source>
<target datatype="html">Contact details</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">88</context>
</context-group>
</trans-unit>
<trans-unit id="changeRequest.brpAdresLabel" datatype="html"> <trans-unit id="changeRequest.brpAdresLabel" datatype="html">
<source>Adres (BRP)</source> <source>Adres (BRP)</source>
<target datatype="html">Address (BRP)</target> <target datatype="html">Address (BRP)</target>
+37 -18
View File
@@ -17,7 +17,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">84,86</context> <context context-type="linenumber">86,88</context>
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/shared/layout/wizard-shell/wizard-shell.component.ts</context> <context context-type="sourcefile">src/app/shared/layout/wizard-shell/wizard-shell.component.ts</context>
@@ -1688,7 +1688,7 @@
<source>Voer een geldig telefoonnummer in, bijv. 0612345678.</source> <source>Voer een geldig telefoonnummer in, bijv. 0612345678.</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/domain/value-objects/telefoonnummer.ts</context> <context context-type="sourcefile">src/app/registratie/domain/value-objects/telefoonnummer.ts</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">21</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="validation.uren" datatype="html"> <trans-unit id="validation.uren" datatype="html">
@@ -1753,6 +1753,10 @@
<context context-type="sourcefile">src/app/registratie/ui/address-fields/address-fields.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/address-fields/address-fields.component.ts</context>
<context context-type="linenumber">39,40</context> <context context-type="linenumber">39,40</context>
</context-group> </context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">147</context>
</context-group>
</trans-unit> </trans-unit>
<trans-unit id="address.postcode" datatype="html"> <trans-unit id="address.postcode" datatype="html">
<source>Postcode</source> <source>Postcode</source>
@@ -1760,6 +1764,10 @@
<context context-type="sourcefile">src/app/registratie/ui/address-fields/address-fields.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/address-fields/address-fields.component.ts</context>
<context context-type="linenumber">55,56</context> <context context-type="linenumber">55,56</context>
</context-group> </context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">148</context>
</context-group>
</trans-unit> </trans-unit>
<trans-unit id="address.postcodePlaceholder" datatype="html"> <trans-unit id="address.postcodePlaceholder" datatype="html">
<source>1234 AB</source> <source>1234 AB</source>
@@ -1774,6 +1782,10 @@
<context context-type="sourcefile">src/app/registratie/ui/address-fields/address-fields.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/address-fields/address-fields.component.ts</context>
<context context-type="linenumber">73,74</context> <context context-type="linenumber">73,74</context>
</context-group> </context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">149</context>
</context-group>
</trans-unit> </trans-unit>
<trans-unit id="address.legend" datatype="html"> <trans-unit id="address.legend" datatype="html">
<source>Adres</source> <source>Adres</source>
@@ -1786,70 +1798,77 @@
<source> Uw wijziging is ontvangen (referentie <x id="INTERPOLATION" equiv-text="{{ referentie() }}"/>). U ontvangt binnen 5 werkdagen bericht. </source> <source> Uw wijziging is ontvangen (referentie <x id="INTERPOLATION" equiv-text="{{ referentie() }}"/>). U ontvangt binnen 5 werkdagen bericht. </source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">56,58</context> <context context-type="linenumber">57,59</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="changeRequest.nieuwe" datatype="html"> <trans-unit id="changeRequest.nieuwe" datatype="html">
<source>Nieuwe wijziging doorgeven</source> <source>Nieuwe wijziging doorgeven</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">64,66</context> <context context-type="linenumber">65,67</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="changeRequest.heading" datatype="html"> <trans-unit id="changeRequest.heading" datatype="html">
<source>Contactgegevens wijzigen</source> <source>Contactgegevens wijzigen</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">68,70</context> <context context-type="linenumber">69,71</context>
</context-group>
</trans-unit>
<trans-unit id="changeRequest.brpAdresLabel" datatype="html">
<source>Adres (BRP)</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">72,73</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="changeRequest.brpAdresBron" datatype="html"> <trans-unit id="changeRequest.brpAdresBron" datatype="html">
<source> Uw adres komt uit de Basisregistratie Personen en kan hier niet worden gewijzigd. Wijzig het bij uw gemeente. </source> <source> Uw adres komt uit de Basisregistratie Personen en kan hier niet worden gewijzigd. Wijzig het bij uw gemeente. </source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">75,78</context> <context context-type="linenumber">78,82</context>
</context-group>
</trans-unit>
<trans-unit id="changeRequest.contactLegend" datatype="html">
<source>Contactgegevens</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">90,92</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="changeRequest.telefoonLabel" datatype="html"> <trans-unit id="changeRequest.telefoonLabel" datatype="html">
<source>Telefoonnummer</source> <source>Telefoonnummer</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">89,91</context> <context context-type="linenumber">93,95</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="changeRequest.telefoonPlaceholder" datatype="html"> <trans-unit id="changeRequest.telefoonPlaceholder" datatype="html">
<source>0612345678</source> <source>0612345678</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">101,102</context> <context context-type="linenumber">105,106</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="changeRequest.failed" datatype="html"> <trans-unit id="changeRequest.failed" datatype="html">
<source>Het indienen is niet gelukt:</source> <source>Het indienen is niet gelukt:</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">108,109</context> <context context-type="linenumber">113,114</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="changeRequest.submit" datatype="html"> <trans-unit id="changeRequest.submit" datatype="html">
<source>Wijziging indienen</source> <source>Wijziging indienen</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">136</context> <context context-type="linenumber">141</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="changeRequest.submitBezig" datatype="html"> <trans-unit id="changeRequest.submitBezig" datatype="html">
<source>Bezig met indienen…</source> <source>Bezig met indienen…</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context> <context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">137</context> <context context-type="linenumber">142</context>
</context-group>
</trans-unit>
<trans-unit id="changeRequest.brpAdresLabel" datatype="html">
<source>Adres (BRP)</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/registratie/ui/change-request-form/change-request-form.component.ts</context>
<context context-type="linenumber">146</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="dashboard.heading" datatype="html"> <trans-unit id="dashboard.heading" datatype="html">