@gravity-ui/uikit
Version:
Gravity UI base styling and components
29 lines (28 loc) • 1.22 kB
JavaScript
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