You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

3 lines
3.0 KiB

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