1import{e as G,u as J,r as d,s as o,y as u,j as e,B as f,C as p,g as j,h as g,k as v,I as l}from"./index-D2nTIUW6.js";import{L as r}from"./label-CqvUOikV.js";import{c as w,b as A,d as K,S as O}from"./useSubAccountAccess-DcruaA3L.js";import{S as D,a as F,b as T,c as U,d as c}from"./select-B2JLFUtu.js";import{A as Q,h as W,a as X,b as Y,c as $,d as ee,e as se,f as re,g as ae}from"./alert-dialog-dvmylune.js";import{A as z}from"./AppSidebar-z8a-fGHs.js";import{T as ie}from"./ThemeToggle-BPqdirOw.js";import{A as te}from"./arrow-left-Cb8qoSkG.js";import{T as le}from"./trash-2-CCEV_PQQ.js";import{S as ne}from"./save-8sT9DLQX.js";import{U as ce}from"./user-YiKNAHvR.js";import{B as de,f as oe}from"./index-jWOCgtZT.js";import{C as me}from"./credit-card-tXuNPI_B.js";import{C as he}from"./calendar-D_FPvrmV.js";import"./sheet-7Db38C20.js";import"./index-Dvy0CvIF.js";import"./index-OeKMS4_g.js";import"./index-CHONsatH.js";import"./index-DGqKI25R.js";import"./chevron-down-Bac42aUA.js";import"./check-MbD2Kqf2.js";import"./tymora-logo-light-BXiYSJSy.js";import"./tymora-logo-dark-DNZmS7Qy.js";import"./index-Cd_VlP8R.js";import"./phone-BvYrHctJ.js";import"./sparkles-DvPruXp3.js";import"./target-C1IqMhQ-.js";import"./shield-_bFRplVx.js";import"./chart-column-DpOlYG77.js";import"./mail-2z0kfNQf.js";import"./instagram-B2JW29hO.js";import"./trending-up-DfYHHR-b.js";import"./building-2-2OWELtM3.js";import"./file-text-DPmRdMJZ.js";import"./video-BdmJ_s6b.js";import"./users-5MY5JoBQ.js";import"./book-open-CIK4t68s.js";import"./format-D5mfjbs0.js";const Xe=()=>{const{userId:x}=G(),m=J(),[E,I]=d.useState(!1),[k,L]=d.useState(!0),[N,y]=d.useState(!1),[b,_]=d.useState(!1),[n,P]=d.useState(null),[a,C]=d.useState({}),[q,B]=d.useState("UTC");d.useEffect(()=>{M(),V()},[]);const M=async()=>{try{const{data:{user:s}}=await o.auth.getUser();if(!s)return;const{data:t}=await o.from("profiles").select("timezone").eq("id",s.id).single();B((t==null?void 0:t.timezone)||"UTC")}catch(s){console.error("Error loading user timezone:",s)}},V=async()=>{try{const{data:{user:s}}=await o.auth.getUser();if(!s){m("/auth");return}const{data:t}=await o.from("user_roles").select("role").eq("user_id",s.id).eq("role","admin").maybeSingle();if(!t){u.error("Admin access required"),m("/dashboard");return}I(!0),S()}catch(s){console.error("Error:",s),m("/dashboard")}},S=async()=>{try{const{data:s,error:t}=await o.from("profiles").select("*").eq("id",x).single();if(t)throw t;P(s),C(s)}catch(s){console.error("Error fetching user:",s),u.error("Failed to load user"),m("/admin")}finally{L(!1)}},H=async()=>{y(!0);try{const{error:s}=await o.from("profiles").update(a).eq("id",x);if(s)throw s;u.success("User updated successfully"),S()}catch(s){console.error("Error updating user:",s),u.error("Failed to update user")}finally{y(!1)}},i=(s,t)=>{C(R=>({...R,[s]:t}))},Z=async()=>{if(x){_(!0);try{const{data:s,error:t}=await o.functions.invoke("delete-user",{body:{userId:x}});if(t)throw console.error("Function invoke error:",t),new Error(t.message||"Failed to delete user");if(s!=null&&s.error)throw console.error("Delete user error:",s.error),new Error(s.error);u.success("User deleted successfully"),m("/admin")}catch(s){console.error("Error deleting user:",s),u.error(s.message||"Failed to delete user. Please try again")}finally{_(!1)}}},h=s=>s?oe(new Date(s),q,"MMM d, yyyy h:mm a"):"â";return!E||k?e.jsx(w,{children:e.jsxs("div",{className:"min-h-screen flex w-full",children:[e.jsx(z,{}),e.jsx("div",{className:"flex-1 bg-background p-8",children:e.jsxs("div",{className:"max-w-4xl mx-auto space-y-4",children:[e.jsx(A,{className:"h-12 w-64"}),e.jsx(A,{className:"h-96 w-full"})]})})]})}):n?e.jsx(w,{children:e.jsxs("div",{className:"min-h-screen flex w-full",children:[e.jsx(z,{}),e.jsxs("div",{className:"flex-1 flex flex-col",children:[e.jsxs("header",{className:"h-16 border-b bg-card/50 backdrop-blur-sm flex items-center justify-between px-6",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(K,{}),e.jsx(f,{variant:"ghost",size:"icon",onClick:()=>m("/admin"),children:e.jsx(te,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-semibold",children:"User Details"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:n.email})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ie,{}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(Q,{children:[e.jsx(W,{asChild:!0,children:e.jsxs(f,{variant:"destructive",disabled:b,children:[e.jsx(le,{className:"h-4 w-4 mr-2"}),b?"Deleting...":"Delete User"]})}),e.jsxs(X,{children:[e.jsxs(Y,{children:[e.jsx($,{children:"Are you absolutely sure?"}),e.jsx(ee,{children:"This action cannot be undone. This will permanently delete the user account and all associated data including emails, preferences, and subscriptions."})]}),e.jsxs(se,{children:[e.jsx(re,{children:"Cancel"}),e.jsx(ae,{onClick:Z,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Delete User"})]})]})]}),e.jsxs(f,{onClick:H,disabled:N,children:[e.jsx(ne,{className:"h-4 w-4 mr-2"}),N?"Saving...":"Save Changes"]})]})]})]}),e.jsx("main",{className:"flex-1 p-8 pb-32 overflow-auto",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs(p,{children:[e.jsx(j,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ce,{className:"h-5 w-5"}),e.jsx(g,{children:"Personal Information"})]})}),e.jsx(v,{className:"space-y-4",children:e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"full_name",children:"Full Name"}),e.jsx(l,{id:"full_name",value:a.full_name||"",onChange:s=>i("full_name",s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"email",children:"Email"}),e.jsx(l,{id:"email",value:a.email||"",onChange:s=>i("email",s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"phone_number",children:"Phone Number"}
1),e.jsx(l,{id:"phone_number",value:a.phone_number||"",onChange:s=>i("phone_number",s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"company",children:"Company"}),e.jsx(l,{id:"company",value:a.company||"",onChange:s=>i("company",s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"timezone",children:"Timezone"}),e.jsx(l,{id:"timezone",value:a.timezone||"",onChange:s=>i("timezone",s.target.value)})]})]})})]}),e.jsxs(p,{children:[e.jsx(j,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(de,{className:"h-5 w-5"}),e.jsx(g,{children:"Address"})]})}),e.jsxs(v,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-1 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"address_line1",children:"Address Line 1"}),e.jsx(l,{id:"address_line1",value:a.address_line1||"",onChange:s=>i("address_line1",s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"address_line2",children:"Address Line 2"}),e.jsx(l,{id:"address_line2",value:a.address_line2||"",onChange:s=>i("address_line2",s.target.value)})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"city",children:"City"}),e.jsx(l,{id:"city",value:a.city||"",onChange:s=>i("city",s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"state",children:"State"}),e.jsx(l,{id:"state",value:a.state||"",onChange:s=>i("state",s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"zip_code",children:"Zip Code"}),e.jsx(l,{id:"zip_code",value:a.zip_code||"",onChange:s=>i("zip_code",s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"country",children:"Country"}),e.jsx(l,{id:"country",value:a.country||"",onChange:s=>i("country",s.target.value)})]})]})]})]}),e.jsxs(p,{children:[e.jsx(j,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(me,{className:"h-5 w-5"}),e.jsx(g,{children:"Subscription"})]})}),e.jsxs(v,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"subscription_status",children:"Status"}),e.jsxs(D,{value:a.subscription_status||"",onValueChange:s=>i("subscription_status",s),children:[e.jsx(F,{id:"subscription_status",children:e.jsx(T,{placeholder:"Select status"})}),e.jsxs(U,{children:[e.jsx(c,{value:"active",children:"Active"}),e.jsx(c,{value:"trialing",children:"Trialing"}),e.jsx(c,{value:"canceled",children:"Canceled"}),e.jsx(c,{value:"past_due",children:"Past Due"}),e.jsx(c,{value:"unpaid",children:"Unpaid"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"subscription_tier",children:"Tier"}),e.jsxs(D,{value:a.subscription_tier||"",onValueChange:s=>i("subscription_tier",s),children:[e.jsx(F,{id:"subscription_tier",children:e.jsx(T,{placeholder:"Select tier"})}),e.jsxs(U,{children:[e.jsx(c,{value:"free",children:"Free"}),e.jsx(c,{value:"basic",children:"Basic"}),e.jsx(c,{value:"professional",children:"Professional"}),e.jsx(c,{value:"enterprise",children:"Enterprise"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"stripe_customer_id",children:"Stripe Customer ID"}),e.jsx(l,{id:"stripe_customer_id",value:a.stripe_customer_id||"",onChange:s=>i("stripe_customer_id",s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"stripe_subscription_id",children:"Stripe Subscription ID"}),e.jsx(l,{id:"stripe_subscription_id",value:a.stripe_subscription_id||"",onChange:s=>i("stripe_subscription_id",s.target.value)})]})]}),e.jsx(O,{}),e.jsxs("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[e.jsxs("div",{children:[e.jsx(r,{className:"text-muted-foreground",children:"Subscription Start"}),e.jsx("p",{className:"mt-1",children:h(n.subscription_start)})]}),e.jsxs("div",{children:[e.jsx(r,{className:"text-muted-foreground",children:"Subscription End"}),e.jsx("p",{className:"mt-1",children:h(n.subscription_end)})]}),e.jsxs("div",{children:[e.jsx(r,{className:"text-muted-foreground",children:"Trial End"}),e.jsx("p",{className:"mt-1",children:h(n.trial_end)})]}),e.jsxs("div",{children:[e.jsx(r,{className:"text-muted-foreground",children:"Cancelled At"}),e.jsx("p",{className:"mt-1",children:h(n.subscription_cancelled_at)})]})]})]})]}),e.jsxs(p,{children:[e.jsx(j,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(he,{className:"h-5 w-5"}),e.jsx(g,{children:"Account Information"})]})}),e.jsx(v,{children:e.jsxs("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[e.jsxs("div",{children:[e.jsx(r,{className:"text-muted-foreground",children:"User ID"}),e.jsx("p",{className:"mt-1 font-mono text-xs",children:n.id})]}),e.jsxs("div",{children:[e.jsx(r,{className:"text-muted-foreground",children:"Account Created"}),e.jsx("p",{className:"mt-1",children:h(n.created_at)})]}),e.jsxs("div",{children:[e.jsx(r,{className:"text-muted-foreground",children:"Last Updated"}),e.jsx("p",{className:"mt-1",children:h(n.updated_at)})]})]})})]})]})})})]})]})}):null};export{Xe 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.