Skip to main content

Input Field

Panoramica

Il componente InputField è un campo di input personalizzato basato su InputBase di Material-UI. Supporta input singolo o multilinea, validazione dinamica (compresi controlli su email, numeri e numero minimo di caratteri), icone interattive, conteggio caratteri e gestione dello stato dell'input.

Importazione

import { InputField } from "@itlogix/itlogix-ui";

Proprietà (Props)

NomeTipoObbligatorioDefaultDescrizione
isFullWidthbooleannofalseSe true, l'input occupa il 100% della larghezza disponibile.
requiredbooleannofalseSe true, abilita la validazione del campo come obbligatorio.
isDisabledbooleannofalseDisabilita il campo di input.
sxSxPropsnoundefinedStili personalizzati applicabili tramite sistema MUI.
labelstringnoundefinedEtichetta visualizzata sopra il campo di input.
namestringnoundefinedAttributo name del campo, utile per i form.
placeholderstringno""Testo segnaposto all'interno dell'input.
inputRefRef<HTMLInputElement>noundefinedRef personalizzato per accedere direttamente al campo.
type'text'/'number'/'email'no'text'Tipo di input. Supporta testo, numeri ed email.
defaultValuestringnoundefinedValore iniziale del campo.
valuestringnoundefinedValore controllato del campo.
actionIcon{ icon: IconDefinition, onClick: () => void, tooltip?: string }noundefinedIcona interattiva mostrata alla fine del campo.
inputChanged(value: string, isValid?: boolean) => voidnoundefinedFunzione chiamata quando l'input cambia.
nRowsnumbernoundefinedNumero di righe per input multilinea.
maxCharactersnumbernoundefinedNumero massimo di caratteri consentiti.
nOfCharactersRequirednumbernoundefinedNumero minimo di caratteri richiesto per la validazione.
infoMaxCharactersbooleannofalseSe true, mostra il conteggio caratteri (es: 10/30).

Esempi di utilizzo

Input base con etichetta

import { InputField } from "@itlogix/itlogix-ui";

<InputField
label="Nome"
name="nome"
placeholder="Inserisci il tuo nome"
required
/>

Input con validazione email

<InputField
label="Email"
type="email"
required
inputChanged={(val, valid) => console.log(val, valid)}
/>

Input multilinea con contatore caratteri

<InputField
label="Messaggio"
nRows={4}
maxCharacters={200}
infoMaxCharacters
/>

Input con icona di azione

import { InputField } from "@itlogix/itlogix-ui";

<InputField
label="Codice promozionale"
actionIcon={{ icon: faCheck, tooltip: "Applica", onClick: handleApply }}
/>

Comportamento

  • La validazione cambia dinamicamente in base ai prop (required, type, nOfCharactersRequired).
  • Mostra un messaggio di errore con icona se il campo non è valido.
  • Se infoMaxCharacters è true, mostra: numero di caratteri inseriti / n. caratteri massimo.
  • Il campo può simulare il submit del form premendo Enter (solo in input a singola riga).

Questa documentazione fornisce un riferimento completo per l'utilizzo del componente InputField nella tua libreria UI. 🚀