PageSourceSearch

https://app.knockknockapp.ai/assets/Detail-BIA0K320.js

js knockknockapp.ai collected 2026-10-01 16:40:35 UTC 15,102 bytes, 1 lines download raw bytes

1import{u as I,b as U,c as R,a as V}from"./query-vendor-BMwEzNLN.js";import{l as a,m as i,q as e,B as u,z as h,u as t,J as g,K as d,y as p,p as l,D as y,F as _,v as L,af as Q,a6 as $,a9 as K,r as M,e as S}from"./vue-vendor-c0W5WEtO.js";import{B as O,t as N}from"./index-B2Yag7Gu.js";import{a as W,b as H}from"./users-B3gzpAUo.js";import{ac as J,R as v,c as G,bQ as X,cO as Y,aF as Z,C as ee,ah as te,bU as se}from"./ui-vendor-B7SopUXd.js";import"./date-vendor-HBGOQ70J.js";import"./twilio-DAuME2Y9.js";import"./charts-BVdrK9wF.js";import"./socket-Kk_l3rvZ.js";const re={class:"mb-6"},ae={key:0,class:"flex items-center justify-center rounded-lg border border-gray-200 bg-white py-12 dark:border-gray-700 dark:bg-gray-800"},de={class:"text-center"},ie={key:1,class:"rounded-lg border border-red-200 bg-red-50 p-4 dark:border-red-900/50 dark:bg-red-900/20"},oe={class:"flex items-start gap-3"},ne={class:"mt-1 text-sm text-red-700 dark:text-red-300"},le={key:2},ue={class:"mb-6 flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between"},ge={class:"text-2xl font-bold text-gray-900 dark:text-white"},me={class:"mt-1 text-sm text-gray-600 dark:text-gray-400"},ce={class:"flex flex-wrap gap-2"},xe=["disabled"],ye=["disabled"],pe={class:"grid gap-6 lg:grid-cols-3"},be={class:"space-y-6 lg:col-span-2"},ke={class:"rounded-lg border border-gray-200 bg-white p-6 dark:border-gray-700 dark:bg-gray-800"},_e={class:"space-y-4"},fe={class:"mt-1 text-gray-900 dark:text-white"},he={class:"mt-1 text-gray-900 dark:text-white"},ve={class:"mt-1"},we={class:"inline-flex rounded-full bg-blue-50 px-2 py-1 text-xs font-medium text-blue-700 dark:bg-blue-500/20 dark:text-blue-400"},Ce={key:0,class:"inline-flex rounded-full bg-purple-50 px-2 py-1 text-xs font-medium text-purple-700 dark:bg-purple-500/20 dark:text-purple-400"},Ue={class:"mt-1"},Le={key:0},Se={class:"mt-1 text-gray-900 dark:text-white"},Ne={class:"mt-1 text-gray-900 dark:text-white"},ze={key:1},Ae={class:"mt-1 text-gray-900 dark:text-white"},Pe={key:0,class:"rounded-lg border border-gray-200 bg-white p-6 dark:border-gray-700 dark:bg-gray-800"},Be={class:"space-y-4"},Fe={key:0},je={class:"mt-1 font-mono text-sm break-all text-gray-900 dark:text-white"},De={key:1},Te={class:"mt-1 font-mono text-sm break-all text-gray-900 dark:text-white"},qe={key:2},Ee={class:"mt-1 font-mono text-sm break-all text-gray-900 dark:text-white"},Ie={key:1,class:"rounded-lg border border-gray-200 bg-white p-6 dark:border-gray-700 dark:bg-gray-800"},Re={key:0,class:"flex flex-wrap gap-2"},Ve={key:1,class:"text-sm text-gray-600 dark:text-gray-400"},Qe={class:"rounded-lg border border-gray-200 bg-white p-6 dark:border-gray-700 dark:bg-gray-800"},$e={class:"mb-4 flex items-center justify-between"},Ke={class:"text-xs text-gray-500 dark:text-gray-400"},Me={key:0,class:"text-sm text-gray-500 dark:text-gray-400"},Oe={key:1,class:"text-sm text-gray-500 dark:text-gray-400"},We={key:2,class:"overflow-x-auto"},He={class:"w-full text-left text-sm"},Je={class:"divide-y divide-gray-100 dark:divide-gray-700"},Ge={class:"py-2 pr-3 text-xs whitespace-nowrap text-gray-500 dark:text-gray-400"},Xe={class:"py-2 pr-3 font-mono text-xs"},Ye={class:"py-2 pr-3"},Ze={class:"py-2 pr-3 text-right tabular-nums"},et={class:"py-2 pr-3 text-right tabular-nums"},tt={class:"py-2 pr-3 text-right text-gray-600 tabular-nums dark:text-gray-400"},st={class:"space-y-6"},rt={key:0,class:"rounded-lg border border-gray-200 bg-white p-6 dark:border-gray-700 dark:bg-gray-800"},at={class:"space-y-3"},dt={class:"flex items-center gap-3"},it={class:"flex h-12 w-12 items-center justify-center rounded-full bg-teal-500 font-semibold text-white dark:bg-teal-600"},ot={class:"font-medium text-gray-900 dark:text-white"},nt={key:0,class:"text-sm text-gray-600 dark:text-gray-400"},lt={class:"border-t border-gray-200 pt-3 dark:border-gray-700"},ut={class:"rounded-lg border border-gray-200 bg-white p-6 dark:border-gray-700 dark:bg-gray-800"},gt={class:"space-y-3"},mt={class:"flex items-center justify-between"},ct={class:"font-semibold text-gray-900 dark:text-white"},Ct={__name:"Detail",setup(xt){const m=K(),z=I(),x=M(!1),{isPending:A,isError:P,error:B,data:r}=U({queryKey:["admin","users",S(()=>m.params.id)],queryFn:()=>W(m.params.id)}),{data:b,isPending:F}=U({queryKey:["admin","users",S(()=>m.params.id),"ai-credit-logs"],queryFn:()=>H(m.params.id,{limit:50})}),c=o=>
1typeof o=="number"&&Number.isFinite(o)?o.toLocaleString():"0",w=o=>typeof o!="number"||!Number.isFinite(o)||o===0?"0":o>0?`+${c(o)}`:c(o),{isPending:C,mutate:j}=R({mutationFn:async()=>{const o=r.value?.user?.status==="blocked"?"active":"blocked";return(await V.put(`/user/${m.params.id}`,{status:o})).data},onSuccess:()=>{z.invalidateQueries({queryKey:["admin","users"]}),N.success(`User ${r.value?.user?.status==="blocked"?"unblocked":"blocked"} successfully`)},onError:o=>{N.error(o.response?.data?.message||"Failed to update user status")}}),D=async()=>{if(!x.value){x.value=!0;try{await O({_id:m.params.id,email:r.value?.user?.email})}catch{}finally{x.value=!1}}},T=()=>{j()},k=o=>o?new Date(o).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"N/A",q=o=>{if(!o)return"?";const s=o.split(" ");return s.length>=2?(s[0][0]+s[1][0]).toUpperCase():o.substring(0,2).toUpperCase()},E=o=>({web_owner:"Web Owner",member:"Member",admin:"Admin"})[o]||o;return(o,s)=>{const f=$("router-link");return a(),i("div",null,[e("div",re,[u(f,{to:"/admin/users",class:"inline-flex items-center gap-2 text-sm font-medium text-gray-600 transition-colors hover:text-gray-900 dark:text-gray-400 dark:hover:text-white"},{default:h(()=>[u(t(J),{size:16}),s[0]||(s[0]=g(" Back to Users ",-1))]),_:1})]),t(A)?(a(),i("div",ae,[e("div",de,[u(t(v),{size:32,class:"mx-auto animate-spin text-gray-400 dark:text-gray-600"}),s[1]||(s[1]=e("p",{class:"mt-4 text-sm text-gray-600 dark:text-gray-400"},"Loading user details...",-1))])])):t(P)?(a(),i("div",ie,[e("div",oe,[u(t(G),{size:20,class:"text-red-600"}),e("div",null,[s[2]||(s[2]=e("h3",{class:"font-medium text-red-900 dark:text-red-400"},"Error Loading User",-1)),e("p",ne,d(t(B)?.message||"An error occurred while loading user details"),1)])])])):(a(),i("div",le,[e("div",ue,[e("div",null,[e("h1",ge,d(t(r)?.user?.name||t(r)?.user?.first_name||"Unnamed User"),1),e("p",me,d(t(r)?.user?.email),1)]),e("div",ce,[u(f,{to:`/admin/users/${t(m).params.id}/edit`,class:"inline-flex items-center gap-2 rounded-lg bg-teal-50 px-4 py-2 text-sm font-medium text-teal-600 transition-colors hover:bg-teal-100 dark:bg-teal-500/20 dark:text-teal-400 dark:hover:bg-teal-500/30"},{default:h(()=>[u(t(X),{size:16}),s[3]||(s[3]=g(" Edit User ",-1))]),_:1},8,["to"]),t(r)?.user?.user_type!=="admin"&&!t(r)?.user?.is_playground?(a(),i("button",{key:0,onClick:D,disabled:x.value,class:"inline-flex items-center gap-2 rounded-lg bg-purple-50 px-4 py-2 text-sm font-medium text-purple-600 transition-colors hover:bg-purple-100 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-purple-500/20 dark:text-purple-400 dark:hover:bg-purple-500/30"},[x.value?(a(),p(t(v),{key:0,size:16,class:"animate-spin"})):(a(),p(t(Y),{key:1,size:16})),g(" "+d(x.value?"Logging in...":"Login as User"),1)],8,xe)):l("",!0),e("button",{onClick:T,disabled:t(C),class:y(["inline-flex items-center gap-2 rounded-lg px-4 py-2 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50",t(r)?.user?.status==="blocked"?"bg-green-50 text-green-600 hover:bg-green-100 dark:bg-green-500/20 dark:text-green-400 dark:hover:bg-green-500/30":"bg-red-50 text-red-600 hover:bg-red-100 dark:bg-red-500/20 dark:text-red-400 dark:hover:bg-red-500/30"])},[t(C)?(a(),p(t(v),{key:0,size:16,class:"animate-spin"})):(a(),i(_,{key:1},[t(r)?.user?.status!=="blocked"?(a(),p(t(Z),{key:0,size:16})):(a(),p(t(ee),{key:1,size:16})),g(" "+d(t(r)?.user?.status==="blocked"?"Unblock User":"Block User"),1)],64))],10,ye)])]),e("div",pe,[e("div",be,[e("div",ke,[s[11]||(s[11]=e("h2",{class:"mb-4 text-lg font-semibold text-gray-900 dark:text-white"}," User Information ",-1)),e("dl",_e,[e("div",null,[s[4]||(s[4]=e("dt",{class:"text-sm font-medium text-gray-600 dark:text-gray-400"},"Full Name",-1)),e("dd",fe,d(t(r)?.user?.name||t(r)?.user?.first_name||"N/A"),1)]),e("div",null,[s[5]||(s[5]=e("dt",{class:"text-sm font-medium text-gray-600 dark:text-gray-400"},"Email",-1)),e("dd",he,d(t(r)?.user?.email),1)]),e("div",null,[s[6]||(s[6]=e("dt",{class:"text-sm font-medium text-gray-600 dark:text-gray-400"},"User Type",-1)),e("dd",ve,[e("span",we,d(E(t(r)?.user?.user_type)),1),t(r)?.user?.is_playground?(a(),i("span",Ce," Playground ")):l("",!0)])]),e("div",null,[s[7
1]||(s[7]=e("dt",{class:"text-sm font-medium text-gray-600 dark:text-gray-400"},"Status",-1)),e("dd",Ue,[e("span",{class:y(["inline-flex items-center gap-1 rounded-full px-2 py-1 text-xs font-medium",t(r)?.user?.status==="blocked"?"bg-red-50 text-red-700 dark:bg-red-500/20 dark:text-red-400":"bg-green-50 text-green-700 dark:bg-green-500/20 dark:text-green-400"])},[e("span",{class:y(["h-1.5 w-1.5 rounded-full",t(r)?.user?.status==="blocked"?"bg-red-500":"bg-green-500"])},null,2),g(" "+d(t(r)?.user?.status||"active"),1)],2)])]),t(r)?.user?.phone?(a(),i("div",Le,[s[8]||(s[8]=e("dt",{class:"text-sm font-medium text-gray-600 dark:text-gray-400"},"Phone",-1)),e("dd",Se,d(t(r).user.phone),1)])):l("",!0),e("div",null,[s[9]||(s[9]=e("dt",{class:"text-sm font-medium text-gray-600 dark:text-gray-400"},"Created At",-1)),e("dd",Ne,d(k(t(r)?.user?.created_at)),1)]),t(r)?.user?.updated_at?(a(),i("div",ze,[s[10]||(s[10]=e("dt",{class:"text-sm font-medium text-gray-600 dark:text-gray-400"},"Last Updated",-1)),e("dd",Ae,d(k(t(r)?.user?.updated_at)),1)])):l("",!0)])]),t(r)?.user?.rewardful_referral||t(r)?.user?.rewardful_affiliate_token||t(r)?.user?.meta_fbc?(a(),i("div",Pe,[s[15]||(s[15]=e("h2",{class:"mb-4 text-lg font-semibold text-gray-900 dark:text-white"},"Attribution",-1)),e("dl",Be,[t(r)?.user?.rewardful_referral?(a(),i("div",Fe,[s[12]||(s[12]=e("dt",{class:"text-sm font-medium text-gray-600 dark:text-gray-400"}," Rewardful Referral ID ",-1)),e("dd",je,d(t(r).user.rewardful_referral),1)])):l("",!0),t(r)?.user?.rewardful_affiliate_token?(a(),i("div",De,[s[13]||(s[13]=e("dt",{class:"text-sm font-medium text-gray-600 dark:text-gray-400"}," Rewardful Affiliate Token ",-1)),e("dd",Te,d(t(r).user.rewardful_affiliate_token),1)])):l("",!0),t(r)?.user?.meta_fbc?(a(),i("div",qe,[s[14]||(s[14]=e("dt",{class:"text-sm font-medium text-gray-600 dark:text-gray-400"},"Meta Pixel fbc",-1)),e("dd",Ee,d(t(r).user.meta_fbc),1)])):l("",!0)])])):l("",!0),t(r)?.user?.user_type==="member"?(a(),i("div",Ie,[s[16]||(s[16]=e("h2",{class:"mb-4 text-lg font-semibold text-gray-900 dark:text-white"},"Permissions",-1)),t(r)?.user?.permissions?.length?(a(),i("div",Re,[(a(!0),i(_,null,L(t(r).user.permissions,n=>(a(),i("span",{key:n,class:"inline-flex items-center gap-1 rounded-full bg-teal-50 px-2 py-1 text-xs font-medium text-teal-700 dark:bg-teal-500/20 dark:text-teal-400"},[u(t(se),{size:12}),g(" "+d(n),1)]))),128))])):(a(),i("p",Ve,"No permissions assigned"))])):l("",!0),e("div",Qe,[e("div",$e,[s[17]||(s[17]=e("h2",{class:"text-lg font-semibold text-gray-900 dark:text-white"},"AI Credit History",-1)),e("span",Ke,[t(b)?(a(),i(_,{key:0},[g(d(t(b).total)+" entries total",1)],64)):l("",!0)])]),t(F)?(a(),i("div",Me," Loading... ")):t(b)?.logs?.length?(a(),i("div",We,[e("table",He,[s[18]||(s[18]=e("thead",{class:"border-b border-gray-200 dark:border-gray-700"},[e("tr",{class:"text-xs text-gray-500 uppercase dark:text-gray-400"},[e("th",{class:"py-2 pr-3 font-medium"},"When"),e("th",{class:"py-2 pr-3 font-medium"},"Source"),e("th",{class:"py-2 pr-3 font-medium"},"Action"),e("th",{class:"py-2 pr-3 text-right font-medium"},"Pkg credits"),e("th",{class:"py-2 pr-3 text-right font-medium"},"Δ"),e("th",{class:"py-2 pr-3 text-right font-medium"},"Purchased"),e("th",{class:"py-2 pr-3 text-right font-medium"},"Δ"),e("th",{class:"py-2 pr-3 text-right font-medium"},"Consumed")])],-1)),e("tbody",Je,[(a(!0),i(_,null,L(t(b).logs,n=>(a(),i("tr",{key:n._id,class:"text-gray-800 dark:text-gray-200"},[e("td",Ge,d(k(n.created_at)),1),e("td",Xe,d(n.source),1),e("td",Ye,[e("span",{class:y(["inline-flex rounded-full px-2 py-0.5 text-xs font-medium",{"bg-red-50 text-red-700 dark:bg-red-500/20 dark:text-red-400":n.action==="consume","bg-green-50 text-green-700 dark:bg-green-500/20 dark:text-green-400":n.action==="refill"||n.action==="addon","bg-blue-50 text-blue-700 dark:bg-blue-500/20 dark:text-blue-400":n.action==="set"||n.action==="reset"||n.action==="override"}])},d(n.action),3)]),e("td",Ze,d(c(n.before?.remaining_ai_credits))+" → "+d(c(n.after?.remaining_ai_credits)),1),e("td",{class:y(["py-2 pr-3 text-right tabular-nums",{"text-red-600 dark:text-red-400":(n.delta?.remaining_ai_credits??0)<0,"text-green-600 dark:text-green-400":(n.delta?.remaining_ai_credits??0)>0}])},d(w(n.delta?.remaining_ai_credits)),3),e("td",et,d(c(n.before?.remaining_purchased_ai_credits))+" → "+d(c(n.after?.remaining_purchased_ai_credits)),1),e("td",{class:y(["py-2 pr-3 text-right tabular-nums",{"text-red-600 dark:text-red-400":(n.delta?.remaining_purchased_ai_credits??0)<0,"text-green-600 dark:text-green-400":(n.delta?.remaining_purchased_ai_credits??0)>0}])},d(w(n.delta?.remaining_purchased_ai_credits)),3),e("td",tt,d(c(n.consumed_credits)),1)]))),128))])])])):(a(),i("div",Oe," No credit-change entr
1ies recorded for this user yet. "))])]),e("div",st,[t(r)?.user?.company_id?(a(),i("div",rt,[s[20]||(s[20]=e("h2",{class:"mb-4 text-lg font-semibold text-gray-900 dark:text-white"},"Company",-1)),e("div",at,[e("div",dt,[e("div",it,d(q(t(r).user.company_id.company_name)),1),e("div",null,[e("p",ot,d(t(r).user.company_id.company_name),1),t(r).user.company_id.website_url?(a(),i("p",nt,d(t(r).user.company_id.website_url),1)):l("",!0)])]),e("div",lt,[u(f,{to:`/admin/companies/${t(r).user.company_id._id}`,class:"inline-flex w-full items-center justify-center gap-2 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 dark:bg-gray-700 dark:text-gray-300 dark:hover:bg-gray-600"},{default:h(()=>[u(t(te),{size:16}),s[19]||(s[19]=g(" View Company ",-1))]),_:1},8,["to"])])])])):l("",!0),e("div",ut,[s[23]||(s[23]=e("h2",{class:"mb-4 text-lg font-semibold text-gray-900 dark:text-white"},"Quick Stats",-1)),e("div",gt,[e("div",mt,[s[21]||(s[21]=e("span",{class:"text-sm text-gray-600 dark:text-gray-400"},"Last Login",-1)),e("span",ct,d(t(r)?.user?.last_login?k(t(r).user.last_login):"Never"),1)]),s[22]||(s[22]=Q('<div class="flex items-center justify-between"><span class="text-sm text-gray-600 dark:text-gray-400">Total Sessions</span><span class="font-semibold text-gray-900 dark:text-white">Coming Soon</span></div><div class="flex items-center justify-between"><span class="text-sm text-gray-600 dark:text-gray-400">Total Chats</span><span class="font-semibold text-gray-900 dark:text-white">Coming Soon</span></div>',2))])])])])]))])}}};export{Ct 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.