spee.ch/react/containers/PublishForm/index.js

48 lines
1.5 KiB
JavaScript
Raw Normal View History

2018-01-17 19:49:57 +01:00
import {connect} from 'react-redux';
2018-01-18 18:33:26 +01:00
import {clearFile, selectFile, updateError, updatePublishStatus} from 'actions/publish';
import {updateLoggedInChannel} from 'actions/channel';
2018-01-18 00:00:03 +01:00
import View from './view';
2018-01-17 19:49:57 +01:00
2018-01-18 18:33:26 +01:00
const mapStateToProps = ({ channel, publish }) => {
2018-01-17 19:49:57 +01:00
return {
2018-01-18 18:33:26 +01:00
loggedInChannel : channel.loggedInChannel,
file : publish.file,
claim : publish.claim,
title : publish.metadata.title,
thumbnail : publish.metadata.thumbnail,
description : publish.metadata.description,
license : publish.metadata.license,
nsfw : publish.metadata.nsfw,
publishInChannel : publish.publishInChannel,
selectedChannel : publish.selectedChannel,
2018-01-18 18:33:26 +01:00
fileError : publish.error.file,
urlError : publish.error.url,
publishSubmitError: publish.error.publishSubmit,
2018-01-17 19:49:57 +01:00
};
};
const mapDispatchToProps = dispatch => {
return {
onFileSelect: (file) => {
dispatch(selectFile(file));
},
onFileClear: () => {
dispatch(clearFile());
},
onChannelLogin: (name, shortId, longId) => {
dispatch(updateLoggedInChannel(name, shortId, longId));
},
onPublishStatusChange: (status, message) => {
dispatch(updatePublishStatus(status, message));
},
onChannelSelectionError: (value) => {
dispatch(updateError('channel', value));
},
2018-01-17 19:49:57 +01:00
onPublishSubmitError: (value) => {
dispatch(updateError('publishSubmit', value));
},
};
};
export default connect(mapStateToProps, mapDispatchToProps)(View);