TimePicker er en komponent for å velge et tidspunkt.
Kom i gang
TimePicker hjelper brukeren med å velge et tidspunkt. Den bruker pakken @internationalized/date til håndtering av dato og tid, inkludert tidssoner.
TimePicker-en har også støtte for ulike locals og språk. react-aria brukes i bakgrunnen, les mer her.
OBS: hjelpefunksjoner fra
@internationalized/date (typ.
now() og
isWeekend()) er ikke inkludert i
@entur/datepicker, legg til
@internationalized/date i repo ditt
for å bruke dem.
Språk og locale
Språk og locals er støttet gjennom to metoder: All automatisk tilpassing av språk skjer gjennom prop-en locale eller react-aria sin <I18nProvider />.
locale støtter strenger på BCP 47-formatet, eks. no-NO for norsk. Her finner du en liste over BCP 47-koder.
I tillegg er det noen ledetekster og aria-label-er som må sendes inn manuelt. Dette gjelder leftArrowButtonAriaLabel og rightArrowButtonAriaLabel.
TimePicker tilpasset USA
Tidssoner
TimePicker støtter tidssonehåndtering for å sikre lik opplevelse på tvers av tidssoner. Dette håndteres ved @internationalized/date sitt ZonedDateTime-objekt, les mer om hvordan opprette og bruke tidssonefunksjonalitet her.
Bruke JS Date i stedet for @internationalized/date
Hvis du ikke har mulighet til å bruke @internationalized/date, kan du bruke konverteringsfunksjonene: nativeDateToTimeValue og timeValueToNativeDate. Disse konverterer
mellom @internationalized/date sine tre tidstyper: ZonedDateTime, CalendarDateTime og Time (TimeValue er en samling av disse tre typene) og Javascript sin Date.
Se API under, nærmere beskrivelse finnes i JSDocs for funksjonene:
nativeDateToTimeValue: (date: Date | null, noDateOnlyTime?: boolean, timeZone?: string | undefined, offset?: number | undefined) => Time | CalendarDateTime | ZonedDateTime | null;
timeOrDateValueToNativeDate: (value: TimeValue | DateValue | null, timeZoneForCalendarDateTime?: string | undefined) => Date | null;Eksempel på bruk av JS-date med DatePicker
Bruk sammen med DatePicker
Du kan velge en dato sammen med tidspunktet på to ulike måter, enten ved å bruke en DatePicker i kombinasjon med TimePicker-en – se kombo av Time- og DatePicker-eksempel på siden til DatePicker –,
eller inline ved å bruke en DatePicker med prop-en showTime – se inline-eksempel på siden til DatePicker.
Bruk på mobile enheter
TimePicker er fungerer like bra på mobile enheter også, men ønsker man en OS-spesifikk opplevelse på mobilen kan <NativeTimePicker /> benyttes. Her må dubenytte Date-objektet til Javascript eller konvertere et TimeValue-objekt.
Retningslinjer
Universell utforming
TimePicker bruker react-aria i bakgrunnen somsørger for gjennomgående støtte for universell utforming. Hvert tidssegment er tilgjengelig med tastaturet og alle interagerbare elementer har aria-beskrivelser.
Hvis du endrer locale (dvs. språk) må du sende inn verdier på riktig språk til leftArrowButtonAriaLabel- og rightArrowButtonAriaLabel-props-ene.
feedback vises i en live region med role="status", slik at skjermlesere leser opp meldingen når den kommer. Ikonet ved siden av meldingen er skjult for skjermlesere, så teksten må være selvforklarende og tydelig formidle om det er en feilmelding eller et varsel. Du kan styre opplesingen med ariaAlertOnFeedback, der standardverdien 'status' gir en høflig opplesing, 'alert' avbryter skjermleseren umiddelbart og false skrur av opplesingen helt, og med feedbackProps kan du sette egne role- og aria-live-verdier.
Mer kompakt fritektsvariant (B2B)
For grensesnitt der et kompakt skjemafelt og mulighet til å kopiere og lime inn fullstendige tidspunkt er viktig kan man bruke SimpleTimePicker. Denne varianten inneholder
mindre funksjonalitet enn TimePicker – den har f.eks ikke locale og fullstendig UU-støtte –, men bygger på samme tidsobjekt. Man interagerer med feltet ved å skrive inn tidspunkt på et av følgende format (t: time, m: minutt, s:sekund): tmm, ttmm, tt:mm, tmmss, ttmmss, t:mm:ss, tt:mm:ss.
Hvis du ønsker å vise sekunder i feltet kan du bruke showSeconds-prop-en.
Props
TimePicker
import { TimePicker } from '@entur/datepicker';Denne komponenten har ingen props
SimpleTimePicker
import { SimpleTimePicker } from '@entur/datepicker';Denne komponenten har ingen props
NativeTimePicker
import { NativeTimePicker } from '@entur/datepicker';Denne komponenten har ingen props