You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
3.5 KiB
2 lines
3.5 KiB
import{j as e}from"./markdown-vendor-DnN-_XEd.js";import{u as T,r as a}from"./data-vendor-DOiUz3Tw.js";import{bL as w,bU as A}from"./index-D1KhT7yD.js";import{M as d,I as N,B}from"./arco-vendor-Cm-ntj-q.js";import"./react-vendor-B8OyfHW2.js";const b=15,j=50,O=N.TextArea;function G({initialData:_,onClose:m,onSaved:f}){const{t:p}=T(),t=a.useCallback((r,s)=>p(r,{defaultValue:s}),[p]),[U,h]=a.useState(!1),[n,k]=a.useState(_.name??""),[l,y]=a.useState(_.signature??""),[c,L]=a.useState(_.avatar??""),[g,R]=a.useState(null),x=a.useRef(null),i=a.useRef(null),C=a.useMemo(()=>n.length,[n]),S=a.useMemo(()=>l.length,[l]),I=a.useCallback(()=>{x.current?.click()},[]),E=a.useCallback(r=>{const s=r.target.files?.[0];if(!s)return;R(s),i.current&&URL.revokeObjectURL(i.current);const u=URL.createObjectURL(s);i.current=u,L(u)},[]);a.useEffect(()=>()=>{i.current&&URL.revokeObjectURL(i.current)},[]);const M=a.useCallback(async()=>{const r=n.trim(),s=l.trim();if(!r){d.warning(t("user.nickname_input_placeholder","Please enter nickname"));return}if(!s){d.warning(t("user.signature_input_placeholder","Please enter profile"));return}h(!0);try{let u="";if(g){const v=await w(g,"avatar");u=String(v?.url??v?.data?.url??"")}const o={avatar:u||c,name:r,signature:s};await A({name:o.name,signature:o.signature,avatar:o.avatar}),f?.(o),d.success(t("common.save_success","Saved successfully")),m()}catch{d.error(t("common.operate_failed","Operation failed, please try again later"))}finally{h(!1)}},[c,n,m,f,l,t,g]);return e.jsxs("div",{className:"user_edit_dialog",children:[e.jsxs("div",{className:"user_edit_dialog__title",children:[e.jsx("span",{children:t("user.edit_profile","Edit profile")}),e.jsx("button",{type:"button",className:"user_edit_dialog__close",onClick:m,"aria-label":t("button.close","Close"),children:"×"})]}),e.jsxs("div",{className:"user_edit_dialog__content",children:[e.jsx("div",{className:"user_edit_dialog__avatarWrapper",children:c?e.jsx("img",{className:"user_edit_dialog__avatar",src:c,alt:"avatar"}):null}),e.jsx("input",{ref:x,type:"file",accept:"image/*",className:"user_edit_dialog__hiddenInput",onChange:E}),e.jsx("button",{type:"button",className:"user_edit_dialog__avatarButton",onClick:I,children:t("user.change_avatar","Change avatar")}),e.jsx("label",{className:"user_edit_dialog__label user_edit_dialog__label_required",children:t("user.nickname","Nickname")}),e.jsxs("div",{className:"user_edit_dialog__inputBody",children:[e.jsx(N,{className:"user_edit_dialog__input",name:"name",placeholder:t("user.nickname_input_placeholder","Please enter nickname"),maxLength:b,value:n,onChange:k}),e.jsxs("div",{className:"user_edit_dialog__suffix",children:[e.jsx("span",{children:C})," / ",b]})]}),e.jsx("div",{className:"user_edit_dialog__description",children:t("user.nickname_input_description","You can use letters and numbers. Up to 15 characters.")}),e.jsx("label",{className:"user_edit_dialog__label user_edit_dialog__label_required",children:t("user.signature","Profile")}),e.jsxs("div",{className:"user_edit_dialog__inputBody",children:[e.jsx(O,{className:"user_edit_dialog__textarea",name:"signature",placeholder:t("user.signature_input_placeholder","Tell us about yourself"),maxLength:j,value:l,onChange:y,autoSize:!1}),e.jsxs("div",{className:"user_edit_dialog__suffix",children:[e.jsx("span",{children:S})," / ",j]})]}),e.jsx("div",{className:"user_edit_dialog__buttons",children:e.jsx(B,{type:"primary",loading:U,onClick:()=>void M(),children:p("button.save")})})]})]})}export{G as default};
|
|
//# sourceMappingURL=index-DL-YrAe9.js.map
|
|
|