Komponentti on edelleen kehityksessä, joten sen API ja ominaisuudet saattavat vielä muuttua.
Esikatselu
<TimeInput labelText="Valitse kellonaika" />
Käyttötarkoitus
Komponenttia käytetään kellonajan valitsemiseen. Komponentti ohjaa käyttäjää syöttämään kellonajan oikeassa muodossa.
Toteutus perustuu HTML:n natiiviin time-tyyppiseen input-kenttään (Avautuu uuteen välilehteen) , joten sen rajoitukset tulee huomioida komponenttia käyttöönotettaessa.
Saavutettavuus
TextInput
-komponentti tuottaa saavutettavan käyttöliittymäelementin huolehtien ohjetekstien liittämisestä kenttään automaattisesti. Näin ruudunlukijan käyttäjä saa tiedon kentän pakollisuudesta, sekä mahdollisista lisätiedoista.
Esimerkit
Tilat
<>
<TimeInput labelText="Valitse kellonaika" />
<TimeInput labelText="Valitse kellonaika" readOnly />
<TimeInput labelText="Valitse kellonaika" disabled />
<TimeInput labelText="Valitse kellonaika" errorText="Vastaus puuttuu." invalid required />
</>
Kokovaihtoehdot
Pienin koko (xs
) on tarkoitettu tiivistä asettelua vaativiin asiantuntijakäyttöliittymiin.
<>
<TimeInput labelText="Valitse kellonaika" helpText="Syötä kellonaika muodossa tt:mm" size="xs" />
<TimeInput labelText="Valitse kellonaika" helpText="Syötä kellonaika muodossa tt:mm" size="sm" />
<TimeInput labelText="Valitse kellonaika" helpText="Syötä kellonaika muodossa tt:mm" />
</>
Kaksipalstainen asettelu
Kaksipalstaisessa asettelussa tulostetaan leftCol
-propilla kentän nimilappu ja aputeksti Column
-komponentin sisään.
<TimeInput
labelText="Valitse kellonaika"
helpText="Syötä kellonaika muodossa tt:mm"
leftCol={(children) => <Column md="4">{children}</Column>}
/>
Sekuntien näyttäminen
Ominaisuus ei toimi iOS-käyttöjärjestelmällä.
<TimeInput labelText="Valitse kellonaika" helpText="Syötä kellonaika muodossa tt:mm:ss" withSeconds />
Syötteen validointi
Alla on esimerkki syötteen validoinnista komponentin tarjoamalla getTimeValidator
-funktiolla.
function TimeInputValidationExample() {
const [value, setValue] = useState("");
const [validation, setValidation] = useState<TimeValidatorResult>({
isValid: true,
error: { type: null, message: "" },
value: "",
});
const { validate } = getTimeValidator({
withSeconds: false,
required: true,
errorTexts: {
[TimeValidatorErrorType.invalidFormat]: "Korjaa vastaus.",
[TimeValidatorErrorType.required]: "Vastaus puuttuu.",
},
});
const handleOnChange = (e: ChangeEvent<HTMLInputElement>) => {
setValidation(validate(e.target.value));
setValue(e.target.value);
};
const handleOnBlur = (e: FocusEvent<HTMLInputElement>) => {
setValidation(validate(e.target.value));
};
return (
<TimeInput
errorText={validation.error.message}
helpText="Syötä kellonaika muodossa tt:mm"
invalid={!validation.isValid}
labelText="Valitse kellonaika"
onBlur={handleOnBlur}
onChange={handleOnChange}
value={value}
/>
);
}
Huomioitavaa selaintuessa