Skip to content

Commit

Permalink
feat: separate validation and info texts
Browse files Browse the repository at this point in the history
  • Loading branch information
astagi committed Dec 6, 2023
1 parent 36a215d commit 87a877f
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 6 deletions.
6 changes: 5 additions & 1 deletion src/Input/Input.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ export interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
label?: string | ReactNode;
/** Testo di esempio da utilizzare per il campo. */
placeholder?: string;
/** Testo di aiuto per l'elemento del moduleo form. Richiede che il componente `Input` abbia la prop `id` impostata. */
/** Testo di validazione per l'elemento del moduleo form. */
validationText?: string;
/** Testo di aiuto per l'elemento del moduleo form. Richiede che il componente `Input` abbia la prop `id` impostata. */
infoText?: string;
/** Il valore nel campo Input. */
value?: string | number;
/** Da utilizzare per impedire la modifica del valore contenuto. */
Expand Down Expand Up @@ -102,6 +104,7 @@ export const Input = ({
innerRef,
label,
validationText,
infoText,
placeholder,
normalized,
value,
Expand Down Expand Up @@ -215,6 +218,7 @@ export const Input = ({
const containerProps = {
id,
infoId,
infoText,
activeClass,
label,
validationTextClass,
Expand Down
12 changes: 8 additions & 4 deletions src/Input/InputContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@ export interface InputContainerProps extends HTMLAttributes<HTMLElement> {
validationText: string | undefined;
id: string | undefined;
infoId: string | undefined;
infoText: string | undefined;
testId?: string;
}

export const InputContainer: FC<InputContainerProps> = ({
id,
// infoId,
infoId,
infoText,
testId,
activeClass,
label,
Expand All @@ -28,10 +30,12 @@ export const InputContainer: FC<InputContainerProps> = ({
<label htmlFor={id} className={activeClass}>
{label}
</label>
{infoText && (
<small id={infoId} className='form-text'>
{infoText}
</small>
)}
<div className={validationTextClass}>{validationText}</div>
{/* <small id={infoId} className={validationTextClass}>
{validationText}
</small> */}
</div>
);
};
6 changes: 5 additions & 1 deletion src/Input/TextArea.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ export interface TextAreaProps extends TextareaHTMLAttributes<HTMLTextAreaElemen
label?: string | ReactNode;
/** Testo di esempio da utilizzare per il campo. */
placeholder?: string;
/** Testo di aiuto per l'elemento del moduleo form. Richiede che il componente `TextArea` abbia la prop `id` impostata. */
/** Testo di validazione per l'elemento del moduleo */
validationText?: string;
/** Testo di aiuto per l'elemento del moduleo form. Richiede che il componente `TextArea` abbia la prop `id` impostata. */
infoText?: string;
/** Il valore nel campo TextArea. */
value?: string | number;
/** Da utilizzare per impedire la modifica del valore contenuto. */
Expand Down Expand Up @@ -38,6 +40,7 @@ export const TextArea = ({
innerRef,
label,
validationText,
infoText,
placeholder,
normalized,
value,
Expand Down Expand Up @@ -93,6 +96,7 @@ export const TextArea = ({
const containerProps = {
id,
infoId,
infoText,
activeClass,
label,
validationTextClass,
Expand Down
1 change: 1 addition & 0 deletions stories/Form/FormValidation.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export const ValidazioneBase = () => (
<Input label='Invalid Input' invalid />
<Input value='Mario' label='First name' validationText='Validated!' valid />
<Input label='Username' validationText='Please choose a username.' invalid />
<Input label='Username' infoText='Username of your account' validationText='Please choose a username.' invalid />
</div>
);

Expand Down

0 comments on commit 87a877f

Please sign in to comment.