@wordpress/components
Version:
UI components for WordPress.
47 lines (42 loc) • 746 B
JavaScript
/**
* WordPress dependencies
*/
import { useRef } from '@wordpress/element';
/**
* Internal dependencies
*/
import Button from '../button';
function FormFileUpload( {
accept,
children,
multiple = false,
onChange,
render,
...props
} ) {
const ref = useRef();
const openFileDialog = () => {
ref.current.click();
};
const ui = render ? (
render( { openFileDialog } )
) : (
<Button onClick={ openFileDialog } { ...props }>
{ children }
</Button>
);
return (
<div className="components-form-file-upload">
{ ui }
<input
type="file"
ref={ ref }
multiple={ multiple }
style={ { display: 'none' } }
accept={ accept }
onChange={ onChange }
/>
</div>
);
}
export default FormFileUpload;