{"version":3,"file":"PageView.Bd87T-2q.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/LarS3Ahwku9WeJelRAy8/38AegaHDntcxyBSjf9jB/PageView.js"],"sourcesContent":["import{jsxs as _jsxs}from\"react/jsx-runtime\";import{Data,addPropertyControls,ControlType}from\"framer\";import{useEffect,useState}from\"react\";// Supabase 项目详情\nconst SUPABASE_URL=\"https://fmgqujtiiwfjyttkmhwu.supabase.co\";const SUPABASE_ANON_KEY=\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImZtZ3F1anRpaXdmanl0dGttaHd1Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3MTY5OTc1MTAsImV4cCI6MjAzMjU3MzUxMH0.m1WJDiC2HCZ2Vofh9XCQpDl3KOsIViUVyclcmyB8_yw\";// 创建 Data 对象来在本地存储浏览数\nconst viewData=Data({views:{}});// 格式化数字函数\nconst formatNumber=num=>{if(num>=1e6){return(num/1e6).toFixed(3)+\"M\";}else if(num>=1e3){return(num/1e3).toFixed(2)+\"K\";}else{return num.toString();}};export default function SupabaseViewCount(props){const{slug}=props;const[viewCount,setViewCount]=useState(0);const[error,setError]=useState(null);useEffect(()=>{const fetchAndUpdateViewCount=async()=>{try{// 检查此会话是否已计数\nif(!viewData.views[slug]){// 在 Supabase 中增加浏览数\nconst incrementResponse=await fetch(`${SUPABASE_URL}/rest/v1/rpc/increment_view_count`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",apikey:SUPABASE_ANON_KEY,Authorization:`Bearer ${SUPABASE_ANON_KEY}`},body:JSON.stringify({slug_param:slug})});if(!incrementResponse.ok){const errorData=await incrementResponse.text();throw new Error(`增加浏览数时出错: ${errorData}`);}// 标记此页面在本会话中已被浏览\nviewData.views[slug]=true;}// 获取当前浏览数\nconst fetchResponse=await fetch(`${SUPABASE_URL}/rest/v1/page_views?slug=eq.${slug}&select=view_count`,{headers:{apikey:SUPABASE_ANON_KEY,Authorization:`Bearer ${SUPABASE_ANON_KEY}`}});if(!fetchResponse.ok){const errorData=await fetchResponse.text();throw new Error(`获取浏览数时出错: ${errorData}`);}const data=await fetchResponse.json();if(data.length>0){setViewCount(data[0].view_count);}setError(null);}catch(err){console.error(\"错误:\",err);setError(err.message);}};fetchAndUpdateViewCount();// 设置轮询更新\nconst interval=setInterval(fetchAndUpdateViewCount,5e3)// 每5秒轮询一次\n;// 清理 interval\nreturn()=>clearInterval(interval);},[slug]);return /*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:16,fontWeight:\"bold\",color:\"#653F2E\",padding:\"0px\",backgroundColor:\"#FFFAF7\",borderRadius:\"5px\",display:\"inline-block\"},children:[\"瀏覽數: \",formatNumber(viewCount)]}),error&&/*#__PURE__*/_jsxs(\"div\",{style:{color:\"red\",marginTop:\"10px\"},children:[\"錯誤: \",error]})]});}addPropertyControls(SupabaseViewCount,{slug:{type:ControlType.String,title:\"Slug\",defaultValue:\"page1\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SupabaseViewCount\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PageView.map"],"mappings":"oRAGsJ,SAAwB,EAAkB,EAAM,CAAC,GAAK,CAAC,QAAM,EAAW,CAAC,EAAU,GAAcA,EAAS,EAAE,CAAM,CAAC,EAAM,GAAUA,EAAS,KAAK,CAO3P,OAP4P,MAAc,CAAC,IAAM,EAAwB,SAAS,CAAC,GAAG,CAClW,GAAG,CAAC,EAAS,MAAM,GAAM,CACzB,IAAM,EAAkB,MAAM,MAAM,GAAG,EAAa,mCAAmC,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,mBAAmB,OAAO,EAAkB,cAAc,UAAU,IAAoB,CAAC,KAAK,KAAK,UAAU,CAAC,WAAW,EAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAkB,GAAG,CAAC,IAAM,EAAU,MAAM,EAAkB,MAAM,CAAC,MAAU,MAAM,aAAa,IAAY,CAClX,EAAS,MAAM,GAAM,GACrB,IAAM,EAAc,MAAM,MAAM,GAAG,EAAa,8BAA8B,EAAK,oBAAoB,CAAC,QAAQ,CAAC,OAAO,EAAkB,cAAc,UAAU,IAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAc,GAAG,CAAC,IAAM,EAAU,MAAM,EAAc,MAAM,CAAC,MAAU,MAAM,aAAa,IAAY,CAAE,IAAM,EAAK,MAAM,EAAc,MAAM,CAAI,EAAK,OAAO,GAAG,EAAa,EAAK,GAAG,WAAW,CAAE,EAAS,KAAK,OAAQ,EAAI,CAAC,QAAQ,MAAM,MAAM,EAAI,CAAC,EAAS,EAAI,QAAQ,GAAI,GAAyB,CACre,IAAM,EAAS,YAAY,EAAwB,IAAI,CAEvD,UAAU,cAAc,EAAS,EAAG,CAAC,EAAK,CAAC,CAAqB,EAAM,MAAM,CAAC,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,OAAO,MAAM,UAAU,QAAQ,MAAM,gBAAgB,UAAU,aAAa,MAAM,QAAQ,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAa,EAAU,CAAC,CAAC,CAAC,CAAC,GAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,MAAM,MAAM,UAAU,OAAO,CAAC,SAAS,CAAC,OAAO,EAAM,CAAC,CAAC,CAAC,CAAC,CAAC,0BAV3V,IAAyD,IAAsC,CACtI,EAAa,2CAAiD,EAAkB,mNAChF,EAAS,EAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CACzB,EAAa,GAAS,GAAK,KAAY,EAAI,KAAK,QAAQ,EAAE,CAAC,IAAa,GAAK,KAAY,EAAI,KAAK,QAAQ,EAAE,CAAC,IAAiB,EAAI,UAAU,CAOwP,EAAoB,EAAkB,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,QAAQ,CAAC,CAAC"}