@ozen-ui/kit
Version:
React component library
25 lines (24 loc) • 1.69 kB
JavaScript
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';