UNPKG

@ozen-ui/kit

Version:

React component library

25 lines (24 loc) 1.69 kB
import { __assign, __rest } from "tslib"; import React from 'react'; import { useThemeProps } from '../../../../hooks/useThemeProps'; import { polymorphicComponentWithRef } from '../../../../utils/polymorphicComponentWithRef'; import { Button } from '../../../ButtonNext'; import { useFileUploaderContext } from '../../context'; import { FILE_UPLOADER_SIZE_TO_UPLOAD_BUTTON_SIZE, FILE_UPLOADER_UPLOAD_BUTTON_DEFAULT_DISABLE_OPEN, FILE_UPLOADER_UPLOAD_BUTTON_DEFAULT_TAG, } from './constants'; export var FileUploaderUploadButton = polymorphicComponentWithRef(function (inProps, ref) { var props = useThemeProps({ props: inProps, name: 'FileUploaderUploadButton', }); var children = props.children, _a = props.as, as = _a === void 0 ? FILE_UPLOADER_UPLOAD_BUTTON_DEFAULT_TAG : _a, onClick = props.onClick, disabled = props.disabled, _b = props.disableOpen, disableOpen = _b === void 0 ? FILE_UPLOADER_UPLOAD_BUTTON_DEFAULT_DISABLE_OPEN : _b, other = __rest(props, ["children", "as", "onClick", "disabled", "disableOpen"]); var _c = useFileUploaderContext(), openUploader = _c.openUploader, size = _c.size, status = _c.status; return (React.createElement(Button, __assign({}, other, { ref: ref, size: FILE_UPLOADER_SIZE_TO_UPLOAD_BUTTON_SIZE[size], variant: "function", as: as, onClick: function (event) { onClick === null || onClick === void 0 ? void 0 : onClick(event); if (disableOpen) { return; } event.stopPropagation(); openUploader(); }, disabled: status === 'disabled' || disabled }), children)); }); FileUploaderUploadButton.displayName = 'FileUploaderUploadButton';