'use strict'; import React from 'react'; import UserStore from '../../stores/user_store'; import UserActions from '../../actions/user_actions'; import Form from './form'; import Property from './property'; import ReactS3FineUploader from '../ascribe_uploader/react_s3_fine_uploader'; import AppConstants from '../../constants/application_constants'; import ApiUrls from '../../constants/api_urls'; import { getCookie } from '../../utils/fetch_api_utils'; import { getLangText } from '../../utils/lang_utils'; import { mergeOptions } from '../../utils/general_utils'; import { isReadyForFormSubmission } from '../ascribe_uploader/react_s3_fine_uploader_utils'; let RegisterPieceForm = React.createClass({ propTypes: { headerMessage: React.PropTypes.string, submitMessage: React.PropTypes.string, handleSuccess: React.PropTypes.func, isFineUploaderActive: React.PropTypes.bool, isFineUploaderEditable: React.PropTypes.bool, enableLocalHashing: React.PropTypes.bool, children: React.PropTypes.element, onLoggedOut: React.PropTypes.func }, getDefaultProps() { return { headerMessage: getLangText('Register your work'), submitMessage: getLangText('Register work'), enableLocalHashing: true }; }, getInitialState(){ return mergeOptions( { digitalWorkKey: null, isUploadReady: false }, UserStore.getState() ); }, componentDidMount() { UserStore.listen(this.onChange); UserActions.fetchCurrentUser(); }, componentWillUnmount() { UserStore.unlisten(this.onChange); }, onChange(state) { this.setState(state); }, getFormData(){ return { digital_work_key: this.state.digitalWorkKey }; }, submitKey(key){ this.setState({ digitalWorkKey: key }); }, setIsUploadReady(isReady) { this.setState({ isUploadReady: isReady }); }, render() { let currentUser = this.state.currentUser; let enableLocalHashing = currentUser && currentUser.profile ? currentUser.profile.hash_locally : false; enableLocalHashing = enableLocalHashing && this.props.enableLocalHashing; return (
{this.props.submitMessage} } spinner={ }>

{this.props.headerMessage}

{this.props.children}
); } }); let FileUploader = React.createClass({ propTypes: { setIsUploadReady: React.PropTypes.func, submitKey: React.PropTypes.func, isReadyForFormSubmission: React.PropTypes.func, onClick: React.PropTypes.func, // isFineUploaderActive is used to lock react fine uploader in case // a user is actually not logged in already to prevent him from droping files // before login in isFineUploaderActive: React.PropTypes.bool, onLoggedOut: React.PropTypes.func, editable: React.PropTypes.bool, enableLocalHashing: React.PropTypes.bool }, render() { return ( ); } }); export default RegisterPieceForm;