Repository: react-materialize/react-materialize (js)

Issue:
TextInput type file doesn't work
### Description

I wanna use input type file in my project but when i try the code, it doesnt render the materialize component.

The code that i try to make input type file
```
<TextInput type="file" />
<input type="file" />
```

### Versions

**react-materialize:** 3.4.1
**materialize-css:** 1.0.0
**react:** 16.12.0

#### Thanks for helping out!


Pull request:
Textinput file type
Fixes #925 introducing a `<TextInput type="file" label="File" />`

Patch:
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index 96a6a7e..71aeb73 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -17,5 +17,3 @@
 **react-materialize:** x.x.x
 **materialize-css:** x.x.x
 **react:** x.x.x
-
-#### Thanks for helping out!
diff --git a/src/TextInput.js b/src/TextInput.js
index ef4214d..86715ae 100644
--- a/src/TextInput.js
+++ b/src/TextInput.js
@@ -125,6 +125,26 @@ class TextInput extends Component {
       return React.cloneElement(icon, { className: 'prefix' });
     };
 
+    if (type === 'file') {
+      return (
+        <div className={`${wrapperClasses} file-field`}>
+          <div className="btn">
+            <span>{label}</span>
+            <input
+              type="file"
+              className={cx({ validate }, inputClassName)}
+              {...inputProps}
+            />
+          </div>
+          <div className="file-path-wrapper">
+            <input className="file-path validate" type="text" />
+          </div>
+          {renderHelper()}
+          {children}
+        </div>
+      );
+    }
+
     return (
       <div className={wrapperClasses}>
         {renderIcon()}
diff --git a/stories/TextInput.stories.js b/stories/TextInput.stories.js
index bb17c6c..e9878c5 100644
--- a/stories/TextInput.stories.js
+++ b/stories/TextInput.stories.js
@@ -46,6 +46,10 @@ stories.add('Email validate', () => (
   />
 ));
 
+stories.add('File type', () => (
+  <TextInput type="file" label="File" />
+));
+
 stories.add(
   'Character Counter',
   () => <TextInput label="Input text" data-length={10} />,


Test patch:
diff --git a/test/TextInput.spec.js b/test/TextInput.spec.js
index 847c191..a59cae8 100644
--- a/test/TextInput.spec.js
+++ b/test/TextInput.spec.js
@@ -57,6 +57,11 @@ describe('<TextInput />', () => {
     expect(mockOnChange).toHaveBeenCalledTimes(1);
   });
 
+  test('handles file type', () => {
+    wrapper = shallow(<TextInput type="file" label="File" />);
+    expect(wrapper).toMatchSnapshot();
+  });
+
   describe('Icon', () => {
     test('renders as a string', () => {
       wrapper = shallow(<TextInput icon="cloud" />);
@@ -76,6 +81,7 @@ describe('<TextInput />', () => {
       expect(mockIconClick).toBeCalled();
     });
   });
+
   describe('undefined M', () => {
     let __M;
     beforeEach(() => {
diff --git a/test/__snapshots__/TextInput.spec.js.snap b/test/__snapshots__/TextInput.spec.js.snap
new file mode 100644
index 0000000..e1bf740
--- /dev/null
+++ b/test/__snapshots__/TextInput.spec.js.snap
@@ -0,0 +1,28 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`<TextInput /> handles file type 1`] = `
+<div
+  className="input-field col file-field"
+>
+  <div
+    className="btn"
+  >
+    <span>
+      File
+    </span>
+    <input
+      className=""
+      id="mockId"
+      type="file"
+    />
+  </div>
+  <div
+    className="file-path-wrapper"
+  >
+    <input
+      className="file-path validate"
+      type="text"
+    />
+  </div>
+</div>
+`;