UNPKG

@gravity-ui/uikit

Version:

Gravity UI base styling and components

29 lines (28 loc) 1.22 kB
import { jsx as _jsx } from "react/jsx-runtime"; import * as React from 'react'; import { CircleExclamation as DefaultErrorIcon, CloudArrowUpIn as DefaultIcon, } from '@gravity-ui/icons'; import { Icon } from "../../../index.js"; import { useFileZoneContext } from "../FileDropZone.Provider.js"; import { cnFileDropZone } from "../FileDropZone.classname.js"; import { FileDropZoneQa } from "../constants.js"; export const FileDropZoneIcon = ({ className }) => { const { errorMessage, validationState, icon, errorIcon } = useFileZoneContext(); const isError = Boolean(errorMessage) || validationState === 'invalid'; const DisplayIcon = React.useMemo(() => { if (isError) { if (errorIcon === null) { return null; } return errorIcon || DefaultErrorIcon; } if (icon === null) { return null; } return icon || DefaultIcon; }, [errorIcon, icon, isError]); if (DisplayIcon === null) { return null; } return (_jsx(Icon, { className: cnFileDropZone('icon', { error: isError }, className), data: DisplayIcon, qa: FileDropZoneQa.ICON })); }; //# sourceMappingURL=FileDropZone.Icon.js.map