13. nov. 2024 - 7 minutter å lese

Input komponenter IN5320

Input komponenter IN5320

Input components

Disse komponentene brukes i Gruppe 7 sitt DHIS2-prosjekt. Komponentene er hovedsakelig basert på komponentene fra DHIS2 UI Component Library for Web Development. Alle komponentene er endret på en eller annen måte for å bedre passe designstilen til nettstedet. Noen komponenter er laget fra bunnen av fordi DHIS2 ikke tilbyr det vi ønsker eller trenger for å bruke komponenten. Et eksempel er den filtrerbare dropdown menyen. DHIS2 har en egen filtrerbar løsning, men den vises under input feltet, noe som ikke passet vårt behov. Et forsøk ble gjort på å overkomme dette, men det ga mindre klarhet for brukerne og personer som bruker skjermlesere. Vi mener vår løsning gir mer klarhet og en bedre brukeropplevelse. Denne tankegangen ligger bak hver komponent som ikke bruker en DHIS2-basert komponent.

List of input components

Klikk på noen av komponentene for å navigere til dokumentasjonen deres.

Button

Button komponenten er basert på DHIS2 Button. Vi har to versjoner av knappen: Primær og vanlig.

image-20241112223205931 image-20241112223143687

Props

NameTypeDescription
childrennode’Children’ renderes inni komponent
isPrimarybooleanFarger endres for primærknapp
widthstringBredden på komponenten
tabIndexstringIndeks for komponent i forelder
onClickfunctionFormat: () => function()

Checkbox

Checkbox komponenten er ikke basert på DHIS2-komponenter grunnet begrensninger. Den har checked(valgt) og unchecked(ikke valgt) status.

image-20241112224345061 image-20241112224328896

Props

NameTypeDescription
labelstringEtikett for komponenten
checkedbooleanStartverdi for komponenten
tabIndexstringIndeks for komponent i forelder
onChangefunctionFormat: () => function()

DateInput

DateInput komponenten er basert på DHIS2 CalendarInput. Vi har lagt til en egen indikasjon for at det er en dato-input.

image-20241112224720101

Props

NameTypeDescription
labelstringEtikett for komponenten
datestringStartverdi, format: ISO split(‘T’)[0]
widthstringBredden på komponenten
tabIndexstringIndeks for komponent i forelder
onDateSelectfunctionFormat: function

Dropdown komponenten er ikke basert på noen av DHIS2-komponentene. Den kunne ha vært basert på Select, men manglet funksjoner vi ønsket, samt hadde begrenset skaleringsmuligheter. Vi har overganger for åpning og lukking.

image-20241112225356852

Props

NameTypeDescription
valuestringStartverdi, kan være tom
optionsarray[{id, name}]ID for key, navn for verdi
widthstringBredden på komponenten
tabIndexstringIndeks for komponent i forelder
setValuefunctionFormat: function

DropdownFilter komponenten er ikke basert på noen DHIS2-komponenter. Den kunne ha vært basert på Select, men manglet ønskede funksjoner. Vi har transitions for åpning, lukking og filtrering.

image-20241112225925295

Props

NameTypeDescription
labelstringEtikett for komponenten
valuestringStartverdi, kan være tom
optionsarray[{id, name}]ID for key, navn for verdi
filterBystringNøkkel for filtrering, eks. ‘name’
widthstringBredden på komponenten
tabIndexstringIndeks for komponent i forelder
setValuefunctionFormat: function

FileInput

FileInput komponenten DHIS2 FileInput er basert på DHIS2 FileInput. Den har blitt sterkt modifisert for å inkludere dra-og-slipp-funksjonalitet.

image-20241112230300553

Props

NameTypeDescription
labelstringEtikett for komponenten
acceptstringAksepterte filtyper
widthstringBredden på komponenten
tabIndexstringIndeks for komponent i forelder
onChangefunctionFormat: function

InputWithType

InputWithType komponenten er basert på DHIS2 InputField. Den har blitt litt endret for å passe nettstedets stil og legge til float som en egen type.

image-20241112231012361

Props

NameTypeDescription
labelstringEtikett for komponenten
placeholderstringPlassholderverdi
valueanyStartverdi, kan være tom
errorbooleanOm en feil har oppstått
errorTextstringFeilmeldingstekst
widthstringBredden på komponenten
typestringInput-type, se DHIS2 sine + float
tabIndexstringIndeks for komponent i forelder
onChangefunctionFormat: (e) => function(e.value)

MapInput

MapInput er ikke basert på noen DHIS2-komponent, men er inspirert av dataelementet i DHIS2 med coordinate som data value. Vi bruker samme bibliotek som DHIS2, nemlig Leaflet, for det visuelle og input.

image-20241112231207433

Props

NameTypeDescription
coordinatesarray[lat, long]Startlokasjon på kartet
styleobject{type: 'verdi'}Tilpasset stil for kartet
tabIndexstringIndeks for komponent i forelder
setCoordinatesfunctionFormat: function

NumberCounter

NumberCounter er en spesiallaget komponent, inspirert av Google. Den lar brukeren bruke + og -, samt skrive inn tall direkte.

image-20241112231634381

Props

NameTypeDescription
labelstringText for the tooltip on hover
selectednumberStartverdi, vanligvis 0
rangearray[start,end]Gyldige verdier mellom start & end
tabIndexstringIndeks for komponent i forelder
setSelectedfunctionFormat: function

NumberRow

NumberRow er en spesiallaget komponent som lar brukeren klikke på tall og se en markør flytte seg. Den har transitions for interaktivitet, og kan ha error og disabled status.

image-20241112231922030 image-20241112232757949

Props

NameTypeDescription
disabledbooleanStatus for komponenten
selectednumberStartverdi, vanligvis 0
rangearray[1,5]Gyldige verdier mellom start & end
errorbooleanStatus for komponenten
tabIndexstringIndeks for komponent i forelder
setSelectedfunctionFormat: function