EmptyState
Tyhjä tila
Mitä tässä olisi, miksi sitä ei ole ja mitä tehdä seuraavaksi.
Käyttöpaikat
Suoraan: palvelu tuo osan itse. Välillisesti: osa tulee mukaan toisen paketin osan kautta, ja sen muutos näkyy palvelussa silti. Laskettu julkaisun yhteydessä 23.10.2026.
Käyttö
Paketin README:n luku sellaisenaan.
EmptyState — tyhjä tila
<EmptyState
icon={Inbox}
description="Kun toimittajilta saapuu tuoteaineistoa, se näkyy täällä
kanavasta riippumatta (URL, SFTP, sähköposti, manuaali)."
/>| Propsi | Merkitys |
|---|---|
description | pakollinen — miksi näkymä on tyhjä |
icon | lucide-ikoni, size-8; kuvaa sisältöä jota ei ole |
title | valinnainen; ks. alla |
action | valinnainen painike; ks. alla |
size | compact pudottaa pehmusteen ja ikonin |
> Selitys, ei otsikko. Ekosysteemin 17 tyhjästä tilasta yhdessäkään ei > ole erillistä otsikkoa. Älä kirjoita "Ei tuloksia." — se toistaa sen > minkä käyttäjä näkee. Kerro mistä sisältöä tulee tai mitä pitäisi tehdä. > > title on olemassa pitkille selityksille. Älä lisää sitä pelkästään koska > se on olemassa.
> ⚠️ Jätä `action` pois jos sama painike on jo sivulla. Osoita siihen > tekstissä sen sijaan: *"Lisää ensimmäinen »Lisää toimittaja» > -painikkeesta."* Kaksi samaa painiketta samalla ruudulla on epäselvempi > kuin yksi ja viittaus siihen. Käytä actionia kun tyhjä tila on ainoa > paikka josta toiminto löytyy.
> Mikä on tyhjä tila ja mikä ei. Ekosysteemissä on 30 keskitettyä > vaimennettua lohkoa jotka näyttävät samalta mutta tarkoittavat viittä eri > asiaa: tyhjä tulos (13), virhe (12), lataus (3), ei pääsyä (1), ei valintaa > (1). > > `EmptyState` kattaa vain tyhjän tuloksen. Se on role="status" — *tässä > on tulos, ja tulos on tyhjä*. Virhe on role="alert" ja kuuluu > DataTable.errorille; lataus on luuranko; ei pääsyä on oma näkymänsä. > > Jos käyttäjän seuraava teko on eri, se on eri komponentti. Tyhjä tulos > → odota tai muuta hakua. Virhe → yritä uudelleen. Ei pääsyä → ota > yhteyttä.
Ei kääri itseään korttiin. Kuluttaja päättää: oma Card taulukon tilalla, tai valmiin CardContentin sisällä. Molemmat muodot ovat käytössä samassa repossa, ja itsensä kääriminen tuottaisi toisessa kortin kortin sisään.
role="status" eikä alert — tyhjä tulos on tulos, ei virhe.
Tuonti ja lähde
import { EmptyState } from "@karkkainen/ui";src/components/empty-state.tsx