UNPKG

@wordpress/components

Version:
47 lines (42 loc) 746 B
/** * 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;