PageSourceSearch

https://alpineexteriorstampa.com/assets/admin-cache-management-B_19St3F.js

js alpineexteriorstampa.com collected 2026-09-30 15:44:15 UTC 11,188 bytes, 6 lines download raw bytes

1import{c as T,e as A,R as F,r as I,f as z,g as x,j as e,V as v,C as i,v as n,i as c,B as d,T as B,N as D,w as t,y,x as m,bj as E,bu as L,bw as M,S as b,K as O,L as f,I as N,aB as q,aC as R,O as Z,l as S,D as u}from"./index-DY_lfVa_.js";import{S as W}from"./separator-CW8RYBTk.js";/**
2 * @license lucide-react v0.536.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const Y=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],_=T("server",Y);function Q(){const{toast:l}=A();F();const[r,j]=I.useState({apiToken:"",zoneId:"",email:""}),{data:s,isLoading:w,refetch:o}=z({queryKey:["/api/admin/cache/stats"],queryFn:async()=>{const a=await fetch("/api/admin/cache/stats");if(!a.ok)throw new Error("Failed to fetch cache stats");return a.json()}}),g=x({mutationFn:()=>u("/api/admin/cache/clear-browser",{method:"POST"}),onSuccess:()=>{l({title:"Browser Cache Cleared",description:"Local browser cache has been cleared successfully."}),o()},onError:()=>{l({title:"Clear Failed",description:"Failed to clear browser cache. Please try again.",variant:"destructive"})}}),p=x({mutationFn:()=>u("/api/admin/cache/clear-server",{method:"POST"}),onSuccess:()=>{l({title:"Server Cache Cleared",description:"Server-side cache has been cleared successfully."}),o()},onError:()=>{l({title:"Clear Failed",description:"Failed to clear server cache. Please try again.",variant:"destructive"})}}),h=x({mutationFn:a=>u("/api/admin/cache/purge-cloudflare",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a??{})}),onSuccess:()=>{l({title:"Cloudflare Cache Purged",description:"Cloudflare cache has been purged successfully."}),o()},onError:()=>{l({title:"Purge Failed",description:"Failed to purge Cloudflare cache. Check your credentials.",variant:"destructive"})}}),C=x({mutationFn:()=>u("/api/admin/cache/clear-all",{method:"POST"}),onSuccess:()=>{l({title:"All Caches Cleared",description:"All caches have been cleared successfully."}),o(),setTimeout(()=>{window.location.reload()},1e3)},onError:()=>{l({title:"Clear Failed",description:"Failed to clear all caches. Please try individual methods.",variant:"destructive"})}}),k=()=>{if(!r.apiToken||!r.zoneId){l({title:"Missing Credentials",description:"Please provide both API token and Zone ID.",variant:"destructive"});return}h.mutate(r)};return w?e.jsx(v,{title:"Cache Management",children:e.jsx("div",{className:"space-y-6",children:e.jsx("div",{className:"animate-pulse space-y-4",children:[...Array(3)].map((a,P)=>e.jsxs(i,{children:[e.jsx(n,{children:e.jsx("div",{className:"h-4 bg-gray-200 dark:bg-gray-700 rounded w-1/4"})}),e.jsx(c,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"h-3 bg-gray-200 dark:bg-gray-700 rounded"}),e.jsx("div",{className:"h-3 bg-gray-200 dark:bg-gray-700 rounded w-2/3"})]})})]},P))})})}):e.jsx(v,{title:"Cache Management",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold text-gray-900 dark:text-white",children:"Cache Management"}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mt-2",children:"Manage and clear various cache layers to improve site performance"})]}),e.jsxs(d,{onClick:()=>C.mutate(),disabled:C.isPending,className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(B,{className:"w-4 h-4 mr-2"}),C.isPending?"Clearing...":"Clear All Caches"]})]}),e.jsxs("div",{className:"grid gap-6 md:grid-cols-3",children:[e.jsxs(i,{children:[e.jsxs(n,{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(D,{className:"w-5 h-5 text-blue-600"}),e.jsx(t,{className:"text-lg",children:"Browser Cache"})]}),e.jsx(y,{variant:s!=null&&s.browserCache.enabled?"default":"secondary",children:s!=null&&s.browserCache.enabled?"Active":"Disabled"})]}),e.jsx(m,{children:"Client-side cached assets and data"})]}),e.jsxs(c,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Cache Size:"}),e.jsx("span",{className:"font-medium",children:(s==null?void 0:s.browserCache.size)||"Unknown"})]}),e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Last Cleared:"}),e.jsx("span",{className:"font-medium",children:(s==null?void 0:s.browserCache.lastCleared)||"Never"})]})]}),e.jsxs(d,{onClick:()=>g.mutate(),disabled:g.isPending,variant:"outline",className:"w-full",children:[e.jsx(E,{className:"w-4 h-4 mr-2"}),g.isPending?"Clearing...":"Clear Browser Cache"]})]})]}),e.jsxs(i,{children:[e.jsxs(n,{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(_,{className:"w-5 h-5 text-green-600"}),e.jsx(t,{className:"text-lg",children:"Server Cache"})]}),e.jsx(y,{variant:s!=null&&s.serverCache.enabled?"default":"secondary",children:s!=null&&s.serverCache.enabled?"Active":"Disabled"})]}),e.jsx(m,{children:"Server-side cached responses and data"})]}),e.jsxs(c,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Cache Size:"}),e.jsx("span",{className:"font-medium",children:(s==null?void 0:s.serverCache.size)||"Unknown"})]}),e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Last Cleared:"}),e.jsx("span",{className:"font-medium",children:(s==null?void 0:s.serverCache.lastCleared)||"Never"})]})]}),e.jsxs(d,{onClick:()=>p.mutate(),disabled:p.isPending,variant:"outline",className:"w-full",children:[e.jsx(L,{className:"w-4 h-4 mr-2"}),p.isPending?"Clearing...":"Clear Server Cache"]})]})]}),e.jsxs(i,{children:[e.jsxs(n,{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(M,{className:"w-5 h-5 text-orange-600"}),e.jsx(t,{className:"text-lg",children:"Cloudflare Cache"})]}),e.jsx(y,{variant:s!=null&&s.cloudflareCache.connected?"default":"secondary",children:s!=null&&s.cloudflareCache.connected?"Connected":"Not Connected"})]}
6),e.jsx(m,{children:"CDN edge cache purging"})]}),e.jsxs(c,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Zone ID:"}),e.jsx("span",{className:"font-medium",children:(s==null?void 0:s.cloudflareCache.zoneId)||"Not Set"})]}),e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Last Purged:"}),e.jsx("span",{className:"font-medium",children:(s==null?void 0:s.cloudflareCache.lastPurged)||"Never"})]})]}),e.jsxs(d,{onClick:()=>h.mutate(void 0),disabled:h.isPending||!(s!=null&&s.cloudflareCache.connected),variant:"outline",className:"w-full",children:[e.jsx(b,{className:"w-4 h-4 mr-2"}),h.isPending?"Purging...":"Purge Cloudflare"]})]})]})]}),!(s!=null&&s.cloudflareCache.connected)&&e.jsxs(i,{children:[e.jsxs(n,{children:[e.jsxs(t,{className:"flex items-center gap-2",children:[e.jsx(O,{className:"w-5 h-5"}),"Cloudflare Configuration"]}),e.jsx(m,{children:"Connect your Cloudflare account to enable cache purging"})]}),e.jsxs(c,{className:"space-y-4",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(f,{htmlFor:"cf-token",children:"API Token"}),e.jsx(N,{id:"cf-token",type:"password",placeholder:"Your Cloudflare API token",value:r.apiToken,onChange:a=>j({...r,apiToken:a.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(f,{htmlFor:"cf-zone",children:"Zone ID"}),e.jsx(N,{id:"cf-zone",placeholder:"Your Cloudflare Zone ID",value:r.zoneId,onChange:a=>j({...r,zoneId:a.target.value})})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(f,{htmlFor:"cf-email",children:"Email (Optional)"}),e.jsx(N,{id:"cf-email",type:"email",placeholder:"Your Cloudflare account email",value:r.email,onChange:a=>j({...r,email:a.target.value})})]}),e.jsxs(d,{onClick:k,className:"w-full",children:[e.jsx(q,{className:"w-4 h-4 mr-2"}),"Connect Cloudflare"]})]})]}),e.jsxs(i,{children:[e.jsx(n,{children:e.jsxs(t,{className:"flex items-center gap-2",children:[e.jsx(R,{className:"w-5 h-5 text-yellow-600"}),"Cache Management Best Practices"]})}),e.jsxs(c,{className:"space-y-4",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h4",{className:"font-semibold text-green-700 dark:text-green-400 flex items-center gap-2",children:[e.jsx(Z,{className:"w-4 h-4"}),"When to Clear Cache"]}),e.jsxs("ul",{className:"text-sm space-y-1 text-gray-600 dark:text-gray-400",children:[e.jsx("li",{children:"• After deploying new website updates"}),e.jsx("li",{children:"• When users report seeing old content"}),e.jsx("li",{children:"• After changing CSS or JavaScript files"}),e.jsx("li",{children:"• When troubleshooting display issues"}),e.jsx("li",{children:"• After updating company information"})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h4",{className:"font-semibold text-blue-700 dark:text-blue-400 flex items-center gap-2",children:[e.jsx(S,{className:"w-4 h-4"}),"Cache Refresh Timeline"]}),e.jsxs("ul",{className:"text-sm space-y-1 text-gray-600 dark:text-gray-400",children:[e.jsx("li",{children:"• Browser Cache: Immediate effect"}),e.jsx("li",{children:"• Server Cache: 1-2 minutes"}),e.jsx("li",{children:"• Cloudflare CDN: 2-5 minutes globally"}),e.jsx("li",{children:"• Search Engines: 24-48 hours"}),e.jsx("li",{children:"• Third-party services: Varies"})]})]})]}),e.jsx(W,{}),e.jsxs("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4",children:[e.jsxs("h4",{className:"font-semibold text-blue-900 dark:text-blue-100 mb-2 flex items-center gap-2",children:[e.jsx(b,{className:"w-4 h-4"}),"Important Notes"]}),e.jsxs("ul",{className:"text-sm text-blue-800 dark:text-blue-200 space-y-1",children:[e.jsx("li",{children:"• Clearing cache may temporarily slow down your website as it rebuilds"}),e.jsx("li",{children:"• Always test your website after clearing cache to ensure everything works"}),e.jsx("li",{children:"• Cloudflare purging affects all visitors globally - use with caution"}),e.jsx("li",{children:"• Consider clearing cache during low-traffic periods when possible"})]})]})]})]})]})})}export{Q 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.