summaryrefslogtreecommitdiff
path: root/frontend/app/common/imageCrop.component.js
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/app/common/imageCrop.component.js')
-rw-r--r--frontend/app/common/imageCrop.component.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/frontend/app/common/imageCrop.component.js b/frontend/app/common/imageCrop.component.js
new file mode 100644
index 0000000..f687d90
--- /dev/null
+++ b/frontend/app/common/imageCrop.component.js
@@ -0,0 +1,41 @@
+import React, { Component } from 'react';
+import { cropImage } from 'app/utils'
+
+export default class ImageCrop extends Component {
+ state = {
+ cropURL: null
+ }
+
+ componentDidMount() {
+ const { url, crop } = this.props
+ this.crop(url, crop)
+ }
+
+ componentDidUpdate(prevProps) {
+ const { url, crop } = this.props
+ if (this.props.crop !== prevProps.crop) {
+ cropImage(url, crop).then(canvas =>{
+ const cropURL = canvas.toDataURL('image/jpeg', 0.8)
+ this.setState({ cropURL })
+ })
+ }
+ }
+
+ crop(url, crop) {
+ cropImage(url, crop).then(canvas =>{
+ const cropURL = canvas.toDataURL('image/jpeg', 0.8)
+ this.setState({ cropURL })
+ })
+ }
+
+
+ render() {
+ const { cropURL } = this.state
+ if (!cropURL) {
+ return null
+ }
+ return (
+ <img src={cropURL} className='preview' />
+ )
+ }
+}