import * as React from "react"; import nextId from "react-id-generator"; import { cx } from "@emotion/css"; import { InputAppearance } from "../shared/types/inputAppearance"; import { tintText, visuallyHidden, flex, margin } from "../shared/styles/styleUtils"; import { getLabelStyle } from "../shared/styles/formStyles"; import { themeError, greyLightDarken2 } from "../design-tokens/build/js/designTokens"; import Tooltip from "../tooltip/components/Tooltip"; import { Icon } from "../icon"; import { SystemIcons as SI } from "../icons/dist/system-icons-enum"; const trigger = ( ); const reqStar = *; export interface RenderLabelProps { appearance?: string; hidden?: boolean; id?: string; label?: React.ReactNode; required?: boolean; tooltipContent?: React.ReactNode; } export const renderLabel = ({ appearance, hidden, label, id = nextId(), required, tooltipContent }: RenderLabelProps) => { const hasError = appearance === InputAppearance.Error; const labelClassName = hidden ? cx(visuallyHidden) : getLabelStyle(hasError); const labelNode = ( ); if (!tooltipContent) { return labelNode; } return (
{labelNode} {tooltipContent ? ( {tooltipContent} ) : null}
); };