3 lines
3.2 KiB
JavaScript
3 lines
3.2 KiB
JavaScript
import{j as e,S as E,E as S,C as I,T}from"./semi-ui-C-ZN869V.js";import{r as l}from"./react-core-C8o2IdY8.js";import{M as H,A as L,s as j}from"./index-BsqrNJOy.js";import{u as M}from"./i18n-DJWjvQyM.js";import{I as R,a as k}from"./IllustrationConstruction-BiFXzVoj.js";const{Title:g}=T,_=a=>{try{return new URL(a.trim()),!0}catch{return!1}},b=a=>!a||typeof a!="string"?!1:/<\/?[a-z][\s\S]*>/i.test(a),N=a=>{const r=document.createElement("div");r.innerHTML=a;const o=Array.from(r.querySelectorAll("style")).map(n=>n.innerHTML).join(`
|
|
`),c=r.querySelector("body");return{content:c?c.innerHTML:a,styles:o}},P=({apiEndpoint:a,title:r,cacheKey:o,emptyMessage:c})=>{const{t:i}=M(),[n,d]=l.useState(""),[v,f]=l.useState(!0),[m,u]=l.useState(""),[A,p]=l.useState(""),w=async()=>{const s=localStorage.getItem(o)||"";s&&(d(s),y(s),f(!1));try{const t=await L.get(a),{success:h,message:C,data:x}=t.data;h&&x?(d(x),y(x),localStorage.setItem(o,x)):s||(j(C||c),d(""))}catch{s||(j(c),d(""))}finally{f(!1)}},y=s=>{if(b(s)){const{content:t,styles:h}=N(s);p(t),u(h)}else p(""),u("")};if(l.useEffect(()=>{w()},[]),l.useEffect(()=>{const s=`document-renderer-styles-${o}`;if(m){let t=document.getElementById(s);t||(t=document.createElement("style"),t.id=s,t.type="text/css",document.head.appendChild(t)),t.innerHTML=m}else{const t=document.getElementById(s);t&&t.remove()}return()=>{const t=document.getElementById(s);t&&t.remove()}},[m,o]),v)return e.jsx("div",{className:"flex justify-center items-center min-h-screen",children:e.jsx(E,{size:"large"})});if(!n||n.trim()==="")return e.jsx("div",{className:"flex justify-center items-center min-h-screen bg-gray-50",children:e.jsx(S,{title:i("管理员未设置"+r+"内容"),image:e.jsx(k,{style:{width:150,height:150}}),darkModeImage:e.jsx(R,{style:{width:150,height:150}}),className:"p-8"})});if(_(n))return e.jsx("div",{className:"flex justify-center items-center min-h-screen bg-gray-50 p-4",children:e.jsx(I,{className:"max-w-md w-full",children:e.jsxs("div",{className:"text-center",children:[e.jsx(g,{heading:4,className:"mb-4",children:r}),e.jsx("p",{className:"text-gray-600 mb-4",children:i("管理员设置了外部链接,点击下方按钮访问")}),e.jsx("a",{href:n.trim(),target:"_blank",rel:"noopener noreferrer",title:n.trim(),"aria-label":`${i("访问"+r)}: ${n.trim()}`,className:"inline-block px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:i("访问"+r)})]})})});if(b(n)){const{content:s,styles:t}=N(n);return l.useEffect(()=>{t&&t!==m&&u(t)},[n,t,m]),e.jsx("div",{className:"min-h-screen bg-gray-50",children:e.jsx("div",{className:"max-w-4xl mx-auto py-12 px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"bg-white rounded-lg shadow-sm p-8",children:[e.jsx(g,{heading:2,className:"text-center mb-8",children:r}),e.jsx("div",{className:"prose prose-lg max-w-none",dangerouslySetInnerHTML:{__html:s}})]})})})}return e.jsx("div",{className:"min-h-screen bg-gray-50",children:e.jsx("div",{className:"max-w-4xl mx-auto py-12 px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"bg-white rounded-lg shadow-sm p-8",children:[e.jsx(g,{heading:2,className:"text-center mb-8",children:r}),e.jsx("div",{className:"prose prose-lg max-w-none",children:e.jsx(H,{content:n})})]})})})};export{P as D};
|