import PropTypes from 'prop-types' import React from 'react' import styled from 'styled-components' import AccessibleField, { FieldProps } from '../AccessibleField/AccessibleField' import FileInput, { FileInputProps } from '../FileInput/FileInput' import { extractFieldStyleProps } from '../helpers/omit' interface FileInputFieldProps extends FileInputProps, FieldProps { className?: string } const FileInputFieldBase = (props: FileInputFieldProps): React.ReactElement => { const { disabled, label, labelProps, id, tooltip, tooltipProps, name, success, warning, error, autoTooltip = false, disableTooltip, alignTooltip, ...rest } = props const styleProps = extractFieldStyleProps(rest) return ( {({ fieldId, labelId, status, name: accessibilityName, ariaDescribedBy, disabled: accessibilityDisabled, }) => ( )} ) } export const FileInputField = styled(FileInputFieldBase)` .field-label-row { margin-bottom: 4px; } ` // `styled` HOC somehow messes up the type of the `accept` prop, // so I'm putting the propTypes on the base component instead. FileInputFieldBase.propTypes = { ...FileInput.propTypes, label: PropTypes.node.isRequired, labelProps: PropTypes.object, tooltip: PropTypes.node, tooltipProps: PropTypes.object, } export default FileInputField