Repository navigation
Conversation
Contributor
|
Azure Static Web Apps: Your stage site is ready! Visit it here: https://lively-water-0d2fd1f03-233.westeurope.3.azurestaticapps.net |
Alt på én side delt i seksjoner, og steg for steg med stegindikator, URL-styrt steg og feiloppsummering. Begge bruker samme skjemadefinisjon og samme seksjonskomponenter, så forskjellen er ren struktur. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Fokusmålet er nå <Message> selv, med tabIndex/role/aria-label rett på
komponenten, i stedet for en wrapper-div som bare fantes fordi Message ikke
tok imot dem. announce={false} erstatter announceText="" — sistnevnte slo av
opplesningen ved å annonsere en tom streng, som er en omvei, ikke et API.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
dagfrode
force-pushed
the
skjema-strukturmonstre
branch
from
September 30, 2026 07:45
3cd6f12 to
b94d7d0
Compare
Contributor
|
Azure Static Web Apps: Your stage site is ready! Visit it here: https://lively-water-0d2fd1f03-233.westeurope.3.azurestaticapps.net |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hva
To nye sider i eksempelappen som viser de to måtene å strukturere et langt skjema:
#/internTesting/skjema-en-side#/internTesting/skjema-stegBetingede feltgrupper — felt som dukker opp basert på et valg — er ikke en tredje type. Det er en variasjon som opptrer i begge, og begge sidene viser den.
Detaljer
Begge variantene deler skjemadefinisjonen (
skjema-data.ts: Valibot-skjema + feltrekkefølge), feiloppsummeringen og feltoppsettet. Det som skiller dem er bare hvordan feltene grupperes og navigeres — poenget med å vise dem side om side.Ting som er lett å gjøre feil, og som eksemplene demonstrerer eksplisitt:
criteriaMode: 'all'er påkrevd når skjemaet brukerforward/partialCheck. Resolveren senderabortPipeEarly: !(criteriaMode === 'all'), så med standardverdien avbryter Valibot på første feil og krysfelt-reglene kjører aldri.valibotResolver(schema, { abortPipeEarly: false })hjelper ikke — resolveren overskriver sin egen verdi til slutt.shouldFocusError: falseer påkrevd sammen med en feiloppsummering. Ellers flytter RHF fokus til første ugyldige felt etter at oppsummeringen har tatt fokus, og RHF vinner.Steg-varianten har en lokal
StegIndikatorog enuseStegSkjema-hook (meduseStegIUrl) som holder gjeldende steg i en query-param, klamper deep-links til første uferdige steg, og gjør nettleserens tilbakeknapp til «forrige steg». Den er lokal for eksempelappen — Indeks har ingen slik komponent ennå. Hooken er skrevet som en oppskrift, ikke som skjult magi: URL-adapteren injiseres, så den ikke er bundet til én router.Feiloppsummeringen bruker
Messagedirekte som fokusmål — ingen wrapper-div, ingenannounceText=\"\"-omvei. Det er det #232 åpnet for.Kjente feil dokumentert med test.fail()
Comboboxviser rå verdi (no) i stedet for etiketten (Norge) etter av- og remontering; samme rotårsak girPhoneNumberField45der den før viste+45. RHF har riktig verdi og innsendingen blir riktig, men brukeren ser en intern kode i feltet sitt.Årsak:
register()gjør feltet ukontrollert, så React rendrer ingen option medaria-selected, og_syncFromInitialSelectioniIxComboboxhar ingenting å utlede etiketten fra.Fiksen hører i indeks-web, ikke her. Testen er merket
test.fail()framfor å fjernes: suiten er grønn, feilen er registrert, og Playwright sier fra den dagen noen fikser den.Testing
tsc --noEmiti eksempelappen: grønt🤖 Generated with Claude Code