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 136 : 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 136 : ) => {
22 34 : const formHelperVariant = variant || (helperTextInvalid ? "error" : "default");
23 :
24 122 : if (!(helperText || helperTextInvalid))
25 122 : return null;
26 :
27 100 : return (
28 100 : <FormHelperText>
29 100 : <HelperText>
30 100 : <HelperTextItem
31 : // TODO @Venefilyn: Handle screenreader for this and add translation
32 18 : {...fieldId && { id: fieldId + '-helper' }}
33 136 : variant={formHelperVariant}
34 136 : icon={icon}>
35 26 : {formHelperVariant === "error" ? helperTextInvalid : helperText}
36 136 : </HelperTextItem>
37 136 : </HelperText>
38 136 : </FormHelperText>
39 : );
40 136 : };
|