Files
wechat_wc/dist/pages/diy/stickerEdit/index.js
T

1 line
8.0 KiB
JavaScript

"use strict";(wx["webpackJsonp"]=wx["webpackJsonp"]||[]).push([[339],{9519:function(e,s,t){var a=t(7842),n=t(9379),c=t(5544),i=t(118),r=t(758),l=t.n(r),o=t(6540),d=t(8594),u=t(9703),h=t(9201),f=t(5414),m=t(9674),x=t(9513),g=t(4848),v=function(e,s,t){return Math.min(Math.max(e,s),t)};function j(){var e=(0,u.wR)(),s=e.resolvedTheme,t=(0,h.c)();(0,f.l)(s);var a=(0,o.useState)(""),r=(0,c.A)(a,2),j=r[0],S=r[1],N=(0,o.useState)(""),p=(0,c.A)(N,2),w=p[0],T=p[1],k=(0,o.useState)(null),b=(0,c.A)(k,2),y=b[0],A=b[1],E=(0,o.useState)(0),Y=(0,c.A)(E,2),M=Y[0],C=Y[1],I=(0,o.useState)(0),R=(0,c.A)(I,2),P=R[0],D=R[1],q=(0,o.useState)(0),B=(0,c.A)(q,2),F=B[0],Q=B[1],J=(0,o.useState)(!1),O=(0,c.A)(J,2),X=O[0],_=O[1],z=(0,o.useState)(!1),H=(0,c.A)(z,2),G=H[0],K=H[1],L=((0,o.useRef)(null),(0,o.useRef)(null)),U=(0,o.useRef)(null),V=(0,o.useRef)({width:0,height:0}),W=(0,o.useCallback)(function(e){G||l().nextTick(function(){var s=l().createSelectorQuery();s.select("#editCanvas").fields({node:!0,size:!0}).exec(function(s){var t=s&&s[0],a=t?t.node:void 0;if(a){var n=a.getContext("2d"),c=s[0]&&s[0].width||300,i=s[0]&&s[0].height||400;c<=0&&(c=300),i<=0&&(i=400);var r=l().getSystemInfoSync().pixelRatio||1;a.width=Math.round(c*r),a.height=Math.round(i*r),n.scale(r,r),U.current=a,L.current=n,V.current={width:c,height:i},K(!0),Z(n,c,i,e)}else setTimeout(function(){return W(e)},300)})})},[G]);(0,o.useEffect)(function(){var e=l().getCurrentInstance().router,s=e?e.params:void 0,t=s?s.designId:"",a=s?s.stickerId:"";S(t),T(a);var n=(0,d.p_)(),c=n.find(function(e){return e.id===t}),i=c&&c.designData&&c.designData.stickers?c.designData.stickers.find(function(e){return e.id===a}):void 0;i&&(A(i),C(i.edits&&i.edits.brightness||0),D(i.edits&&i.edits.hue||0),Q(i.edits&&i.edits.contrast||0),W(i))},[W]);var Z=function(e,s,t,a,n){if(e&&U.current){var c=U.current;if(s&&t){var i=a.width||200,r=a.height||200,o=c.createImage();o.onload=function(){e.clearRect(0,0,s,t),e.save();var a=.9*Math.min(s/i,t/r,4),c=i*a,l=r*a,d=(s-c)/2,u=(t-l)/2,h=n?n.brightness:M,f=n?n.hue:P,m=n?n.contrast:F;e.filter=0!==h||0!==f||0!==m?"brightness(".concat(100+h,"%) hue-rotate(").concat(f,"deg) contrast(").concat(100+m,"%)"):"none",e.drawImage(o,d,u,c,l),e.restore()},o.onerror=function(e){console.error("Canvas load image error:",e,a.src),l().showToast({title:"\u56fe\u7247\u52a0\u8f7d\u5931\u8d25",icon:"none"})},a.src&&(o.src=a.src)}}},$=function(){if(y&&L.current&&U.current){var e=V.current,s=e.width,t=e.height;Z(L.current,s,t,y,{brightness:M,hue:P,contrast:F})}};(0,o.useEffect)(function(){$()},[M,P,F]);var ee=function(){y&&j&&(_(!0),l().canvasToTempFilePath({canvas:U.current,quality:.92,success:function(e){var s=e.tempFilePath,t=(0,d.p_)(),a=t.findIndex(function(e){return e.id===j});if(-1!==a){var c=t[a].designData&&t[a].designData.stickers||[],i=c.findIndex(function(e){return e.id===w});-1!==i?(c[i]=(0,n.A)((0,n.A)({},c[i]),{},{src:s,edits:{brightness:M,hue:P,contrast:F}}),(0,d.i5)(j,{designData:(0,n.A)((0,n.A)({},t[a].designData),{},{stickers:c})}),l().showToast({title:"\u4fdd\u5b58\u6210\u529f",icon:"success"}),l().navigateBack()):_(!1)}else _(!1)},fail:function(){_(!1),l().showToast({title:"\u4fdd\u5b58\u5931\u8d25",icon:"none"})}}))},se=function(){y&&(l().cropImage?l().cropImage({src:y.src,cropScale:"1:1",success:function(e){var s=(0,n.A)((0,n.A)({},y),{},{src:e.tempFilePath});A(s),setTimeout(function(){return $()},200)}}):l().showToast({title:"\u5f53\u524d\u5fae\u4fe1\u7248\u672c\u4e0d\u652f\u6301\u88c1\u526a",icon:"none"}))},te="https://your-api-domain.com",ae=function(){y&&(_(!0),l().uploadFile({url:"".concat(te,"/api/sketch"),filePath:y.src,name:"image",success:function(e){try{var s=JSON.parse(e.data);if(!s.url)throw new Error("no url");var t=(0,n.A)((0,n.A)({},y),{},{src:s.url,edits:(0,n.A)((0,n.A)({},y.edits),{},{sketchSrc:s.url})});A(t),setTimeout(function(){return $()},200),l().showToast({title:"\u7ebf\u7a3f\u751f\u6210\u6210\u529f",icon:"success"})}catch(e){ne()}},fail:function(){ne()}}))},ne=function(){y&&L.current?(l().showToast({title:"\u4f7f\u7528\u672c\u5730\u7ebf\u7a3f",icon:"none"}),C(20),Q(80),D(0),_(!1)):_(!1)},ce="".concat((M+100)/200*100,"%"),ie="".concat((P+180)/360*100,"%"),re="".concat((F+100)/200*100,"%");return(0,g.jsxs)(i.Ss,{className:"theme-".concat(s),children:[(0,g.jsx)(m.A,{}),(0,g.jsxs)(i.Ss,{className:"sticker-edit-page",children:[(0,g.jsxs)(i.Ss,{className:"edit-header",style:{paddingTop:"".concat(t.headerPaddingTop,"px")},children:[(0,g.jsx)(i.EY,{className:"edit-back",onTap:function(){return l().navigateBack()},children:"\u2190"}),(0,g.jsx)(i.EY,{className:"edit-title",children:"\u7f16\u8f91\u8d34\u7eb8"}),(0,g.jsx)(i.EY,{className:"edit-save",onTap:ee,children:"\u4fdd\u5b58"})]}),(0,g.jsx)(i.Ss,{className:"edit-canvas-wrap",children:(0,g.jsx)(i.Hl,{id:"editCanvas",type:"2d",className:"edit-canvas",style:{width:"100%",height:"480rpx"}})}),(0,g.jsxs)(i.Ss,{className:"edit-tools surface-card mt-20",children:[(0,g.jsxs)(i.Ss,{className:"edit-row",children:[(0,g.jsx)(i.EY,{className:"edit-label",children:"\u5feb\u901f\u64cd\u4f5c"}),(0,g.jsxs)(i.Ss,{className:"edit-quick-actions",children:[(0,g.jsx)(i.Ss,{className:"quick-btn",onTap:se,children:(0,g.jsx)(i.EY,{children:"\u88c1\u526a"})}),(0,g.jsx)(i.Ss,{className:"quick-btn",onTap:ae,children:(0,g.jsx)(i.EY,{children:"\u8f6c\u7ebf\u7a3f"})})]})]}),(0,g.jsxs)(i.Ss,{className:"edit-row slider-row",onTouchMove:function(e){var s=e.changedTouches[0].clientX,t=l().createSelectorQuery().in(e.currentTarget);t.select(".slider-track").boundingClientRect(function(e){if(e){var t=v((s-e.left)/e.width,0,1),a=1*Math.round((200*t-100)/1);C(v(a,-100,100))}}).exec()},children:[(0,g.jsx)(i.EY,{className:"edit-label",children:"\u4eae\u5ea6"}),(0,g.jsxs)(i.Ss,{className:"slider-wrap",children:[(0,g.jsxs)(i.Ss,{className:"slider-track",children:[(0,g.jsx)(i.Ss,{className:"slider-fill",style:{width:ce}}),(0,g.jsx)(i.Ss,{className:"slider-thumb",style:{left:ce}})]}),(0,g.jsx)(i.EY,{className:"slider-value",children:M>0?"+".concat(M):M})]})]}),(0,g.jsxs)(i.Ss,{className:"edit-row slider-row",onTouchMove:function(e){var s=e.changedTouches[0].clientX,t=l().createSelectorQuery().in(e.currentTarget);t.select(".slider-track").boundingClientRect(function(e){if(e){var t=v((s-e.left)/e.width,0,1),a=1*Math.round((360*t-180)/1);D(v(a,-180,180))}}).exec()},children:[(0,g.jsx)(i.EY,{className:"edit-label",children:"\u8272\u76f8"}),(0,g.jsxs)(i.Ss,{className:"slider-wrap",children:[(0,g.jsxs)(i.Ss,{className:"slider-track",children:[(0,g.jsx)(i.Ss,{className:"slider-fill",style:{width:ie}}),(0,g.jsx)(i.Ss,{className:"slider-thumb",style:{left:ie}})]}),(0,g.jsx)(i.EY,{className:"slider-value",children:P>0?"+".concat(P):P})]})]}),(0,g.jsxs)(i.Ss,{className:"edit-row slider-row",onTouchMove:function(e){var s=e.changedTouches[0].clientX,t=l().createSelectorQuery().in(e.currentTarget);t.select(".slider-track").boundingClientRect(function(e){if(e){var t=v((s-e.left)/e.width,0,1),a=1*Math.round((200*t-100)/1);Q(v(a,-100,100))}}).exec()},children:[(0,g.jsx)(i.EY,{className:"edit-label",children:"\u5bf9\u6bd4\u5ea6"}),(0,g.jsxs)(i.Ss,{className:"slider-wrap",children:[(0,g.jsxs)(i.Ss,{className:"slider-track",children:[(0,g.jsx)(i.Ss,{className:"slider-fill",style:{width:re}}),(0,g.jsx)(i.Ss,{className:"slider-thumb",style:{left:re}})]}),(0,g.jsx)(i.EY,{className:"slider-value",children:F>0?"+".concat(F):F})]})]})]}),(0,g.jsx)(i.Ss,{style:{flex:1}}),(0,g.jsxs)(x.A,{className:"edit-footer",children:[(0,g.jsx)(i.Ss,{className:"btn-secondary",onTap:function(){return l().navigateBack()},children:(0,g.jsx)(i.EY,{children:"\u53d6\u6d88"})}),(0,g.jsx)(i.Ss,{className:"btn-primary",onTap:ee,children:(0,g.jsx)(i.EY,{children:"\u4fdd\u5b58"})})]}),(0,g.jsx)(i.Ss,{className:"safe-bottom-placeholder"}),X&&(0,g.jsx)(i.Ss,{className:"edit-loading",children:(0,g.jsx)(i.EY,{className:"edit-loading-text",children:"\u5904\u7406\u4e2d\u2026"})})]})]})}var S={navigationStyle:"custom",enablePageMeta:!0,navigationBarTitleText:"\u7f16\u8f91\u8d34\u7eb8"};Page((0,a.createPageConfig)(j,"pages/diy/stickerEdit/index",{root:{cn:[]}},S||{}))}},function(e){var s=function(s){return e(e.s=s)};e.O(0,[907,96,76],function(){return s(9519)});e.O()}]);