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;