Select
Select er nedtrekksmenyen med egendefinert dropdown-grensesnitt. Den tar en items-array og har sin egen SelectChangeEventHandler. En ny, forenklet variant — BETA_Select — er under utvikling og vil erstatte denne over tid.
Viktig informasjon
- BETA_Select er den anbefalte veien videre. Se migreringsveiledningen nedenfor for å komme i gang.
Props
Prop | Type | Påkrevd | Standard | Beskrivelse |
|---|---|---|---|---|
labelEgendefinert | string | Ja | — | Synlig label over nedtrekksmenyen. |
nameEgendefinert | string | Ja | — | Skjemafeltets navn — brukes av react-hook-form og native form submit. |
itemsEgendefinert | Array<string | ValuePair> | Ja | — | Liste over valgmuligheter. Bruk ValuePair ({ value, label }) for å skille mellom verdi og visningsnavn. |
valueEgendefinert | string | Nei | — | Valgt verdi (kontrollert). |
onChangeEgendefinert | SelectChangeEventHandler | Nei | — | Kalles med { type: 'change', target: { name, value } } ved valg. Kompatibel med react-hook-form. |
onBlurEgendefinert | SelectChangeEventHandler | Nei | — | Kalles med { type: 'blur', target: { name, value } } når feltet mister fokus. |
errorLabelEgendefinert | string | Nei | — | Feilmelding vist under feltet. |
helpLabelEgendefinert | string | Nei | — | Hjelpetekst vist under feltet. |
defaultPromptEgendefinert | string | Nei | "Velg" | Plassholdertekst som vises når ingenting er valgt. |
searchableEgendefinert | boolean | ((searchValue: string, item: string | ValuePair) => boolean) | Nei | false | Aktiverer søk i listen. Kan ta en egendefinert filtreringsfunksjon. |
maxShownOptionsEgendefinert | number | Nei | 5 | Antall valg synlig i listen før den scroller. |
inlineEgendefinert | boolean | Nei | false | Viser label og nedtrekksmeny på samme linje. |
widthEgendefinert | string | Nei | — | Setter bredden på nedtrekksmenyen (CSS-verdi). |
disabledNative HTML | boolean | Nei | — | Deaktiverer feltet. |
Eksempler
Grunnleggende nedtrekksmeny
Med ValuePair og hjelpetekst
Bruk ValuePair-objekter når verdien og visningsnavnet skal være forskjellige.
Migrering
Disse eksemplene viser hvordan du erstatter utfasede props med den anbefalte API-en.
Migrer fra Select til BETA_Select
UtfasetBETA_Select bruker native <option>-elementer som children i stedet for en items-array, og standard React onChange i stedet for SelectChangeEventHandler.
- Finn denne koden
import { Select } from "@fremtind/jokul/select"; <Select label="Fylke" name="county" items={["Oslo", "Viken", "Innlandet", "Agder"]} value={value} onChange={({ target }) => setValue(target.value)} /> - Endre importen fra Select til BETA_Select: import { BETA_Select as Select } from "@fremtind/jokul/select"
- Fjern items-propen.
- Legg til <option>-elementer som children. Bruk value-attributtet for å sette verdien.
- Endre onChange til å bruke standard React ChangeEvent: onChange={(e) => setValue(e.target.value)}
- Gi nytt navn til defaultPrompt → placeholder om du brukte det.
- Merk: searchable og maxShownOptions er ikke tilgjengelig i BETA_Select ennå.
- Erstatt med dette
import { BETA_Select as Select } from "@fremtind/jokul/select"; <Select label="Fylke" name="county" value={value} onChange={(e) => setValue(e.target.value)} > <option value="oslo">Oslo</option> <option value="viken">Viken</option> <option value="innlandet">Innlandet</option> <option value="agder">Agder</option> </Select>