@boewa-software/react-async-uploader
Version:
React Uploder
70 lines (58 loc) • 1.56 kB
JSX
import React from 'react';
import PropType from 'prop-types';
import UploadInputComponent from "./UploadInputComponent";
import Uploader from "./Uploader";
class UploadInput extends React.Component
{
constructor(props)
{
super(props);
this.state = {
value: this.props.initialValue,
};
}
handleFileSuccess(file) {
this.setState({
value: file.responseContent.upload
});
}
reset() {
this.setState({
value: null
});
}
render()
{
const {
componentProps,
initialValue,
...props
} = this.props;
return (
<Uploader
componentProps={{
value: this.state.value,
reset: () => this.reset(),
...componentProps
}}
// Datei nach dem Erfolgreichen Upload in den lokalen State überführen
onFileSuccess={(file) => this.handleFileSuccess(file)}
// Datei aus dem Uploader entfernen, wenn sie im lokalen State abgespeichert wurde
clearFileOnSuccess={true}
{...props}
/>
);
}
}
UploadInput.propTypes = {
...Uploader.propTypes,
component: PropType.any,
initialValue: PropType.object,
componentProps: PropType.object
};
UploadInput.defaultProps = {
component: UploadInputComponent,
initialValue: null,
componentProps: {},
};
export default UploadInput;