PageSourceSearch

https://www.vlooplay.com/assets/CreatorAccountSettings-Cf1djq9G.js

js vlooplay.com collected 2026-10-04 08:11:55 UTC 16,659 bytes, 1 lines download raw bytes

1import{e as $,a as q,J as I,u as M,b as B,r,bh as F,j as a,bi as Y,U as D,Z as G,V as J,B as c,b0 as Q,l as V,am as N,s as p,ai as X,an as Z}from"./index-FHybYNNE.js";import{C as y}from"./card-COMbDjKH.js";import{M as H}from"./mail-CPZJGLYf.js";import{T as K}from"./trash-2-CL_1Js4X.js";import{C as W}from"./circle-alert-BK0SyZtN.js";const ce=()=>{const{user:t,signOut:v,session:ee}=$(),f=q();I();const{toast:g}=M(),{i18n:e,t:o}=B(["creator"]),[ae,k]=r.useState(0),[_,A]=r.useState("Creator"),[se,te]=r.useState(null),[L,T]=r.useState(!0),[d,j]=r.useState(!1),[m,b]=r.useState(!1),[O,u]=r.useState(!1),[i,x]=r.useState(""),[h,C]=r.useState(!1),w=[{code:"ko",name:"한국어",flag:"🇰🇷"},{code:"en",name:"English",flag:"🇺🇸"},{code:"ja",name:"日本語",flag:"🇯🇵"},{code:"zh",name:"中文",flag:"🇨🇳"}],S=w.find(s=>s.code===e.language)||w[0],R=F();r.useEffect(()=>{(async()=>{var n;const l=await N.getSession();(n=l==null?void 0:l.app)!=null&&n.creatorName&&A(l.app.creatorName)})(),T(!1)},[]),r.useEffect(()=>{const s=()=>{k(l=>l+1)};return e.on("languageChanged",s),()=>e.off("languageChanged",s)},[e]),r.useEffect(()=>{const s=l=>{const n=l.target;d&&!n.closest(".language-dropdown-container")&&j(!1)};if(d)return document.addEventListener("click",s),()=>document.removeEventListener("click",s)},[d]);const U=async()=>{if(i.trim().length<20){g({variant:"destructive",title:e.language==="ko"?"사유가 너무 짧습니다":e.language==="ja"?"理由が短すぎます":e.language==="zh"?"理由太短":"Reason too short",description:e.language==="ko"?"삭제 사유를 20자 이상 입력해주세요.":e.language==="ja"?"削除理由を20文字以上入力してください。":e.language==="zh"?"请输入20个字符以上的删除理由。":"Please enter at least 20 characters for the deletion reason."});return}C(!0);try{console.log("=== CREATOR ACCOUNT DELETION ==="),console.log("User ID:",t==null?void 0:t.id),console.log("Reason:",i.trim());const s=new Date().toISOString(),{data:l,error:n}=await p.from("creator_applications").update({status:"deletion_pending",is_visible_in_search:!1,deletion_reason:i.trim(),deletion_requested_at:s,updated_at:s}).eq("user_id",t==null?void 0:t.id).select();if(n)throw console.error("Creator status update error:",n),new Error("Failed to update creator status");console.log("Creator status set to deletion_pending:",l);const{error:z}=await p.auth.updateUser({data:{deletion_pending:!0,deletion_requested_at:s,deletion_reason:i.trim()}});z&&console.error("User metadata update error (non-critical):",z);const{error:E}=await p.from("account_deletion_requests").insert({user_id:t==null?void 0:t.id,user_email:t==null?void 0:t.email,reason:i.trim(),requested_at:s,status:"pending"});E&&console.error("Deletion record error (non-critical):",E),console.log("=== CREATOR ACCOUNT DELETION REQUESTED ==="),await N.clearSession(),g({title:e.language==="ko"?"계정 삭제 요청 완료":e.language==="ja"?"アカウント削除リクエスト完了":e.language==="zh"?"账户删除请求完成":"Account deletion requested",description:e.language==="ko"?"7일 이내에 계정이 영구 삭제됩니다.":e.language==="ja"?"7日以内にアカウントが永久削除されます。":e.language==="zh"?"账户将在7天内永久删除。":"Your account will be permanently deleted within 7 days."}),await v(),f("/login")}catch(s){console.error("Creator account deletion error:",s),g({variant:"destructive",title:e.language==="ko"?"계정 삭제 실패":e.language==="ja"?"アカウント削除失敗":e.language==="zh"?"账户删除失败":"Account deletion failed",description:s instanceof Error?s.message:e.language==="ko"?"나중에 다시 시도해주세요.":e.language==="ja"?"後でもう一度お試しください。":e.language==="zh"?"请稍后重试。":"Please try again later."})}finally{C(!1),u(!1),x("")}},P=async()=>{try{await v(),g({title:e.language==="ko"?"로그아웃 완료":e.language==="ja"?"ログアウト完了":e.language==="zh"?"登出成功":"Signed out successfully",description:e.language==="ko"?"크리에이터 대시보드에서 로그아웃되었습니다.":e.language==="ja"?"クリエイターダッシュボードからログアウトしました。":e.language==="zh"?"已从创作者控制面板登出。":"You have been logged out from the creator dashboard."}),f("/login")}catch(s){console.error("Error signing out:",s),g({variant:"destructive",title:e.language==="ko"?"로그아웃 실패":e.language==="ja"?"ログアウト失敗":e.language==="zh"?"登出失败":"Sign out failed",description:e.language==="ko"?"로그아웃 중 문제가 발생했습니다. 다시 시도해주세요.":e.language==="ja"?"ログアウト中に問題が発生しました。再試行してください。":e.language==="zh"?"登出时出现问题,请重试。":"There was a problem signing out. Please try again."})}};return L?a.jsx("div",{className:"p-4 md:p-8",children:a.jsx("div",{className:"flex justify-center py-8",children:a.jsx("div",{className:"animate-spin rounded-full h-10 w-10 border-b-2 border-vlinky-purple"})})}):a.jsxs("div",{className:"p-3 sm:p-4 md:p-8 max-w-4xl mx-auto",children:[a.jsx("div",{className:"mb-4 sm:mb-6",children:a.jsx("h1",{className:"text-2xl md:text-3xl font-bold text-gray-800 mb
1-4 md:mb-6",children:e.language==="ko"?"계정 설정":e.language==="ja"?"アカウント設定":e.language==="zh"?"账户设置":"Account Settings"})}),a.jsxs(y,{className:"p-4 sm:p-6 mb-4 sm:mb-6",children:[a.jsxs("div",{className:"flex items-center mb-3 sm:mb-4",children:[a.jsx(D,{className:"h-4 w-4 sm:h-5 sm:w-5 text-gray-500 mr-2"}),a.jsx("h2",{className:"text-base sm:text-lg font-semibold text-gray-800",children:e.language==="ko"?"계정 정보":e.language==="ja"?"アカウント情報":e.language==="zh"?"账户信息":"Account Information"})]}),a.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[a.jsxs("div",{className:"flex items-center space-x-3 sm:space-x-4",children:[a.jsx("div",{className:"w-12 h-12 sm:w-16 sm:h-16 bg-purple-100 rounded-full flex items-center justify-center flex-shrink-0",children:a.jsx(D,{className:"w-6 h-6 sm:w-8 sm:h-8 text-purple-600"})}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("h3",{className:"text-lg sm:text-xl font-semibold text-gray-800 truncate",children:_}),a.jsx(G,{variant:"secondary",className:"bg-green-100 text-green-800 text-xs sm:text-sm mt-1",children:e.language==="ko"?"크리에이터":e.language==="ja"?"クリエイター":e.language==="zh"?"创作者":"Creator"})]})]}),a.jsxs("div",{className:"flex items-start space-x-3",children:[a.jsx(H,{className:"h-4 w-4 text-gray-400 mt-0.5 flex-shrink-0"}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("p",{className:"text-xs sm:text-sm text-gray-500",children:e.language==="ko"?"이메일":e.language==="ja"?"メール":e.language==="zh"?"邮箱":"Email"}),a.jsx("p",{className:"text-sm sm:text-base text-gray-800 break-all",children:t==null?void 0:t.email})]})]})]})]}),a.jsxs(y,{className:"p-4 sm:p-6 mb-4 sm:mb-6",children:[a.jsxs("div",{className:"flex items-center mb-3 sm:mb-4",children:[a.jsx(J,{className:"h-4 w-4 sm:h-5 sm:w-5 text-gray-500 mr-2"}),a.jsx("h2",{className:"text-base sm:text-lg font-semibold text-gray-800",children:e.language==="ko"?"계정 관리":e.language==="ja"?"アカウント管理":e.language==="zh"?"账户管理":"Account Management"})]}),a.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[R&&a.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between p-3 sm:p-4 border border-gray-200 rounded-lg gap-3 sm:gap-0",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("h3",{className:"font-medium text-gray-800 text-sm sm:text-base",children:e.language==="ko"?"언어 설정":e.language==="ja"?"言語設定":e.language==="zh"?"语言设置":"Language Settings"}),a.jsx("p",{className:"text-xs sm:text-sm text-gray-500 mt-1",children:e.language==="ko"?"앱에서 사용할 언어를 선택하세요":e.language==="ja"?"アプリで使用する言語を選択してください":e.language==="zh"?"选择应用程序中使用的语言":"Choose the language for the app"})]}),a.jsxs("div",{className:"relative language-dropdown-container",children:[a.jsxs(c,{variant:"outline",onClick:s=>{s.stopPropagation(),m||j(!d)},disabled:m,className:"w-full sm:w-auto text-sm px-4 py-2 flex items-center justify-between gap-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Q,{className:"h-4 w-4"}),m?a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"w-4 h-4 border-2 border-gray-300 border-t-blue-600 rounded-full animate-spin"}),a.jsx("span",{children:o("accountSettings.languageSettings.changing")})]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:S.flag}),a.jsx("span",{children:S.name})]})]}),!m&&a.jsx(V,{className:`h-4 w-4 transition-transform ${d?"rotate-180":""}`})]}),d&&a.jsx("div",{className:"absolute right-0 mt-2 w-48 bg-white border border-gray-200 rounded-lg shadow-lg z-50",children:w.map(s=>a.jsxs("button",{className:`w-full text-left px-4 py-2 hover:bg-gray-50 flex items-center gap-3 first:rounded-t-lg last:rounded-b-lg ${e.language===s.code?"bg-blue-50 text-blue-600":"text-gray-700"}`,onClick:async l=>{l.stopPropagation();try{if(b(!0),j(!1),await new Promise(n=>setTimeout(n,300)),await e.changeLanguage(s.code),await N.saveUIState({language:s.code}),t!=null&&t.id)try{const{error:n}=await p.from("creator_applications").update({preferred_language:s.code}).eq("user_id",t.id)}catch(n){console.error("[CreatorAccountSettings] DB 업데이트 예외:",n)}k(n=>n+1),b(!1),setTimeout(()=>
1{g({title:o("accountSettings.languageSettings.changed"),description:e.language==="ko"?`${s.flag} ${s.name} - 알림 언어도 함께 변경되었습니다`:e.language==="ja"?`${s.flag} ${s.name} - 通知言語も変更されました`:e.language==="zh"?`${s.flag} ${s.name} - 通知语言也已更改`:`${s.flag} ${s.name} - Notification language also changed`})},100)}catch(n){console.error("Language change failed:",n),b(!1)}},children:[a.jsx("span",{className:"text-lg",children:s.flag}),a.jsx("span",{children:s.name}),e.language===s.code&&a.jsx("span",{className:"ml-auto text-blue-600",children:"✓"})]},s.code))})]})]}),a.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between p-3 sm:p-4 border border-gray-200 rounded-lg gap-3 sm:gap-0",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("h3",{className:"font-medium text-gray-800 text-sm sm:text-base",children:o("accountSettings.profileSettings.title")}),a.jsx("p",{className:"text-xs sm:text-sm text-gray-500 mt-1",children:o("accountSettings.profileSettings.description")})]}),a.jsx(c,{variant:"outline",onClick:()=>f("/creator/profile"),className:"w-full sm:w-auto text-sm px-4 py-2",children:o("accountSettings.profileSettings.button")})]}),a.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between p-3 sm:p-4 border border-purple-300 rounded-lg bg-white gap-3 sm:gap-0",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("h3",{className:"font-medium text-purple-900 text-sm sm:text-base",children:o("accountSettings.signOut.title")}),a.jsx("p",{className:"text-xs sm:text-sm text-purple-700 mt-1",children:o("accountSettings.signOut.description")})]}),a.jsxs(c,{onClick:P,className:"flex items-center justify-center gap-2 w-full sm:w-auto text-sm px-4 py-2 bg-purple-600 hover:bg-purple-700 text-white",children:[a.jsx(X,{className:"h-4 w-4"}),o("accountSettings.signOut.button")]})]}),a.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between p-3 sm:p-4 border border-red-300 rounded-lg bg-red-100 gap-3 sm:gap-0",children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("h3",{className:"font-medium text-red-900 text-sm sm:text-base",children:e.language==="ko"?"계정 삭제":e.language==="ja"?"アカウント削除":e.language==="zh"?"删除账户":"Delete Account"}),a.jsx("p",{className:"text-xs sm:text-sm text-red-700 mt-1",children:e.language==="ko"?"계정을 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다.":e.language==="ja"?"アカウントを永久的に削除します。この操作は元に戻せません。":e.language==="zh"?"永久删除账户。此操作无法撤销。":"Permanently delete your account. This action cannot be undone."})]}),a.jsxs(c,{variant:"destructive",onClick:()=>u(!0),className:"flex items-center justify-center gap-2 w-full sm:w-auto text-sm px-4 py-2",children:[a.jsx(K,{className:"h-4 w-4"}),e.language==="ko"?"계정 삭제":e.language==="ja"?"アカウント削除":e.language==="zh"?"删除账户":"Delete Account"]})]})]})]}),a.jsx(y,{className:"p-4 sm:p-6 border border-blue-200 bg-blue-50",children:a.jsxs("div",{className:"flex items-start",children:[a.jsx(W,{className:"h-4 w-4 sm:h-5 sm:w-5 text-blue-500 mr-2 sm:mr-3 mt-0.5 flex-shrink-0"}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("h3",{className:"font-medium text-blue-800 mb-1 sm:mb-2 text-sm sm:text-base",children:o("accountSettings.support.title")}),a.jsx("p",{className:"text-blue-700 text-xs sm:text-sm break-words",children:o("accountSettings.support.description")})]})]})}),O&&Y.createPortal(a.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center p-4 z-[9999]",style:{position:"fixed",top:0,left:0,right:0,bottom:0},children:a.jsxs("div",{className:"bg-white rounded-lg max-w-md w-full p-6 max-h-[90vh] overflow-y-auto",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4",children:[a.jsx("h2",{className:"text-lg font-semibold text-red-900",children:e.language==="ko"?"계정 삭제":e.language==="ja"?"アカウント削除":e.language==="zh"?"删除账户":"Delete Account"}),a.jsx(c,{variant:"ghost",size:"sm",onClick:()=>{u(!1),x("")},className:"h-6 w-6 p-0",children:a.jsx(Z,{className:"h-4 w-4"})})]}),a.jsxs("div",{className:"mb-4",children:[a.jsx("p",{className:"text-sm text-gray-700 mb-4",children:e.language==="ko"?"삭제 요청 후 즉시 로그아웃되며, 크리에이터 노출이 중단됩니다. 계정과 데이터는 7일 이내 영구 삭제되며, 이 기간 동안 재로그인은 불가능합니다.":e.language==="ja"?"削除リクエスト後、即座にログアウトされ、クリエイター公開が停止されます。アカウントとデータは7日以内に永久削除され、この期間中の再ログインはできません。":e.language==="zh"?"删除请求后将立即登出,创作者展示将停止。账户和数据将在7天内永久删除,此期间无法重新登录。":"After deletion request, you will be immediately logged out and creator visibility will be stopped. Your account and data will be permanently deleted within 7 days, and re-login will not be possible during this period."}),a.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:e.language==="ko"?"삭제 사유 (최소 20자)":e.language==="ja"?"削除理由(最低20文字)":e.language==="zh"?"删除理由(至少20字符)":"Deleti
1on Reason (minimum 20 characters)"}),a.jsx("textarea",{value:i,onChange:s=>x(s.target.value),className:"w-full p-3 border border-gray-300 rounded-md focus:ring-2 focus:ring-red-500 focus:border-transparent resize-none",rows:4,placeholder:e.language==="ko"?"계정을 삭제하는 이유를 입력해주세요...":e.language==="ja"?"アカウントを削除する理由を入力してください...":e.language==="zh"?"请输入删除账户的理由...":"Please enter the reason for deleting your account...",disabled:h}),a.jsxs("p",{className:"text-xs text-gray-500 mt-1",children:[i.length,"/20 ",e.language==="ko"?"자":e.language==="ja"?"文字":e.language==="zh"?"字符":"characters"]})]}),a.jsxs("div",{className:"flex gap-3",children:[a.jsx(c,{variant:"outline",onClick:()=>{u(!1),x("")},disabled:h,className:"flex-1",children:e.language==="ko"?"취소":e.language==="ja"?"キャンセル":e.language==="zh"?"取消":"Cancel"}),a.jsx(c,{variant:"destructive",onClick:U,disabled:h||i.trim().length<20,className:"flex-1",children:h?a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-white"}),e.language==="ko"?"처리중...":e.language==="ja"?"処理中...":e.language==="zh"?"处理中...":"Processing..."]}):e.language==="ko"?"삭제 요청":e.language==="ja"?"削除リクエスト":e.language==="zh"?"删除请求":"Delete Request"})]})]})}),document.body)]})};export{ce as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.