Line data Source code
1 : /*
2 : * Copyright (C) 2023 Red Hat, Inc.
3 : * SPDX-License-Identifier: LGPL-2.1-or-later
4 : */
5 :
6 636 : import React from "react";
7 :
8 : import { FormHelperText } from "@patternfly/react-core/dist/esm/components/Form/index.js";
9 : import {
10 : HelperText, HelperTextItem, type HelperTextItemProps
11 : } from "@patternfly/react-core/dist/esm/components/HelperText";
12 :
13 133 : export const FormHelper = ({ helperText, helperTextInvalid, variant, icon, fieldId } :
14 : {
15 : helperText?: React.ReactNode,
16 : helperTextInvalid?: React.ReactNode,
17 : variant?: HelperTextItemProps["variant"],
18 : icon?: HelperTextItemProps["icon"],
19 : fieldId?: string,
20 : }
21 133 : ) => {
22 31 : const formHelperVariant = variant || (helperTextInvalid ? "error" : "default");
23 :
24 119 : if (!(helperText || helperTextInvalid))
25 119 : return null;
26 :
27 97 : return (
28 97 : <FormHelperText>
29 97 : <HelperText>
30 97 : <HelperTextItem
31 : // TODO @Venefilyn: Handle screenreader for this and add translation
32 15 : {...fieldId && { id: fieldId + '-helper' }}
33 133 : variant={formHelperVariant}
34 133 : icon={icon}>
35 23 : {formHelperVariant === "error" ? helperTextInvalid : helperText}
36 133 : </HelperTextItem>
37 133 : </HelperText>
38 133 : </FormHelperText>
39 : );
40 133 : };
|