PageSourceSearch

https://rxzwn.vip/assets/novelFilter-Bepbyzmm.js

js rxzwn.vip collected 2026-10-10 01:39:20 UTC 5,640 bytes, 1 lines download raw bytes

1import{r as c,a as b,fu as y,n as S,fr as P,j as e,L as v,Y as T,F as I,bp as k}from"./main-xXS-ugzf.js";const F=20,s="全部",L=[s,"周一","周二","周三","周四","周五","周六","周日"],$=[s,"连载","完结"];function A(l){const r=new Set;return l.filter(n=>r.has(n.novelId)?!1:(r.add(n.novelId),!0))}function C(l,r){return l.coverURL||l.url||`/images/lagoon-${r%5+1}.svg`}function E(l){return typeof l.chapterNo=="number"&&l.chapterNo>0?`更新到第 ${l.chapterNo} 章`:l.tags.length>0?l.tags.slice(0,2).join(" / "):"小说精选"}function O(){const[l,r]=c.useState(s),[n,f]=c.useState(s),[i,N]=c.useState(s),d=b({queryKey:["novel","filter","tags"],queryFn:()=>y(),staleTime:1e3*60*3}),t=S({queryKey:["novel","filter",l,n,i],initialPageParam:1,queryFn:({pageParam:a})=>P({tagName:l===s?"":l,up:n===s?"":`${n}更`,jindu:i===s?"":i,page:a,pageSize:F}),getNextPageParam:a=>a.hasMore?a.page+1:void 0}),o=c.useMemo(()=>{const a=t.data?.pages.flatMap(p=>p.list)??[];return A(a)},[t.data]),x=c.useMemo(()=>[s,...d.data??[]],[d.data]),_=t.isLoading||d.isLoading,g=t.isFetchingNextPage,j=t.hasNextPage??!1,m=t.data?.pages.at(-1)?.page??1,u=t.data?.pages.length??0;return e.jsx("div",{className:"novel-filter-page",children:e.jsxs("div",{className:"novel-filter-page__shell",children:[e.jsxs("header",{className:"novel-filter-page__hero",children:[e.jsxs("div",{className:"novel-filter-page__hero-copy",children:[e.jsx("p",{className:"novel-filter-page__eyebrow",children:"小说筛选"}),e.jsx("h1",{className:"novel-filter-page__title",children:"全部筛选"}),e.jsx("p",{className:"novel-filter-page__summary",children:"先复用现有小说首页与推荐分组查询,把热门标签、结果列表和加载更多恢复成可用入口。"})]}),e.jsxs("nav",{className:"novel-filter-page__hero-actions","aria-label":"小说筛选入口",children:[e.jsx(v,{to:"/novel",className:"novel-filter-page__action-link",children:"小说首页"}),e.jsx(v,{to:"/novel/bookshelf",className:"novel-filter-page__action-link",children:"书架"})]})]}),e.jsx("section",{className:"novel-filter-page__panel","aria-label":"筛选条件",children:e.jsxs("div",{className:"novel-filter-page__filters",children:[e.jsxs("div",{className:"novel-filter-page__filter-row",children:[e.jsx("span",{className:"novel-filter-page__filter-label",children:"标签"}),e.jsx("div",{className:"novel-filter-page__chips",children:x.map(a=>e.jsx("button",{type:"button",onClick:()=>r(a),className:`novel-filter-page__chip${a===l?" is-active":""}`,children:a},a))})]}),e.jsxs("div",{className:"novel-filter-page__filter-row",children:[e.jsx("span",{className:"novel-filter-page__filter-label",children:"更新"}),e.jsx("div",{className:"novel-filter-page__chips",children:L.map(a=>e.jsx("button",{type:"button",onClick:()=>f(a),className:`novel-filter-page__chip${a===n?" is-active":""}`,children:a},a))})]}),e.jsxs("div",{className:"novel-filter-page__filter-row",children:[e.jsx("span",{className:"novel-filter-page__filter-label",children:"进度"}),e.jsx("div",{className:"novel-filter-page__chips",children:$.map(a=>e.jsx("button",{type:"button",onClick:()=>N(a),className:`novel-filter-page__chip${a===i?" is-active":""}`,children:a},a))})]})]})}),e.jsxs("section",{className:"novel-filter-page__content","aria-label":"筛选结果列表",children:[e.jsxs("div",{className:"novel-filter-page__content-meta",children:[e.jsxs("span",{children:["当前标签:",l]}),e.jsxs("span",{children:["更新时间:",n]}),e.jsxs("span",{children:["连载状态:",i]}),e.jsxs("span",{children:["已加载页数:",u]}
1),e.jsxs("span",{children:["当前页:",m]}),e.jsxs("span",{children:["当前结果:",o.length]})]}),_?e.jsxs("div",{className:"novel-filter-page__state",children:[e.jsx(T,{size:16,className:"novel-filter-page__spinner"}),e.jsx("span",{children:"加载筛选结果中..."})]}):null,!_&&o.length===0?e.jsxs("div",{className:"novel-filter-page__empty",children:[e.jsx("p",{className:"novel-filter-page__empty-title",children:"当前标签暂无内容"}),e.jsx("p",{className:"novel-filter-page__empty-text",children:"可以切换回“全部”或其他热门标签继续查看。"})]}):null,o.length>0?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"novel-filter-page__list",children:o.map((a,p)=>e.jsx(v,{to:"/novel/$id/chapter/$chapter",params:{id:a.novelId,chapter:String(a.chapterNo??1)},className:"novel-filter-page__card",children:e.jsxs("article",{className:"novel-filter-page__card-inner",children:[e.jsxs("div",{className:"novel-filter-page__cover-wrap",children:[e.jsx(I,{src:C(a,p),fallbackSrc:"/images/default/defaultImgBg.png",alt:a.name,className:"novel-filter-page__cover"}),e.jsx("span",{className:"novel-filter-page__rank",children:p+1})]}),e.jsxs("div",{className:"novel-filter-page__body",children:[e.jsxs("div",{className:"novel-filter-page__card-head",children:[e.jsx("h2",{className:"novel-filter-page__card-title",children:a.name}),e.jsx("span",{className:"novel-filter-page__badge",children:a.tags[0]||"小说"})]}),e.jsx("p",{className:"novel-filter-page__subtitle",children:E(a)}),a.tags.length>0?e.jsx("p",{className:"novel-filter-page__tags",children:a.tags.map(h=>e.jsx("span",{children:h},h))}):null]}),e.jsx(k,{size:18,className:"novel-filter-page__chevron"})]})},a.novelId))}),e.jsx("div",{className:"novel-filter-page__footer",children:j?e.jsx("button",{type:"button",onClick:()=>{t.fetchNextPage()},className:"novel-filter-page__load-more",disabled:g,children:g?"加载中...":"加载更多"}):e.jsx("p",{className:"novel-filter-page__end",children:"没有更多了"})})]}):null]})]})})}export{O as component};

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.