import Cropper from 'react-easy-crop' import Upload from './Upload' import { useState } from 'react'; import WindowFloat from './WindowFloat'; import Circle from './Circle'; export default (props) => { // var pimage = null var [crp, setCrp] = useState({ imageSrc: global.user.image || global.cdn("/files/user.svg"), // imageSrc:global.cdn("/files/user.svg"), crop: { x: 0, y: 0 }, zoom: 1, aspect: 1, portion: 1, refw: 1, }) // var functions: any = {} var refreshcrp = () => { setCrp(JSON.parse(JSON.stringify(crp))) } var onCropChange = (crop) => { crp.crop = crop; refreshcrp(); } var onCropComplete = (croppedArea, croppedAreaPixels) => { // console.log(croppedAreaPixels.width / croppedAreaPixels.height) } var onZoomChange = (zoom) => { crp.zoom = zoom; refreshcrp(); } return <> props.onclose?.()}>
{ crp.portion = media.naturalWidth / media.naturalHeight crp.refw = media.width, refreshcrp(); }} onCropChange={onCropChange} onCropComplete={onCropComplete} onZoomChange={onZoomChange} />
{ if (st.length == 0) return if (st[0].percent < 100) { crp.imageSrc = global.cdn("/files/picload.svg"); refreshcrp(); } else { crp.imageSrc = st[0].url; refreshcrp() } // global.uploaders["profile-image"].clear() }} /> { global.uploaders["profile-image"].open() }}> {lang.uploadnewpic} { if (!crp.imageSrc) { alerter("there is no image to send."); return; } let json = await (await fetch('/api/user/profilepic', { method: "POST", body: JSON.stringify({ url: crp.imageSrc, zoom: crp.zoom, x: crp.crop.x, y: crp.crop.y, portion: crp.portion, refw: crp.refw, }) })).json() if (json.code == 0) { window.location.reload(); props.onclose?.() } else { alerter(JSON.stringify(json)) } }}> {lang.confirm} {/* { functions.open(); }}> received transaction count   {lang.upload} */}
}