summaryrefslogtreecommitdiffstats
path: root/webapp/components/view_image.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components/view_image.jsx')
-rw-r--r--webapp/components/view_image.jsx41
1 files changed, 26 insertions, 15 deletions
diff --git a/webapp/components/view_image.jsx b/webapp/components/view_image.jsx
index 7872867f3..cc0bcee9d 100644
--- a/webapp/components/view_image.jsx
+++ b/webapp/components/view_image.jsx
@@ -134,28 +134,39 @@ export default class ViewImageModal extends React.Component {
previewUrl = getFileUrl(fileInfo.id);
}
- const img = new Image();
- img.load(
+ Utils.loadImage(
previewUrl,
- () => {
- const progress = this.state.progress;
- progress[index] = img.completedPercentage;
- this.setState({progress});
- }
+ () => this.handleImageLoaded(index),
+ (completedPercentage) => this.handleImageProgress(index, completedPercentage)
);
- img.onload = () => {
- const loaded = this.state.loaded;
- loaded[index] = true;
- this.setState({loaded});
- };
} else {
// there's nothing to load for non-image files
- var loaded = this.state.loaded;
- loaded[index] = true;
- this.setState({loaded});
+ this.handleImageLoaded(index);
}
}
+ handleImageLoaded = (index) => {
+ this.setState((prevState) => {
+ return {
+ loaded: {
+ ...prevState.loaded,
+ [index]: true
+ }
+ };
+ });
+ }
+
+ handleImageProgress = (index, completedPercentage) => {
+ this.setState((prevState) => {
+ return {
+ progress: {
+ ...prevState.progress,
+ [index]: completedPercentage
+ }
+ };
+ });
+ }
+
handleGetPublicLink() {
this.props.onModalDismissed();