make empty buttons editable

This commit is contained in:
Maximilian Hils 2016-07-25 17:12:39 -07:00
parent 70dbd1b32d
commit e1587b2bc1
3 changed files with 12 additions and 9 deletions

View File

@ -19,17 +19,17 @@ ContentView.propTypes = {
ContentView.isContentTooLarge = msg => msg.contentLength > 1024 * 1024 * (ContentViews.ViewImage.matches(msg) ? 10 : 0.2) ContentView.isContentTooLarge = msg => msg.contentLength > 1024 * 1024 * (ContentViews.ViewImage.matches(msg) ? 10 : 0.2)
function ContentView(props) { function ContentView(props) {
const { flow, message, contentView, selectView, displayLarge, setDisplayLarge, uploadContent, onContentChange, readonly } = props const { flow, message, contentView, isDisplayLarge, displayLarge, uploadContent, onContentChange, readonly } = props
if (message.contentLength === 0) { if (message.contentLength === 0 && readonly) {
return <MetaViews.ContentEmpty {...props}/> return <MetaViews.ContentEmpty {...props}/>
} }
if (message.contentLength === null) { if (message.contentLength === null && readonly) {
return <MetaViews.ContentMissing {...props}/> return <MetaViews.ContentMissing {...props}/>
} }
if (!displayLarge && ContentView.isContentTooLarge(message)) { if (!isDisplayLarge && ContentView.isContentTooLarge(message)) {
return <MetaViews.ContentTooLarge {...props} onClick={displayLarge}/> return <MetaViews.ContentTooLarge {...props} onClick={displayLarge}/>
} }
@ -39,7 +39,7 @@ function ContentView(props) {
<View flow={flow} message={message} readonly={readonly} onChange={onContentChange}/> <View flow={flow} message={message} readonly={readonly} onChange={onContentChange}/>
<div className="view-options text-center"> <div className="view-options text-center">
<ViewSelector onSelectView={selectView} active={View} message={message}/> <ViewSelector message={message}/>
&nbsp; &nbsp;
<DownloadContentButton flow={flow} message={message}/> <DownloadContentButton flow={flow} message={message}/>
&nbsp; &nbsp;
@ -52,10 +52,9 @@ function ContentView(props) {
export default connect( export default connect(
state => ({ state => ({
contentView: state.ui.flow.contentView, contentView: state.ui.flow.contentView,
displayLarge: state.ui.flow.displayLarge, isDisplayLarge: state.ui.flow.displayLarge,
}), }),
{ {
selectView: setContentView,
displayLarge, displayLarge,
updateEdit updateEdit
} }

View File

@ -41,6 +41,10 @@ export default View => class extends React.Component {
if (this.state.request) { if (this.state.request) {
this.state.request.abort() this.state.request.abort()
} }
if(props.message.contentLength === 0 || props.message.contentLength === null){
return this.setState({request: undefined, content: ""})
}
let requestUrl = MessageUtils.getContentURL(props.flow, props.message) let requestUrl = MessageUtils.getContentURL(props.flow, props.message)
// We use XMLHttpRequest instead of fetch() because fetch() is not (yet) abortable. // We use XMLHttpRequest instead of fetch() because fetch() is not (yet) abortable.
@ -75,7 +79,7 @@ export default View => class extends React.Component {
} }
render() { render() {
return this.state.content ? ( return this.state.content !== undefined ? (
<View content={this.state.content} {...this.props}/> <View content={this.state.content} {...this.props}/>
) : ( ) : (
<div className="text-center"> <div className="text-center">

View File

@ -35,7 +35,7 @@ export default function ViewSelector({ message }) {
return ( return (
<div className="view-selector btn-group btn-group-xs"> <div className="view-selector btn-group btn-group-xs">
<ViewButton name="AutoView">auto: {autoViewName}</ViewButton> <ViewButton name="ViewAuto">auto: {autoViewName}</ViewButton>
{Object.keys(ContentViews).map(name => {Object.keys(ContentViews).map(name =>
name !== "ViewAuto" && name !== "ViewAuto" &&