import React, { useState } from 'react' import useStore from '../useStore.js' import { Stage, Layer, Image as KImage, Rect } from 'react-konva' const W=1000,H=1000 function useImage(url){ const [i,set]=React.useState(null); React.useEffect(()=>{ if(!url){set(null);return} const im=new Image(); im.crossOrigin='anonymous'; im.onload=()=>set(im); im.src=url },[url]); return i } export default function App(){ const s = useStore() const d = s.details[s.active] const orderInfo = s.lastOrderInfo const img = useImage(d.previewUrl) return (
{['front','sleeveL','back','sleeveR'].map(v=>( ))}
s.setScale(parseFloat(e.target.value))}/> s.setTx(parseFloat(e.target.value))}/> s.setTy(parseFloat(e.target.value))}/>
{ if(!e.target.files?.[0])return; await s.uploadAndSpread(e.target.files[0]); e.target.value='' }}/>
{orderInfo?.mockups?.length ? (
Mockups:
    {orderInfo.mockups.map((url, idx)=>(
  • {url}
  • ))}
{orderInfo.mockups_dir ? (
Open mockups folder
) : null}
) : null}
{!img ? : ( { const n=e.target; s.setTx(n.x()); s.setTy(n.y()) }} onWheel={e=>{ e.evt.preventDefault(); const delta=e.evt.deltaY>0?-0.05:0.05; s.setScale(Math.max(0.05, d.transform.scale+delta)) }} /> )}
) }