1import{g as I,b as T,r as g,j as e,C as p,T as A,L as E}from"./index-CDiZ1mVQ.js";import{r as t}from"./map-BdGKWdad.js";import{T as L}from"./thumbnailCacheBustService-CI-iIJlT.js";import{D as c}from"./database-BBeCzSzK.js";import{I as R}from"./info-8Wn4JALU.js";import{I as $}from"./image-CvWmSvXu.js";import{C as f}from"./circle-alert-BaZBeWb5.js";import{R as k}from"./refresh-cw-GehtOymN.js";import"./supabase-sVT2aVMd.js";const U=()=>{const{getVisits:d}=I(),{user:j}=T(),[v,m]=t.useState(0),[x,h]=t.useState(!1),[u,a]=t.useState(""),[r,N]=t.useState({exists:!1}),[o,b]=t.useState(!1),[l,n]=t.useState(null);t.useEffect(()=>{y(),i()},[]);const i=()=>{const s=g.getCacheInfo("all_visits");N(s)},y=async()=>{try{const s=await d();m(s.length),i()}catch(s){console.error("Erreur lors du chargement des visites:",s)}},w=()=>{g.clear(),a("ðï¸ Cache vidé avec succès"),i(),setTimeout(()=>a(""),3e3)},C=async()=>{h(!0),a("ð Chargement forcé des données depuis Supabase...");try{const s=await d(!0);m(s.length),a(`â
${s.length} visites chargées et mises en cache depuis Supabase`),i()}catch(s){a(`â Erreur lors du chargement: ${s}`),console.error("Erreur refresh:",s)}finally{h(!1),setTimeout(()=>a(""),5e3)}},S=async()=>{b(!0),n(null);try{const s=await L.bustAll(j?.id);n({success:!0,message:`Cache des vignettes invalide pour ${s.count.toLocaleString("fr-FR")} visites. Les nouvelles images seront chargees au prochain affichage.`})}catch(s){n({success:!1,message:`Erreur : ${s instanceof Error?s.message:"Erreur inconnue"}`})}finally{b(!1),setTimeout(()=>n(null),1e4)}};return e.jsx("div",{className:"min-h-screen bg-gray-50 py-20",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsxs("div",{className:"flex items-center justify-center mb-4",children:[e.jsx(c,{className:"h-12 w-12 text-blue-800 mr-4"}),e.jsx("h1",{className:"text-4xl font-bold text-gray-900",children:"Gestionnaire de Données"})]}),e.jsx("p",{className:"text-xl text-gray-600",children:"Données chargées depuis Supabase"})]}),e.jsxs("div",{className:"bg-white rounded-2xl shadow-lg p-8 mb-8",children:[e.jsx("div",{className:"mb-6",children:e.jsxs("h2",{className:"text-2xl font-bold text-gray-900 flex items-center",children:[e.jsx(p,{className:"h-6 w-6 text-green-600 mr-3"}),e.jsx("span",{children:"Connexion Supabase"})]})}),e.jsxs("div",{className:"grid md:grid-cols-3 gap-6 mb-8",children:[e.jsxs("div",{className:"bg-green-50 rounded-xl p-6 text-center",children:[e.jsx(c,{className:"h-6 w-6 text-green-600 mx-auto mb-2"}),e.jsx("h3",{className:"font-semibold text-green-900 mb-2",children:"Source de données"}),e.jsx("div",{className:"text-lg font-bold text-green-600",children:"Supabase"}),e.jsx("div",{className:"text-sm text-green-700",children:"Base de données en temps réel"})]}),e.jsxs("div",{className:"bg-blue-50 rounded-xl p-6 text-center",children:[e.jsx(c,{className:"h-6 w-6 text-blue-600 mx-auto mb-2"}),e.jsx("h3",{className:"font-semibold text-blue-900 mb-2",children:"Visites"}),e.jsx("div",{className:"text-2xl font-bold text-blue-600 mb-1",children:v.toLocaleString("fr-FR")}),e.jsx("div",{className:"text-sm text-blue-700",children:"Disponibles"})]}),e.jsxs("div",{className:`rounded-xl p-6 text-center ${r.exists?"bg-purple-50":"bg-gray-50"}`,children:[e.jsx(R,{className:`h-6 w-6 mx-auto mb-2 ${r.exists?"text-purple-600":"text-gray-400"}`}),e.jsx("h3",{className:`font-semibold mb-2 ${r.exists?"text-purple-900":"text-gray-600"}`,children:"Cache"}),r.exists?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"text-lg font-bold text-purple-600 mb-1",children:"Actif"}),e.jsxs("div",{className:"text-xs text-purple-700",children:["Expire dans ",r.expiresIn," min"]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"text-lg font-bold text-gray-600 mb-1",children:"Vide"}),e.jsx("div",{className:"text-xs text-gray-500",children:"Aucune donnée en cache"})]})]})]}),e.jsxs("div",{className:"flex justify-center gap-4 mb-8",children:[e.jsxs("button",{onClick:C,disabled:x,className:"flex items-center justify-center space-x-3 bg-blue-600 hover:bg-blue-700 disabled:bg-gray-300 disabled:text-gray-500 text-white px-8 py-4 rounded-xl font-semibold transition-all duration-300 transform hover:scale-105 shadow-lg",children:[e.jsx(c,{className:"h-5 w-5"}),e.jsx("span",{children:x?"Chargement...":"Actualiser les données"})]}),r.exists&&e.jsxs("button",{onClick:w,className:"flex items-center justify-center space-x-3 bg-red-600 hover:bg-red-700 text-white px-8 py-4 rounded-xl font-semibold transition-all duration-300 transform hover:scale-105 shadow-lg",children:[e.jsx(A,{className:"h-5 w-5"}),e.jsx("span",{children:"Vider le cache"})]})]}),u&&e.jsx("div",{className:"bg-blue-50 border border-blue-200 rounded-xl p-4",children:e.jsx("p",{className:"text-blue-800 font-medium",children:u})})]}),e.jsxs("div",{className:"bg-white rounded-2xl shadow-lg p-8",children:[e.jsxs("div",{className:"mb-6",children:[e.jsxs("h2",{className:"text-2xl font-bold text-gray-900 flex items-center",children:[e.jsx($,{className:"h-6 w-6 text-amber-600 mr-3"}),e.jsx("span",{children:"Cache des vignettes (thumbnails)"})]}),e.jsx("p",{className:"text-sm text-gray-500 mt-2",children:"Les vignettes passent par un proxy d'optimisation qui met les images en cache. Si vous avez modifie des images sur le FTP, utilisez ce bouton pour forcer le rechargement de toutes les vignettes."})]}),e.jsx("div",{className:"bg-amber-50 border border-amber-200 rounded-xl p-4 mb-6",children:e.jsxs("div",{className:"flex items-start space-x-3",children:[e.jsx(f,{className:"h-5 w-5 text-amber-600 mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"text-sm text-amber-800",children:[e.jsx("p",{className:"font-medium mb-1",children:"Comment ca fonctionne ?"}),e.jsx("p",{children:"Cette action ajoute un parametre unique a chaque URL de vignette, ce qui force le proxy (wsrv.nl) a recharger l'image depuis le serveur d'origine au lieu de servir sa copie en cache."})]})]})}),e.jsx("div",{className:"flex justify-center mb-6",children:e.jsxs("button",{onClick:S,disabled:o,className:"flex items-center justify-center space-x-3 bg-amber-600 hover:bg-amber-700 disabled:bg-gray-300 disabled:text-gray-500 text-white px-8 py-4 rounded-xl font-semibold transition-all duration-300 transform hover:scale-105 shadow-lg",children:[o?e.jsx(E,{className:"h-5 w-5 animate-spin"}):e.jsx(k,{className:"h-5 w-5"}),e.jsx("span",{children:o?"Invalidation en cours...":"Forcer le rafraichissement des vignettes"})]})}),l&&e.jsxs("div",{className:`flex items-start p-4 rounded-xl text-sm font-medium ${l.success?"bg-green-50 text-green-800 border border-green-200":"bg-red-50 text-red-800 border border-red-200"}`,children:[l.success?e.jsx(p,{className:"h-5 w-5 mr-2 flex-shrink-0 mt-0.5"}):e.jsx(f,{className:"h-5 w-5 mr-2 flex-shrink-0 mt-0.5"}),l.message]})]})]})})};export{U 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.