UNPKG

@gravity-ui/uikit

Version:

Gravity UI base styling and components

34 lines (33 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileDropZoneIcon = void 0; const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); const React = tslib_1.__importStar(require("react")); const icons_1 = require("@gravity-ui/icons"); const __1 = require("../../../index.js"); const FileDropZone_Provider_1 = require("../FileDropZone.Provider.js"); const FileDropZone_classname_1 = require("../FileDropZone.classname.js"); const constants_1 = require("../constants.js"); const FileDropZoneIcon = ({ className }) => { const { errorMessage, validationState, icon, errorIcon } = (0, FileDropZone_Provider_1.useFileZoneContext)(); const isError = Boolean(errorMessage) || validationState === 'invalid'; const DisplayIcon = React.useMemo(() => { if (isError) { if (errorIcon === null) { return null; } return errorIcon || icons_1.CircleExclamation; } if (icon === null) { return null; } return icon || icons_1.CloudArrowUpIn; }, [errorIcon, icon, isError]); if (DisplayIcon === null) { return null; } return ((0, jsx_runtime_1.jsx)(__1.Icon, { className: (0, FileDropZone_classname_1.cnFileDropZone)('icon', { error: isError }, className), data: DisplayIcon, qa: constants_1.FileDropZoneQa.ICON })); }; exports.FileDropZoneIcon = FileDropZoneIcon; //# sourceMappingURL=FileDropZone.Icon.js.map