summaryrefslogtreecommitdiff
path: root/animism-align/frontend/app/common/imageCrop.component.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-07-22 14:05:15 +0200
committerJules Laplace <julescarbon@gmail.com>2020-07-22 14:05:15 +0200
commitef78bc6a084f92b4794e987b5832240d85b6479e (patch)
treeb314b630800db6aa60f28ef0b115625e6ca176db /animism-align/frontend/app/common/imageCrop.component.js
parent85d4cb9addf9ca887d3440b2786665d67d9917c4 (diff)
refactor app using babel module-resolver
Diffstat (limited to 'animism-align/frontend/app/common/imageCrop.component.js')
-rw-r--r--animism-align/frontend/app/common/imageCrop.component.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/animism-align/frontend/app/common/imageCrop.component.js b/animism-align/frontend/app/common/imageCrop.component.js
new file mode 100644
index 0000000..f139dce
--- /dev/null
+++ b/animism-align/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' />
+ )
+ }
+}