/* eslint react/prop-types: 0 */ import React, { useContext, useRef, useMemo } from 'react'; import { WaxContext } from 'wax-prosemirror-core'; import styled from 'styled-components'; import MenuButton from '../ui/buttons/MenuButton'; const Wrapper = styled.div` input { display: none; } `; const ImageUpload = ({ item, fileUpload, view }) => { const { activeViewId } = useContext(WaxContext); const inputRef = useRef(null); const handleMouseDown = () => inputRef.current.click(); const ImageUploadComponent = useMemo( () => ( <Wrapper> <label htmlFor="file-upload"> <MenuButton active={false} disabled={!(item.select && item.select(view.state, activeViewId))} iconName={item.icon} onMouseDown={handleMouseDown} title="Upload Image" /> <input id="file-upload" ref={inputRef} onChange={e => fileUpload(e.target.files[0])} type="file" /> </label> </Wrapper> ), [], ); return ImageUploadComponent; }; export default ImageUpload;