import React, { forwardRef, useState } from 'react'; import styled from 'styled-components'; import FolderIcon from '../../assets/FolderIcon'; import { StyledInputWrapper, inputTextStyles, inputDefaultStyle, } from '../styled'; import { FileInputProps } from './props'; export const InputImageWrapper = styled.div` height: 20px; width: 20px; margin: 0 -8px 0 18px; display: flex; align-items: center; cursor: pointer; `; export const StyledFileInput = styled.div` ${inputDefaultStyle} ${inputTextStyles} display: flex; align-items: center; cursor: pointer; overflow: hidden; `; const FileInput = forwardRef( ( { placeholder: defaultPlaceholder, disabled, hasError, borderless = false, onChange, ...rest }, ref, ) => { const [placeholder, setPlaceholder] = useState( defaultPlaceholder || 'Choose a file', ); const fileHandler = (e: React.ChangeEvent) => { if (e.target.files) { setPlaceholder(e.target.files[0].name); onChange && onChange(e); } }; const inputRef = document.getElementById('formInput') as HTMLInputElement; return ( { inputRef && inputRef.click(); }} > {placeholder} ); }, ); export default FileInput;