diff --git a/src/dashboard/dashboard.js b/src/dashboard/dashboard.js index 487d47c..74fb29a 100644 --- a/src/dashboard/dashboard.js +++ b/src/dashboard/dashboard.js @@ -299,6 +299,11 @@ class Dashboard extends Component { return; } + if(data.type === "Image") + { + data.customProperties.update = true; + } + AppDispatcher.dispatch({ type: 'widgets/start-edit', token: this.state.sessionToken, diff --git a/src/widget/widget-factory.js b/src/widget/widget-factory.js index 59ebedf..00dd41e 100644 --- a/src/widget/widget-factory.js +++ b/src/widget/widget-factory.js @@ -115,6 +115,7 @@ class WidgetFactory { widget.height = 200; widget.customProperties.lockAspect = true; widget.customProperties.file = -1; // ID of image file, -1 means non selected + widget.customProperties.update = false; break; case 'Button': widget.minWidth = 100; @@ -191,6 +192,7 @@ class WidgetFactory { widget.customProperties.border_color_opacity = 1; widget.customProperties.border_width = 2; widget.customProperties.rotation = 0; + widget.customProperties.lockAspect = true; break; default: diff --git a/src/widget/widgets/image.js b/src/widget/widgets/image.js index 1c2ba75..f289324 100644 --- a/src/widget/widgets/image.js +++ b/src/widget/widgets/image.js @@ -26,7 +26,6 @@ class WidgetImage extends React.Component { this.state = { file: undefined, - fileDate: null } } @@ -44,24 +43,23 @@ class WidgetImage extends React.Component { componentDidUpdate(prevProps: Readonly

, prevState: Readonly, snapshot: SS) { + if(this.props.widget.customProperties.file === -1){ + this.props.widget.customProperties.update = false; + if(this.state.file !== undefined) this.setState({ file: undefined }) + } let file = this.props.files.find(file => file.id === parseInt(this.props.widget.customProperties.file, 10)); - if (file !== undefined) { - if (this.state.file === undefined || (this.state.file.id !== file.id) || this.state.fileDate !== file.date) { - + if (this.props.widget.customProperties.update) { + this.props.widget.customProperties.update = false; AppDispatcher.dispatch({ type: 'files/start-download', data: file.id, token: this.props.token }); - - this.setState({ file: file, fileDate: file.date }); + this.setState({ file: file }) } - } else if (this.setState.file !== undefined) { - console.log("file undefined", file) - this.setState({file:undefined}) } } diff --git a/src/widget/widgets/line.js b/src/widget/widgets/line.js index 93249f6..bfdbe9c 100644 --- a/src/widget/widgets/line.js +++ b/src/widget/widgets/line.js @@ -49,18 +49,7 @@ class WidgetLine extends Component { height = this.state.height; } - // calculate the length of the line - let length = 0; - if (rotation > 0) { - if (width <= height) { - length = width / Math.abs(Math.cos(rad)); - } - else { - length = height / Math.abs(Math.sin(rad)); - } - } else { - length = width; - } + let length = width; // calculate line coordinates (in percent) const x1 = width * 0.5 - 0.5 * Math.cos(rad) * length;