mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-06 16:33:15 +01:00
34 lines
677 B
TypeScript
34 lines
677 B
TypeScript
import React from 'react';
|
|
|
|
export interface LocalFile {
|
|
|
|
fileName: string;
|
|
content: string;
|
|
}
|
|
|
|
export default class FileControl extends React.Component<any> {
|
|
|
|
render() {
|
|
let {type, inputRef, onChange, value, ...props} = this.props;
|
|
|
|
function fileChanged(files, name) {
|
|
|
|
if (!files || !files[0]) {
|
|
onChange(null);
|
|
}
|
|
|
|
const file = files[0];
|
|
|
|
file.text().then(content => {
|
|
onChange({
|
|
fileName: name,
|
|
content
|
|
})
|
|
});
|
|
}
|
|
|
|
return <div className={type}>
|
|
<input type="file" onChange={ e => fileChanged(e.target.files, e.target.value) } ref={inputRef} {...props} />
|
|
</div>;
|
|
}
|
|
}
|