PageSourceSearch

https://app.knockknockapp.ai/assets/List-Cu2OBS0H.js

js knockknockapp.ai collected 2026-10-01 16:41:07 UTC 8,784 bytes, 1 lines download raw bytes

1import{w as A,l as d,m as p,q as t,B as o,z as S,u as r,J as n,aa as M,ac as Q,K as i,D as u,p as $,F as V,v as U,y as _,a6 as j,r as x,e as K}from"./vue-vendor-c0W5WEtO.js";import{u as R,b as G,c as I}from"./query-vendor-BMwEzNLN.js";import{_ as J}from"./Pagination-bRbpfmNK.js";import{g as O,a as H,d as W}from"./addons-DsZtX2r7.js";import{t as T}from"./index-B2Yag7Gu.js";import{al as X,b as Y,R as q,c as Z,bO as c,cE as ee,bQ as te,a6 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 flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between"},ae={class:"mb-6 rounded-lg border border-gray-200 bg-white p-4 dark:border-gray-700 dark:bg-gray-800"},oe={class:"flex flex-col gap-4 md:flex-row md:items-center"},le={class:"flex-1"},de={class:"relative"},ne={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"},ie={class:"text-center"},ue={key:1,class:"rounded-lg border border-red-200 bg-red-50 p-4 dark:border-red-900/50 dark:bg-red-900/20"},ge={class:"flex items-start gap-3"},pe={class:"mt-1 text-sm text-red-700 dark:text-red-300"},xe={key:2,class:"overflow-hidden rounded-lg border border-gray-200 dark:border-gray-700"},ye={class:"overflow-x-auto"},ce={class:"w-full"},me={class:"border-b border-gray-200 bg-gray-50 text-left text-sm font-medium dark:border-gray-700 dark:bg-gray-800/50"},be={class:"flex items-center gap-2"},ve={class:"flex items-center gap-2"},ke={class:"flex items-center gap-2"},fe={class:"flex items-center gap-2"},_e={class:"flex items-center gap-2"},he={class:"flex items-center gap-2"},we={class:"bg-white dark:bg-gray-800"},ze={key:0,class:"border-t border-gray-200 dark:border-gray-700"},Ce={colspan:"7",class:"px-4 py-8 text-center"},Ae={class:"px-4 py-3 text-gray-900 dark:text-white"},Se={class:"font-medium"},$e={class:"text-sm text-gray-500 dark:text-gray-400"},Te={class:"px-4 py-3"},qe={class:"px-4 py-3 text-gray-700 dark:text-gray-300"},De={class:"px-4 py-3 text-gray-700 dark:text-gray-300"},Ne={class:"px-4 py-3"},Pe={class:"px-4 py-3 text-sm text-gray-600 dark:text-gray-400"},Ee={class:"px-4 py-3 text-right"},Le={class:"flex items-center justify-end gap-2"},Be=["onClick","disabled"],He={__name:"List",setup(Fe){const D=R(),f=x(""),g=x(1),m=x(10),l=x("created_at"),b=x(-1),v=x(null),h=x("");let w=null;A(f,a=>{clearTimeout(w),w=setTimeout(()=>{h.value=a,g.value=1},300)}),A([l,m],()=>{g.value=1});const z=K(()=>({page:g.value,pageSize:m.value,search:h.value,sort:l.value,order:b.value})),{isPending:N,isError:P,error:E,data:k}=G({queryKey:["admin","addons",z],queryFn:()=>H(z.value)}),{mutate:L}=I({mutationFn:a=>W(a),onMutate:a=>{v.value=a},onSuccess:()=>{D.invalidateQueries({queryKey:["admin","addons"]}),T.success("Addon deleted successfully")},onError:a=>{T.error(a.response?.data?.message||"Failed to delete addon")},onSettled:()=>{v.value=null}}),B=a=>{confirm("Are you sure you want to delete this addon?")&&L(a)},y=a=>{l.value===a?b.value=b.value===1?-1:1:(l.value=a,b.value=1)},F=a=>a?new Date(a).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric"}):"N/A";return(a,e)=>{const C=j("router-link");return d(),p("div",null,[t("div",re,[e[12]||(e[12]=t("div",null,[t("h1",{class:"text-2xl font-bold text-gray-900 dark:text-white"},"Addons"),t("p",{class:"mt-1 text-sm text-gray-600 dark:text-gray-400"}," Manage subscription addons and extras ")],-1)),o(C,{to:"/admin/addons/create",class:"inline-flex items-center gap-2 rounded-lg bg-teal-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-teal-600"},{default:S(()=>[o(r(X),{size:16}),e[11]||(e[11]=n(" Create Addon ",-1))]),_:1})]),t("div",ae,[t("div",oe,[t("div",le,[t("div",de,[o(r(Y),{size:18,class:"absolute top-1/2 left-3 -translate-y-1/2 text-gray-400 dark:text-gray-500"}),M(t("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>f.value=s),type:"text",placeholder:"Search addons...",class:"w-full rounded-lg border border-gray-300 bg-white py-2 pr-4 pl-10 text-sm text-gray-900 placeholder-gray-500 focus:ring-2 focus:ring-teal-500 focus:outline-none dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400"},null,512),[[Q,f.value]])])])])]),r(N)?(d(),p("div",ne,[t("div",ie,[o(r(q),{size:32,class:"mx-auto animate-spin text-gray-400 dark:text-gray-600"}),e[13]||(e[13]=t("p",{class:"mt-4 text-sm text-gray-600 dark:text-gray-400"},"Loading addons...",-1))])])):r(P)?(d(),p("div",ue,[t("div",ge,[o(r(Z),{size:20,class:"text-red-600"}),t("div",null,[e[14]||(e[14]=t("h3",{class:"font-medium text-red-900 dark:text-red-400"},"Error Loading Addons",-1)),t("p",pe,i(r(E)?.message||"An error occurred"),1)])])])):(d(),p("div",xe,[t("div",ye,[t("table",ce,[t("thead",me,[t("tr",null,[t("th",{class:"cursor-pointer px-4 py-3 text-gray-700 dark:text-gray-300",onClick:e[1]||(e[1]=s=>y("title"))},[t("div",be,[e[15]||(e[15]=n(" Title ",-1)),o(r(c),{size:14,class:u(l.value==="title"?"text-teal-500":"")},null,8,["class"])])]),t("th",{class:"cursor-pointer px-4 py-3 text-gray-700 dark:text-gray-300",onClick:e[2]||(e[2]=s=>y("type"))},[t("div",ve,[e[16]||(e[16]=n(" Type ",-1)),o(r(c),{size:14,class:u(l.value==="type"?"text-teal-500":"")},null,8,["class"])])]),t("th",{class:"cursor-pointer px-4 py-3 text-gray-700 dark:text-gray-300",onClick:e[3]||(e[3]=s=>y("quantity"))},[t("div",ke,[e[17]||(e[17]=n(" Quantity ",-1)),o(r(c),{size:14,class:u(l.value==="quantity"?"text-teal-500":"")},null,8,["class"])])]),t("th",{class:"cursor-pointer px-4 py-3 text-gray-700 dark:text-gray-300",onClick:e[4]||(e[4]=s=>y("price"))},[t("div",fe,[e[18]||(e[18]=n(" Price ",-1)),o(r(c),{size:14,class:u(l.value==="price"?"text-teal-500":"")},null,8,["class"])])]),t("th",{class:"cursor-pointer px-4 py-3 text-gray-700 dark:text-gray-300",onClick:e[5]||(e[5]=s=>y("status"))},[t("div",_e,[e[19]||(e[19]=n(" Status ",-1)),o(r(c),{size:14,class:u(l.value==="status"?"text-teal-500":"")},null,8,["class"])])]),t("th",{class:"cursor-pointer px-4 py-3 text-gray-700 dark:text-gray-300",onClick:e[6]||(e[6]=s=>y("created_at"))},[t("div",he,[e[20]||(e[20]=n(" Created ",-1)),o(r(c),{size:14,class:u(l.value==="created_at"?"text-teal-500":"")},null,8,["class"])])]),e[21]||(e[21]=t("th",{class:"px-4 py-3 text-right text-gray-700 dark:text-gray-300"},"Actions",-1))])]),t("tbody",we,[r(k)?.results?.length?$("",!0):(d(),p("tr",ze,[t("td",Ce,[o(r(ee),{size:48,class:"mx-auto text-gray-300 dark:text-gray-600"}),e[22]||(e[22]=t("p",{class:"mt-4 font-medium text-gray-600 dark:text-gray-400"}
1,"No addons found",-1))])])),(d(!0),p(V,null,U(r(k)?.results,s=>(d(),p("tr",{key:s._id,class:"border-t border-gray-200 transition-colors hover:bg-gray-50 dark:border-gray-700 dark:hover:bg-gray-700/50"},[t("td",Ae,[t("div",null,[t("p",Se,i(s.title),1),t("p",$e,i(s.sub_title),1)])]),t("td",Te,[t("span",{class:u(["inline-flex rounded-full px-2 py-1 text-xs font-medium",s.type==="ai_credits"?"bg-purple-50 text-purple-700 dark:bg-purple-500/20 dark:text-purple-400":"bg-blue-50 text-blue-700 dark:bg-blue-500/20 dark:text-blue-400"])},i(r(O)(s.type)),3)]),t("td",qe,i(s.quantity),1),t("td",De,"$"+i(s.price||0),1),t("td",Ne,[t("span",{class:u(["inline-flex rounded-full px-2 py-1 text-xs font-medium capitalize",s.status==="active"?"bg-green-50 text-green-700 dark:bg-green-500/20 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300"])},i(s.status),3)]),t("td",Pe,i(F(s.created_at)),1),t("td",Ee,[t("div",Le,[o(C,{to:`/admin/addons/${s._id}/edit`,class:"inline-flex items-center gap-1 rounded-lg bg-teal-50 px-3 py-1.5 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:S(()=>[o(r(te),{size:14}),e[23]||(e[23]=n(" Edit ",-1))]),_:1},8,["to"]),t("button",{onClick:Me=>B(s._id),disabled:v.value===s._id,class:"inline-flex items-center gap-1 rounded-lg bg-red-50 px-3 py-1.5 text-sm font-medium text-red-600 transition-colors hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-red-500/20 dark:text-red-400 dark:hover:bg-red-500/30"},[v.value!==s._id?(d(),_(r(se),{key:0,size:14})):(d(),_(r(q),{key:1,size:14,class:"animate-spin"})),e[24]||(e[24]=n(" Delete ",-1))],8,Be)])])]))),128))])])]),r(k)?.results?.length?(d(),_(J,{key:0,page:g.value,"page-size":m.value,total:r(k)?.pagination?.total||0,"item-name":"addons","show-per-page-selector":"","show-page-buttons":"",onPrev:e[7]||(e[7]=s=>g.value--),onNext:e[8]||(e[8]=s=>g.value++),onGoto:e[9]||(e[9]=s=>g.value=s),"onUpdate:pageSize":e[10]||(e[10]=s=>m.value=s)},null,8,["page","page-size","total"])):$("",!0)]))])}}};export{He 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.