2020-02-18 16:49:18 +01:00
|
|
|
import React, { useReducer } from 'react';
|
2020-02-18 18:05:52 +01:00
|
|
|
import PropTypes from 'prop-types';
|
2020-03-03 16:19:53 +01:00
|
|
|
import InputFileModal from '../InputFileModal';
|
2020-02-20 09:02:51 +01:00
|
|
|
import ModalNavWrapper from '../ModalNavWrapper';
|
2020-02-20 09:09:34 +01:00
|
|
|
import ModalSection from '../ModalSection';
|
2020-02-18 16:49:18 +01:00
|
|
|
import init from './init';
|
|
|
|
import reducer, { initialState } from './reducer';
|
2020-02-18 16:39:03 +01:00
|
|
|
|
2020-02-18 18:05:52 +01:00
|
|
|
const UploadForm = ({ addFilesToUpload }) => {
|
2020-02-18 16:49:18 +01:00
|
|
|
const [reducerState, dispatch] = useReducer(reducer, initialState, init);
|
|
|
|
const { to } = reducerState.toJS();
|
2020-02-20 09:02:51 +01:00
|
|
|
const links = [
|
|
|
|
{ to: 'computer', label: 'computer', isDisabled: false },
|
|
|
|
{ to: 'url', label: 'url', isDisabled: true },
|
|
|
|
];
|
2020-02-18 16:49:18 +01:00
|
|
|
|
2020-02-20 09:02:51 +01:00
|
|
|
const handleClickGoTo = to => {
|
2020-02-18 16:49:18 +01:00
|
|
|
dispatch({
|
|
|
|
type: 'SET_TAB',
|
|
|
|
to,
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2020-02-18 16:39:03 +01:00
|
|
|
return (
|
|
|
|
<>
|
2020-02-20 09:02:51 +01:00
|
|
|
<ModalNavWrapper links={links} to={to} onClickGoTo={handleClickGoTo} />
|
2020-02-20 09:09:34 +01:00
|
|
|
<ModalSection>
|
2020-03-03 16:19:53 +01:00
|
|
|
{to === 'computer' && <InputFileModal onChange={addFilesToUpload} />}
|
2020-02-20 09:09:34 +01:00
|
|
|
{to === 'url' && <div>COMING SOON</div>}
|
|
|
|
</ModalSection>
|
2020-02-18 16:39:03 +01:00
|
|
|
</>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
2020-02-18 18:05:52 +01:00
|
|
|
UploadForm.defaultProps = {
|
|
|
|
addFilesToUpload: () => {},
|
|
|
|
};
|
|
|
|
|
|
|
|
UploadForm.propTypes = {
|
|
|
|
addFilesToUpload: PropTypes.func,
|
|
|
|
};
|
|
|
|
|
2020-02-18 16:39:03 +01:00
|
|
|
export default UploadForm;
|