@funhub/platform 0.2.33 → 0.2.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/components/biz/business/advertisement/popup-ad/client.mjs +2 -2
  2. package/dist/components/biz/business/channel-list/client.mjs +1 -1
  3. package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
  4. package/dist/components/biz/business/large-feature-grid/card-item.mjs +1 -1
  5. package/dist/components/biz/business/marquee/client.mjs +1 -1
  6. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/runtime/client.mjs +1 -1
  7. package/dist/components/biz/business/profile/profile-header/client.mjs +1 -1
  8. package/dist/components/biz/business/profile/profile-main/shell.mjs +1 -1
  9. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.mjs +1 -1
  10. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/video-waterfall.mjs +1 -1
  11. package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.mjs +1 -1
  12. package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.mjs +1 -1
  13. package/dist/components/common/analytics-init/sensor-init.mjs +1 -1
  14. package/dist/components/common/funhub-provider/funhub-provider.mjs +1 -1
  15. package/dist/components/common/funhub-provider/status-bar-sync.mjs +2 -0
  16. package/dist/components/common/header-nav/client.mjs +1 -1
  17. package/dist/components/common/list/waterfall-recommend/waterfall-recommend.mjs +1 -1
  18. package/dist/components/common/video-player/ad-video-source.mjs +2 -0
  19. package/dist/components/common/video-player/video-preroll-ad.mjs +1 -1
  20. package/dist/components/pages/feed-series/feed-series-client.mjs +1 -1
  21. package/dist/components/pages/post-detail/post-detail-client.mjs +1 -1
  22. package/dist/components/pages/search-result/search-tab.mjs +1 -1
  23. package/dist/components/pages/video-list/video-list-client.mjs +1 -1
  24. package/dist/components/pages/video-list/video-list-skeleton.mjs +1 -1
  25. package/dist/components/ui/badge.d.mts +1 -1
  26. package/dist/components/ui/button-group.d.mts +1 -1
  27. package/dist/components/ui/button.d.mts +2 -2
  28. package/dist/components/ui/empty.d.mts +1 -1
  29. package/dist/components/ui/field.d.mts +1 -1
  30. package/dist/components/ui/item.d.mts +1 -1
  31. package/dist/utils/schema/inspector.d.mts +2 -2
  32. package/package.json +1 -1
  33. package/theme.css +9 -0
@@ -1,5 +1,5 @@
1
1
 
2
- "use client";import{trackAdClick as e,trackAdImpression as t,trackAdvertising as n}from"../../../../../utils/tracking.mjs";import{Button as r}from"../../../../ui/button.mjs";import{Image as i}from"../../../../ui/image.mjs";import{Box as a}from"../../../../ui/box.mjs";import{Dialog as o,DialogContent as s}from"../../../../ui/dialog.mjs";import c from"../../../../ui/link.mjs";import l from"../../../../common/video-player/index.mjs";import{adaptPopupAdMaterials as u,hasMatchedAds as d}from"../ad-match.mjs";import{useAdProvider as f}from"../ad-provider.mjs";import{useEffect as p,useMemo as m,useRef as h,useState as g}from"react";import{jsx as _,jsxs as v}from"react/jsx-runtime";const y=[{id:`popup-ad-1`,title:`弹窗广告标题`,jumpUrl:`/search`,materialUrl:`/static/components-resource/banner.png`,desc:`这里是弹窗广告描述`}];function b(e,t){return Array.isArray(e)&&e.length>0?e:t??[]}function x(e){return Number(e?.advertiseType)===2&&!!e?.videoUrl}function S(e){return e?.resolution||`1080x1920`}function C({items:C,mode:w=`renderer`,pageKey:T=`home`,pageName:E=`首页`}){let D=f(),O=m(()=>d(D?.matchData)?u(D?.matchData):w===`editor`?b(C,y):C??[],[D?.matchData,w,C]),[k,A]=g(0),[j,M]=g(!1),N=h(null),P=D?.matchData?.advertiseLocationCode||`home_popup`;p(()=>{A(0)},[O]),p(()=>{M(!1)},[k,O]),p(()=>()=>{N.current&&window.clearTimeout(N.current)},[]);let F=O[k],I=x(F);p(()=>{F?.id&&t({page_key:T,page_name:E,ad_slot_key:P,ad_slot_name:`弹窗广告`,ad_id:F.id,ad_type:`pop-ups-600800`})},[F?.id,P,T,E]);function L(){A(e=>e+1)}function R(){j||(M(!0),N.current&&window.clearTimeout(N.current),N.current=window.setTimeout(()=>{N.current=null,L()},260))}function z(e){e||R()}function B(){F?.id&&e({page_key:T,page_name:E,ad_slot_key:P,ad_slot_name:`弹窗广告`,ad_id:F.id,ad_type:`pop-ups-600800`})}function V(){F?.id&&(n({event_type:`close`,advertising_key:P,advertising_name:`弹窗广告`,advertising_id:F.id}),R())}return F?_(o,{open:!0,onOpenChange:z,disablePointerDismissal:!0,children:v(s,{showCloseButton:!1,className:`w-[320px] max-w-[calc(100vw-32px)] border-none bg-transparent p-0 shadow-none`,children:[v(a,{className:`flex flex-col items-center gap-[24px]`,style:{animation:j?`funhub-popup-ad-exit 260ms cubic-bezier(0.4, 0, 0.2, 1) both`:`funhub-popup-ad-enter 420ms cubic-bezier(0.2, 0.9, 0.2, 1) both, funhub-popup-ad-float 3.2s ease-in-out 420ms infinite`,transformOrigin:`center bottom`},children:[_(a,{className:`w-full overflow-hidden rounded-[20px] bg-[#434343]`,style:{boxShadow:`0 18px 48px rgba(0, 0, 0, 0.26)`},onClick:B,children:I?_(a,{className:`w-full bg-black`,children:v(a,{className:`relative aspect-[9/16] w-full cursor-pointer overflow-hidden bg-black`,children:[_(l,{plyerId:`popup-ad-${F.id}`,resolution:S(F),poster:F.materialUrl||``,videoUrl:F.videoUrl||``,mergeConfig:{fitVideoSize:`fixWidth`,autoplayMuted:!0,controls:!1}}),_(c,{href:F.jumpUrl,"aria-label":F.title||`跳转广告详情`,className:`absolute inset-0 z-10 block`,children:_(`span`,{className:`sr-only`,children:F.title||`跳转广告详情`})})]})}):_(c,{href:F.jumpUrl,className:`block w-full overflow-hidden bg-[#434343]`,children:_(a,{className:`w-full overflow-hidden bg-[#434343]`,children:_(i,{src:F.materialUrl,alt:F.title||`弹窗广告`,width:1200,height:1600,className:`block w-full h-auto`,unoptimized:!0})})})}),_(r,{type:`button`,"aria-label":`关闭弹窗广告`,variant:`ghost`,size:`icon-lg`,className:`relative h-[54px] w-[54px] rounded-full border-[3px] border-white bg-transparent p-0 text-white hover:bg-white/8`,onClick:V,style:{animation:j?`funhub-popup-ad-close-exit 260ms ease-out both`:`funhub-popup-ad-close-breathe 2.4s ease-in-out 480ms infinite`},children:v(a,{className:`relative h-[24px] w-[24px]`,children:[_(a,{className:`absolute left-1/2 top-1/2 h-[4px] w-full -translate-x-1/2 -translate-y-1/2 rotate-45 rounded-full bg-current`}),_(a,{className:`absolute left-1/2 top-1/2 h-[4px] w-full -translate-x-1/2 -translate-y-1/2 -rotate-45 rounded-full bg-current`})]})})]},F.id),_(`style`,{children:`
2
+ "use client";import{trackAdClick as e,trackAdImpression as t,trackAdvertising as n}from"../../../../../utils/tracking.mjs";import{Button as r}from"../../../../ui/button.mjs";import{Image as i}from"../../../../ui/image.mjs";import{Box as a}from"../../../../ui/box.mjs";import{Dialog as o,DialogContent as s}from"../../../../ui/dialog.mjs";import c from"../../../../ui/link.mjs";import l from"../../../../common/video-player/index.mjs";import{adaptPopupAdMaterials as u,hasMatchedAds as d}from"../ad-match.mjs";import{useAdProvider as f}from"../ad-provider.mjs";import{resolveAdVideoSource as p}from"../../../../common/video-player/ad-video-source.mjs";import{useEffect as m,useMemo as h,useRef as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";const b=[{id:`popup-ad-1`,title:`弹窗广告标题`,jumpUrl:`/search`,materialUrl:`/static/components-resource/banner.png`,desc:`这里是弹窗广告描述`}];function x(e,t){return Array.isArray(e)&&e.length>0?e:t??[]}function S(e,t){return Number(e?.advertiseType)===2&&!!t}function C(e){return e?.resolution||`1080x1920`}function w({items:w,mode:T=`renderer`,pageKey:E=`home`,pageName:D=`首页`}){let O=f(),k=h(()=>d(O?.matchData)?u(O?.matchData):T===`editor`?x(w,b):w??[],[O?.matchData,T,w]),[A,j]=_(0),[M,N]=_(!1),P=g(null),F=O?.matchData?.advertiseLocationCode||`home_popup`;m(()=>{j(0)},[k]),m(()=>{N(!1)},[A,k]),m(()=>()=>{P.current&&window.clearTimeout(P.current)},[]);let I=k[A],L=h(()=>p(I?.videoUrl),[I?.videoUrl]),R=S(I,L.playerUrl);m(()=>{I?.id&&t({page_key:E,page_name:D,ad_slot_key:F,ad_slot_name:`弹窗广告`,ad_id:I.id,ad_type:`pop-ups-600800`})},[I?.id,F,E,D]);function z(){j(e=>e+1)}function B(){M||(N(!0),P.current&&window.clearTimeout(P.current),P.current=window.setTimeout(()=>{P.current=null,z()},260))}function V(e){e||B()}function H(){I?.id&&e({page_key:E,page_name:D,ad_slot_key:F,ad_slot_name:`弹窗广告`,ad_id:I.id,ad_type:`pop-ups-600800`})}function U(){I?.id&&(n({event_type:`close`,advertising_key:F,advertising_name:`弹窗广告`,advertising_id:I.id}),B())}return I?v(o,{open:!0,onOpenChange:V,disablePointerDismissal:!0,children:y(s,{showCloseButton:!1,className:`w-[320px] max-w-[calc(100vw-32px)] border-none bg-transparent p-0 shadow-none`,children:[y(a,{className:`flex flex-col items-center gap-[24px]`,style:{animation:M?`funhub-popup-ad-exit 260ms cubic-bezier(0.4, 0, 0.2, 1) both`:`funhub-popup-ad-enter 420ms cubic-bezier(0.2, 0.9, 0.2, 1) both, funhub-popup-ad-float 3.2s ease-in-out 420ms infinite`,transformOrigin:`center bottom`},children:[v(a,{className:`w-full overflow-hidden rounded-[20px] bg-[#434343]`,style:{boxShadow:`0 18px 48px rgba(0, 0, 0, 0.26)`},onClick:H,children:R?v(a,{className:`w-full bg-black`,children:y(a,{className:`relative w-full cursor-pointer overflow-hidden bg-black`,children:[v(l,{plyerId:`popup-ad-${I.id}`,resolution:C(I),poster:I.materialUrl||``,videoUrl:L.playerUrl,mergeConfig:{fitVideoSize:`fixWidth`,autoplayMuted:!0,controls:!1,loop:!0}}),v(c,{href:I.jumpUrl,"aria-label":I.title||`跳转广告详情`,className:`absolute inset-0 z-10 block`,children:v(`span`,{className:`sr-only`,children:I.title||`跳转广告详情`})})]})}):v(c,{href:I.jumpUrl,className:`block w-full overflow-hidden bg-[#434343]`,children:v(a,{className:`w-full overflow-hidden bg-[#434343]`,children:v(i,{src:I.materialUrl,alt:I.title||`弹窗广告`,width:1200,height:1600,className:`block w-full h-auto`,unoptimized:!0})})})}),v(r,{type:`button`,"aria-label":`关闭弹窗广告`,variant:`ghost`,size:`icon-lg`,className:`relative h-[54px] w-[54px] rounded-full border-[3px] border-white bg-transparent p-0 text-white hover:bg-white/8`,onClick:U,style:{animation:M?`funhub-popup-ad-close-exit 260ms ease-out both`:`funhub-popup-ad-close-breathe 2.4s ease-in-out 480ms infinite`},children:y(a,{className:`relative h-[24px] w-[24px]`,children:[v(a,{className:`absolute left-1/2 top-1/2 h-[4px] w-full -translate-x-1/2 -translate-y-1/2 rotate-45 rounded-full bg-current`}),v(a,{className:`absolute left-1/2 top-1/2 h-[4px] w-full -translate-x-1/2 -translate-y-1/2 -rotate-45 rounded-full bg-current`})]})})]},I.id),v(`style`,{children:`
3
3
  @keyframes funhub-popup-ad-enter {
4
4
  0% {
5
5
  opacity: 0;
@@ -61,4 +61,4 @@
61
61
  animation-iteration-count: 1 !important;
62
62
  }
63
63
  }
64
- `})]})}):null}export{C as PopupAd};
64
+ `})]})}):null}export{w as PopupAd};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{mergeStyles as e}from"../../utils/styles/helpers.mjs";import{trackAppPageView as t,trackPageClick as n}from"../../../../utils/tracking.mjs";import{Box as r}from"../../../ui/box.mjs";import i from"../../../ui/link.mjs";import{urlPrefix as a}from"../../../../constants/url-prefix.mjs";import{useSticky as o}from"../../../../hooks/use-sticky.mjs";import s from"../../../../assets/icons/channel-list/channel-active-indicator.mjs";import c from"../../../../assets/icons/common/header-menu.mjs";import l,{loadHiddenChannelIdsFromStorage as u}from"./channel-filter-dialog.mjs";import{defaultProps as d}from"./default-props.mjs";import{clsx as f}from"clsx";import{usePathname as p}from"next/navigation";import{useEffect as m,useMemo as h,useState as g}from"react";import{Fragment as _,jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as b}from"next-intl";const x={},S=`h-[44px]`;function C(e,t){let n=`${a.DOMAIN}/`,r=t.indexOf(n),i=r!==-1,o=i?t.slice(r+n.length).split(`/`)[0]:void 0;return e.isDefault?i&&o?`${a.DOMAIN}/${o}`:`/`:i&&o?`${a.DOMAIN}/${o}/${encodeURIComponent(e.name)}`:`${a.CHANNEL}/${encodeURIComponent(e.name)}`}function w(a){let w=b(`components.biz.business.navBar.variants.basicNavBar.runtime`),{mode:T=`renderer`,styles:E,events:D,...O}=a,k=p()??`/`,A=T===`editor`,j=O||x,M={...d,...j},[N,P]=g(!1),{isSticky:F,ref:I}=o(),[L,R]=g(!1),[z,B]=g(M.list),V=h(()=>M.list.find(e=>e.isDefault)?.name??null,[M.list]),H=h(()=>M.currentChannelId??V,[M.currentChannelId,V]);m(()=>{H&&t({page_key:`page_home_channel_${H}`,page_name:`首页频道-${H}`})},[H]),m(()=>{let e=u();B(e?.length?M.list.filter(t=>!e.includes(t.name)):M.list)},[M.list]);let U=e=>{B(e)},W=(e,t)=>{n(`home`,`首页`,null,`channel_tab`,{channel_name:e.name}),D?.onChannelChange?.(e,t)},G=E?e(E,{}):void 0,K=()=>{P(!0),D?.onFilterClick?.()};return m(()=>{let e=()=>{let e=window.scrollY??document.documentElement.scrollTop??0,t=window.innerHeight,n=document.documentElement.scrollHeight;R(e+t>=n-1)};return window.addEventListener(`scroll`,e,{passive:!0}),e(),()=>{window.removeEventListener(`scroll`,e)}},[]),y(_,{children:[F&&v(r,{className:f(`w-full`,S)}),v(r,{as:`nav`,ref:I,className:f(`w-full bg-transparent transition-all duration-200`,A&&`pointer-events-none`,F&&`fixed top-0 left-0 right-0 z-50`),style:G,children:y(r,{className:f(`relative flex w-full items-center py-2 no-vw-x-16`,S,M.modifiable&&`gap-2`),children:[v(r,{className:`[-webkit-overflow-scrolling:touch] [-ms-overflow-style:none] [scrollbar-width:none] flex h-full min-w-0 flex-1 items-center overflow-x-auto overflow-y-hidden [&::-webkit-scrollbar]:hidden`,children:v(r,{className:`inline-flex h-full min-w-full items-center gap-[23.8px]`,children:z.map((e,t)=>{let n=H===e.name||H===null&&e.isDefault;return v(i,{href:C(e,k),webviewNavMode:`spa`,className:f(`group relative inline-flex h-full shrink-0 cursor-pointer whitespace-nowrap transition-all duration-200`,n?`text-white`:`text-white/70`),onClick:()=>W(e,t),children:n?y(r,{className:`inline-grid grid-cols-1 grid-rows-1 place-items-start h-[24px]`,children:[v(r,{as:`span`,className:`relative z-[1] block h-[24px] text-center text-[20px] font-['PingFang_SC'] font-semibold leading-[24px] text-white transition-all duration-200`,children:e.name}),v(r,{"aria-hidden":`true`,className:`col-start-1 row-start-1 ml-px mt-[15px] h-[11px] w-[39px]`,children:v(s,{className:`block h-full w-full`})})]}):v(r,{className:`inline-flex h-full items-center`,children:v(r,{as:`span`,className:`block h-[24px] text-center text-[16px] font-['PingFang_SC'] font-normal leading-[24px] transition-all duration-200`,children:e.name})})},e.name||`channel-${t}`)})})}),M.modifiable?v(`button`,{type:`button`,"aria-label":w(`moreChannelEntry`),className:`relative flex size-6 shrink-0 items-center justify-center border-0 bg-transparent p-0`,onClick:K,children:v(c,{"aria-hidden":`true`,className:`h-[24px] w-[24px] text-white`})}):null]})}),v(l,{open:N,onOpenChange:P,channels:M.list,currentChannelId:H,onChannelClick:W,onChannelsChange:U})]})}export{w as default};
2
+ "use client";import{mergeStyles as e}from"../../utils/styles/helpers.mjs";import{trackAppPageView as t,trackPageClick as n}from"../../../../utils/tracking.mjs";import{Box as r}from"../../../ui/box.mjs";import i from"../../../ui/link.mjs";import{urlPrefix as a}from"../../../../constants/url-prefix.mjs";import{useSticky as o}from"../../../../hooks/use-sticky.mjs";import s from"../../../../assets/icons/channel-list/channel-active-indicator.mjs";import c from"../../../../assets/icons/common/header-menu.mjs";import l,{loadHiddenChannelIdsFromStorage as u}from"./channel-filter-dialog.mjs";import{defaultProps as d}from"./default-props.mjs";import{clsx as f}from"clsx";import{usePathname as p}from"next/navigation";import{useEffect as m,useMemo as h,useState as g}from"react";import{Fragment as _,jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as b}from"next-intl";const x={},S=`h-[44px]`;function C(e,t){let n=`${a.DOMAIN}/`,r=t.indexOf(n),i=r!==-1,o=i?t.slice(r+n.length).split(`/`)[0]:void 0;return e.isDefault?i&&o?`${a.DOMAIN}/${o}`:`/`:i&&o?`${a.DOMAIN}/${o}/${encodeURIComponent(e.name)}`:`${a.CHANNEL}/${encodeURIComponent(e.name)}`}function w(a){let w=b(`components.biz.business.navBar.variants.basicNavBar.runtime`),{mode:T=`renderer`,styles:E,events:D,...O}=a,k=p()??`/`,A=T===`editor`,j=O||x,M={...d,...j},[N,P]=g(!1),{isSticky:F,ref:I}=o(),[L,R]=g(!1),[z,B]=g(M.list),V=h(()=>M.list.find(e=>e.isDefault)?.name??null,[M.list]),H=h(()=>M.currentChannelId??V,[M.currentChannelId,V]);m(()=>{H&&t({page_key:`page_home_channel_${H}`,page_name:`首页频道-${H}`})},[H]),m(()=>{let e=u();B(e?.length?M.list.filter(t=>!e.includes(t.name)):M.list)},[M.list]);let U=e=>{B(e)},W=(e,t)=>{n(`home`,`首页`,null,`channel_tab`,{channel_name:e.name}),D?.onChannelChange?.(e,t)},G=E?e(E,{}):void 0,K=()=>{P(!0),D?.onFilterClick?.()};return m(()=>{let e=()=>{let e=window.scrollY??document.documentElement.scrollTop??0,t=window.innerHeight,n=document.documentElement.scrollHeight;R(e+t>=n-1)};return window.addEventListener(`scroll`,e,{passive:!0}),e(),()=>{window.removeEventListener(`scroll`,e)}},[]),y(_,{children:[F&&v(r,{className:f(`w-full`,S)}),v(r,{as:`nav`,ref:I,className:f(`w-full bg-[var(--color-surface-white10)] backdrop-blur-[2px] transition-all duration-200`,A&&`pointer-events-none`,F&&`safe-top-offset fixed left-0 right-0 z-50`),style:G,children:y(r,{className:f(`relative flex w-full items-center py-2 no-vw-x-16`,S,M.modifiable&&`gap-2`),children:[v(r,{className:`[-webkit-overflow-scrolling:touch] [-ms-overflow-style:none] [scrollbar-width:none] flex h-full min-w-0 flex-1 items-center overflow-x-auto overflow-y-hidden [&::-webkit-scrollbar]:hidden`,children:v(r,{className:`inline-flex h-full min-w-full items-center gap-[23.8px]`,children:z.map((e,t)=>{let n=H===e.name||H===null&&e.isDefault;return v(i,{href:C(e,k),webviewNavMode:`spa`,className:f(`group relative inline-flex h-full shrink-0 cursor-pointer whitespace-nowrap transition-all duration-200`,n?`text-white`:`text-white/70`),onClick:()=>W(e,t),children:n?y(r,{className:`inline-grid grid-cols-1 grid-rows-1 place-items-start h-[24px]`,children:[v(r,{as:`span`,className:`relative z-[1] block h-[24px] text-center text-[20px] font-['PingFang_SC'] font-semibold leading-[24px] text-white transition-all duration-200`,children:e.name}),v(r,{"aria-hidden":`true`,className:`col-start-1 row-start-1 ml-px mt-[15px] h-[11px] w-[39px]`,children:v(s,{className:`block h-full w-full`})})]}):v(r,{className:`inline-flex h-full items-center`,children:v(r,{as:`span`,className:`block h-[24px] text-center text-[16px] font-['PingFang_SC'] font-normal leading-[24px] transition-all duration-200`,children:e.name})})},e.name||`channel-${t}`)})})}),M.modifiable?v(`button`,{type:`button`,"aria-label":w(`moreChannelEntry`),className:`relative flex size-6 shrink-0 items-center justify-center border-0 bg-transparent p-0`,onClick:K,children:v(c,{"aria-hidden":`true`,className:`h-[24px] w-[24px] text-white`})}):null]})}),v(l,{open:N,onOpenChange:P,channels:M.list,currentChannelId:H,onChannelClick:W,onChannelsChange:U})]})}export{w as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{pContentGetNewstVideoList as e,pContentGetPopularVideoList as t}from"../../../../../service/generated/client.mjs";import{trackAdClick as n,trackAdImpression as r,trackAppPageView as i,trackPageClick as a,trackRecommendListClick as o}from"../../../../../utils/tracking.mjs";import{Image as s}from"../../../../ui/image.mjs";import{Box as c}from"../../../../ui/box.mjs";import{Text as l}from"../../../../ui/text.mjs";import u from"../../../../ui/loading.mjs";import ee from"../../../../ui/link.mjs";import{useGridFirstRowHeight as d,useWaterfallFirstRowHeight as te}from"../../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as ne}from"../../../../../hooks/use-min-duration-loading.mjs";import re from"../../../../../assets/icons/common/right_arrow.mjs";import ie from"../../../../../assets/icons/common/right_arrow_thin.mjs";import ae from"../../../../../assets/icons/detail/video_flag.mjs";import{isFeedAdItem as f}from"../../advertisement/feed-ad/index.mjs";import{RECOMMEND_BADGE_IMAGE_CLASS_NAME as p,RECOMMEND_TOP_LEFT_BADGE_WRAPPER_CLASS_NAME as oe,normalizeRecommendBadgeUrl as m}from"../../../../common/list/waterfall-recommend/recommend-badge-style.mjs";import{WATERFALL_TALL_CARD_ASPECT_RATIO as h,buildWaterfallRecommendLegacyDisplay as se}from"../../../../common/list/waterfall-recommend/waterfall-recommend-display.mjs";import{WaterfallRecommend as g}from"../../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as ce,HOME_RECOMMEND_DEFAULT_GRID_ROWS as le,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as ue,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as de,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as fe,HOME_RECOMMEND_DEFAULT_TITLE as pe,HOME_RECOMMEND_MAX_GRID_COLUMNS as me,HOME_RECOMMEND_MAX_GRID_ROWS as he}from"./home-recommend-default-config.mjs";import{buildHomeRecommendHeatText as _,resolveHomeRecommendBrowseCount as v}from"./home-recommend-play-count.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as y}from"./home-recommend-preview.mjs";import{isHomeRecommendLatestSortRule as ge}from"./home-recommend-smart-layout.mjs";import{limitPopularVideoPageItems as _e}from"./home-recommend-smart-tag.mjs";import{enrichHomeRecommendItemsWithVideoDetails as ve}from"./home-recommend-video-detail.mjs";import{useCallback as b,useEffect as x,useLayoutEffect as ye,useMemo as S,useRef as C,useState as w}from"react";import{Fragment as be,jsx as T,jsxs as E}from"react/jsx-runtime";const xe={backgroundImage:`var(--gradient-card-mask-light)`},Se={},Ce={list:[]},D=new Map,O=[];function we(e){if(e)return D.get(e)}function Te(e,t){if(!e||(D.has(e)||O.push(e),D.set(e,{items:[...t.items],cursor:t.cursor}),O.length<=120))return;let n=O.shift();n&&D.delete(n)}function Ee({variant:s,props:ae=Se,data:p=Ce,mode:oe=`renderer`}){let m=oe===`editor`,{list:h,title:se,cursor:_}=p,v=S(()=>Array.isArray(h)?h:[],[h]),y=S(()=>Array.isArray(p.icons)?p.icons:[],[p.icons]),{rows:xe,columns:D,moreLink:O,title:Ee,showPlayCount:Oe,playCountDelta:k,showEpisode:A,enableInfinite:Me,items:j,smartLayout:M}=ae,N=M?.enabled===!0,P=N&&ge(M?.sortRule),F=Me===!0&&N,I=!m&&F&&v.length>=16,L=S(()=>N||!Array.isArray(j)?``:j.map(e=>String(e?.contentId||``).trim()).filter(Boolean).join(`,`),[N,j]),[R,Ne]=w(0),[z,B]=w(v),[Le,Re]=w(y),[ze,V]=w(()=>typeof _==`string`?_:void 0),[Be,Ve]=w(!1),He=C(null),Ue=C(null),We=C(null),Ge=C([]),H=C({left:null,right:null}),Ke=C(null),qe=C(!1),Je=C(new Set),U=C(new Map),Ye=C(!1),W=C(``),{isLoading:Xe,show:Ze,hide:Qe}=ne(600),$e=Ae(xe,le,he),G=Ae(D,ce,me),K=F?16:s===`grid`?$e*G:16,q=S(()=>[s,(()=>{if(!N||!M)return`manual:${L}`;if(P)return`smart:newest:${M.tagIds.join(`,`)}:${M.catIds.join(`,`)}`;let e=String(M.sortRule??``);return`smart:popular:${M.tagIds.join(`,`)}:${M.catIds.join(`,`)}:sr:${e}`})(),String(K)].join(`|`),[N,L,K,M,P,s]);x(()=>{B(v),Re(y),V(typeof _==`string`?_:void 0)},[_,y,v]);let et=$e*G,tt=m&&s===`grid`,J=tt?z.slice(0,et):z,nt=tt?Le.slice(0,et):Le,rt=s===`waterfall`?6:4,it=J.length>0?Math.max(0,J.length-rt):-1,at=!!ze;x(()=>{if(m)return;let e=J.filter(e=>f(e)).map(e=>e.ad?.ad_code||``).filter(Boolean).join(`,`);e&&r({page_key:`home`,page_name:`首页`,ad_slot_key:`home_feed`,ad_slot_name:`信息流广告`,ad_id:e,ad_type:`feed`})},[J.length,m]);let ot=b(e=>{let t=e.ad?.ad_code||``;t&&n({page_key:`home`,page_name:`首页`,ad_slot_key:`home_feed`,ad_slot_name:`信息流广告`,ad_id:t,ad_type:`feed`})},[]),Y=Ee&&Ee.trim()||se||pe;x(()=>{if(m)return;let e=Ke.current;if(!e)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&!qe.current&&(qe.current=!0,i({page_key:`home`,page_name:`首页`,current_page_key:Y,current_page_name:Y}),t.disconnect())},{threshold:.5});return t.observe(e),()=>{t.disconnect()}},[m,Y,J.length]),x(()=>{let e=U.current;return()=>{e.forEach(e=>e.disconnect()),e.clear()}},[]);let st=b(e=>{let t=e.id||``;!t||Je.current.has(t)||(Je.current.add(t),i({page_key:`home`,page_name:`首页`,current_page_key:t,current_page_name:e.name||``}))},[]),ct=b((e,t)=>{if(f(e)){ot(e);return}o({page_key:`home`,page_name:`首页`,recommend_id:Y}),a(`home`,`首页`,t,e.name||e.id||``)},[ot,Y]);function lt(){a(`home`,`首页`,null,`recommend_more`,{recommend_id:Y})}let X=Oe??fe,Z=Number(k??ue),Q=A??de,ut=`flex-1 min-w-0 text-[18px] leading-[24px] font-medium line-clamp-1 text-text2`,dt=s===`grid`?ie:m?re:ie,ft=ke(O),pt=(s===`waterfall`||!F)&&!!ft,mt=pt?ft:``,ht=s===`grid`?`flex size-[24px] shrink-0 items-center justify-center ${m?`opacity-100`:`opacity-50`}`:`ml-[8px] flex size-[24px] shrink-0 items-center justify-center ${m?`opacity-100`:`opacity-50`}`,gt=`size-[16px] text-text1`,_t=d({enabled:!m&&s===`grid`,containerRef:Ue,firstRowItemRef:Ge,columns:G,itemsCount:J.length,deps:[s]}),vt=te({enabled:!m&&s===`waterfall`,containerRef:He,firstRowRef:H,deps:[s,J.length]}),yt=s===`grid`?_t:vt,bt=b(async()=>{if(m||W.current===q)return;let e=we(q);if(e){B(e.items),N&&V(e.cursor);return}if(N||L){W.current=q;try{if(Ze(),!N){if(!L)return;let e=await ve(v);B(e),Te(q,{items:e});return}if(!M)return;let e=await t({page_size:K,tags:M.tagIds.length>0?M.tagIds:void 0,cat_ids:M.catIds.length>0?M.catIds:void 0},{cache:`no-store`}),n=_e(e.data?.videos,K),r=e.data?.cursor;B(n),V(r),Te(q,{items:n,cursor:r})}catch(e){console.error(`推荐位刷新首屏失败(client)`,e)}finally{W.current===q&&(W.current=``),Qe()}}},[Qe,v,m,N,L,q,K,Ze,M]);x(()=>{bt()},[bt]);let xt=b(async()=>{let n=ze;if(!(!I||!n||Ye.current)){Ye.current=!0,Ve(!0);try{if(!M)return;let r={cursor:n,page_size:K,tags:M.tagIds.length>0?M.tagIds:void 0,cat_ids:M.catIds.length>0?M.catIds:void 0},i=P?await e(r):await t(r),a=Array.isArray(i.data?.videos)?i.data.videos:[],o=i.data?.cursor;a.length>0&&B(e=>e.concat(a)),V(e=>{if(!(!a.length||!o))return o===e?void 0:o})}catch(e){console.error(`推荐位加载下一页失败(client)`,e),V(void 0)}finally{Ye.current=!1,Ve(!1)}}},[ze,K,I,M,P]);x(()=>{let e=We.current;if(!e||!I||!at)return;let t=new IntersectionObserver(e=>{!e[0]?.isIntersecting||Be||xt()},{root:null,threshold:0});return t.observe(e),()=>{t.disconnect()}},[xt,at,Be,J.length,K,I,it]),ye(()=>{let e=He.current;if(!e||s!==`waterfall`)return;let t=()=>{let t=e.clientWidth||0;Ne(t>0?(t-15)/2:0)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[s]);let $=S(()=>s===`waterfall`?Fe(J,nt,R):{left:[],right:[]},[R,nt,J,s]),St=S(()=>s===`waterfall`?{left:$.left.map(e=>Pe(e,X,Z,Q)),right:$.right.map(e=>Pe(e,X,Z,Q))}:{left:[],right:[]},[Z,Q,X,s,$.left,$.right]);if(x(()=>{s===`waterfall`&&($.left.length||(H.current.left=null),$.right.length||(H.current.right=null))},[s,$.left.length,$.right.length]),!J.length)return null;let Ct=!m&&Xe,wt=!m&&Be,Tt=yt>0?yt/2:160;return E(c,{ref:Ke,className:`w-full mt-[8px]`,children:[s===`grid`&&E(c,{className:`flex items-center justify-between no-vw-x-16 mb-[16px]`,children:[T(l,{className:ut,children:Y}),pt&&T(ee,{href:mt,"aria-label":`更多`,className:ht,onClick:lt,children:T(dt,{className:gt})})]}),s===`grid`&&E(c,{ref:Ue,className:`relative flex w-full flex-wrap items-start gap-[8px] no-vw-x-16`,children:[J.map((e,t)=>{let n=nt[t],r=je(e);return T(`div`,{ref:e=>{t===it&&(We.current=e),t<G&&(Ge.current[t]=e)},className:`w-[calc((100%-8px)/2)]`,children:T(De,{item:e,icon:n,index:t,showPlayCount:X&&(r?.showPlayCount??!0),playCountDelta:r?.playCountDelta??Z,showEpisode:r?.showEpisode??Q,widthStyle:{width:`100%`},onContentClick:ct,onContentView:st})},Ie(e,t))}),Ct&&T(c,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),Ct&&T(c,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:Tt},"aria-hidden":!0,children:T(u,{size:`large`,showLabel:!1,className:`text-theme5`})})]}),s===`waterfall`&&T(g,{title:Y,moreHref:mt||void 0,onMoreClick:lt,moreIcon:pt?T(dt,{className:gt}):void 0,titleClassName:ut,moreLinkClassName:ht,columns:St,containerClassName:`relative flex w-full gap-[8px] no-vw-x-16`,getItemRef:({item:e,column:t,columnIndex:n})=>r=>{let{sourceIndex:i}=e;i===it&&(We.current=r),n===0&&(H.current[t]=r);let a=U.current.get(i);if(a&&(a.disconnect(),U.current.delete(i)),r&&!m){let e=J[i];if(e&&!f(e)){let t=new IntersectionObserver(n=>{n[0]?.isIntersecting&&(st(e),t.disconnect(),U.current.delete(i))},{threshold:.5});t.observe(r),U.current.set(i,t)}}},overlay:Ct?E(be,{children:[T(c,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),T(c,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:Tt},"aria-hidden":!0,children:T(u,{size:`large`,showLabel:!1,className:`text-theme5`})})]}):void 0,onItemClick:e=>{let t=J[e.sourceIndex];t&&(f(t)?ot(t):(o({page_key:`home`,page_name:`首页`,recommend_id:Y}),a(`home`,`首页`,null,t.name||t.id||``)))}}),wt&&T(c,{className:`w-full flex justify-center py-[12px]`,children:T(u,{size:`medium`,showLabel:!1,className:`text-theme5`})})]})}function De({item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o,onContentClick:s,onContentView:c}){return T(Oe,{item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o,onContentClick:s,onContentView:c})}function Oe({item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o,onContentClick:u,onContentView:d}){let te=C(null),ne=M(e,j(e)),re=e.name||e?.title||``,ie=e.id?k(e):`#`,g=se({title:re,badgeImageUrl:z(e,t,n),episodeText:I(e,a),heatText:r?_(v(e),i):``,score:P(e.score)}),ce=m(g.topLeftBadgeImageUrl);return x(()=>{let t=te.current;if(!t||!d||f(e))return;let n=new IntersectionObserver(t=>{t[0]?.isIntersecting&&(d(e),n.disconnect())},{threshold:.5});return n.observe(t),()=>{n.disconnect()}},[e,d]),T(ee,{href:ie,className:`block w-full`,onClick:t=>u?.(e,t),style:o,children:E(be,{children:[E(c,{className:`relative w-full overflow-hidden rounded-[8px] bg-bg3`,style:{aspectRatio:h},children:[ne&&T(s,{src:ne,alt:re||`推荐封面`,fill:!0,objectFit:`cover`,className:`object-cover object-top`}),T(c,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:xe,"aria-hidden":!0}),ce&&T(c,{className:oe,children:T(s,{src:ce,alt:`角标`,width:96,height:18,className:p})}),g.topRightScoreText&&T(l,{as:`span`,className:`absolute right-[8px] top-[8px] z-10 shrink-0 text-[14px] leading-[22px] font-semibold text-[#FFC24B]`,children:g.topRightScoreText}),E(c,{className:`absolute left-[8px] right-[8px] bottom-[8px] z-10 flex items-end justify-between gap-[8px]`,children:[T(c,{className:`flex min-w-0 items-center gap-[4px]`,children:g.bottomLeftHeatText&&E(be,{children:[T(ae,{className:`h-[16px] w-[16px] shrink-0 text-white`}),T(l,{as:`span`,className:`min-w-0 truncate text-[14px] leading-[20px] text-white`,children:g.bottomLeftHeatText})]})}),g.bottomRightEpisodeText&&T(l,{as:`span`,className:`shrink-0 text-[14px] leading-[20px] text-white`,children:g.bottomRightEpisodeText})]})]}),T(c,{className:`mt-[8px] h-[44px] overflow-hidden`,children:T(l,{as:`h3`,className:`line-clamp-2 text-[16px] leading-[22px] text-[--color-text-white80]`,children:g.title})})]})})}function k(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id||``}/${t}/episode/1`}function ke(e){return e?e.trim():``}function Ae(e,t,n){let r=Number(e);return!Number.isFinite(r)||r<=0?t:Math.min(n,Math.floor(r))}function je(e){return e[y]}function A(e){return typeof e==`string`?e:``}function Me(e){return typeof e==`string`?e.trim():``}function j(e){return Me(e.img_type).toLowerCase()===`long`?`short`:`tall`}function M(e,t){return t===`short`?e.img_x||e.img_y||e?.coverUrl:e.img_y||e.img_x||e?.coverUrl}function N(e,t){return(e.tags?.map(e=>e.name).filter(Boolean).join(` · `)??``)||(t?F(e,!0):``)}function P(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t>10&&t<=100?t/10:Math.min(t,10)}function F(e,t){return t?L(e)||Ne(Number(e.duration||0)):``}function I(e,t){return t?L(e):``}function L(e){if(!R(e))return``;let t=e.update_status===`0`,n=Number(e.episode_cnt||e.links?.length||0);return n>0?`${t?`更新至`:`全`}${n}集`:``}function R(e){if(Number(e.type??0)===2)return!0;let t=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(t)&&t>1}function Ne(e){if(!Number.isFinite(e)||e<=0)return``;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`}function z(e,t,n){return A(e.badge_url)||A(t?.material_url)||``}function Pe(e,t,n,r){let i=j(e.item),a=M(e.item,i),o=e.item.name||e.item?.title||``,s=e.item.id?k(e.item):`#`,c=z(e.item,e.icon,e.index),l=F(e.item,r),u=N(e.item,r),ee=t?_(v(e.item),n):``,d=P(e.item.score);return{key:Ie(e.item,e.index),sourceIndex:e.index,href:s,cardKind:i,coverUrl:a,title:o,badgeImageUrl:c,episodeText:l,metaPrimaryText:u,heatText:ee,score:d}}function Fe(e,t,n){let r=[],i=[],a=n<=0,o=0,s=0;return e.forEach((e,c)=>{let l=t[c];if(a){c%2==0?r.push({item:e,icon:l,index:c}):i.push({item:e,icon:l,index:c});return}let u=B(n,e);o<=s?(r.push({item:e,icon:l,index:c}),o+=u):(i.push({item:e,icon:l,index:c}),s+=u)}),{left:r,right:i}}function B(e,t){return e?(j(t)===`tall`?216:142)+16:0}function Ie(e,t){return e.id?`home-recommend-${e.id}-${t}`:`home-recommend-${t}`}export{Ee as default};
2
+ "use client";import{pContentGetNewstVideoList as e,pContentGetPopularVideoList as t}from"../../../../../service/generated/client.mjs";import{trackAdClick as n,trackAdImpression as r,trackAppPageView as i,trackPageClick as a,trackRecommendListClick as o}from"../../../../../utils/tracking.mjs";import{Image as s}from"../../../../ui/image.mjs";import{Box as c}from"../../../../ui/box.mjs";import{Text as l}from"../../../../ui/text.mjs";import u from"../../../../ui/loading.mjs";import ee from"../../../../ui/link.mjs";import{useGridFirstRowHeight as d,useWaterfallFirstRowHeight as te}from"../../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as ne}from"../../../../../hooks/use-min-duration-loading.mjs";import re from"../../../../../assets/icons/common/right_arrow.mjs";import ie from"../../../../../assets/icons/common/right_arrow_thin.mjs";import ae from"../../../../../assets/icons/detail/video_flag.mjs";import{isFeedAdItem as f}from"../../advertisement/feed-ad/index.mjs";import{RECOMMEND_BADGE_IMAGE_CLASS_NAME as p,RECOMMEND_TOP_LEFT_BADGE_WRAPPER_CLASS_NAME as oe,normalizeRecommendBadgeUrl as m}from"../../../../common/list/waterfall-recommend/recommend-badge-style.mjs";import{WATERFALL_TALL_CARD_ASPECT_RATIO as h,buildWaterfallRecommendLegacyDisplay as se}from"../../../../common/list/waterfall-recommend/waterfall-recommend-display.mjs";import{WaterfallRecommend as g}from"../../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as ce,HOME_RECOMMEND_DEFAULT_GRID_ROWS as le,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as ue,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as de,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as fe,HOME_RECOMMEND_DEFAULT_TITLE as pe,HOME_RECOMMEND_MAX_GRID_COLUMNS as me,HOME_RECOMMEND_MAX_GRID_ROWS as he}from"./home-recommend-default-config.mjs";import{buildHomeRecommendHeatText as _,resolveHomeRecommendBrowseCount as v}from"./home-recommend-play-count.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as y}from"./home-recommend-preview.mjs";import{isHomeRecommendLatestSortRule as ge}from"./home-recommend-smart-layout.mjs";import{limitPopularVideoPageItems as _e}from"./home-recommend-smart-tag.mjs";import{enrichHomeRecommendItemsWithVideoDetails as ve}from"./home-recommend-video-detail.mjs";import{useCallback as b,useEffect as x,useLayoutEffect as ye,useMemo as S,useRef as C,useState as w}from"react";import{Fragment as be,jsx as T,jsxs as E}from"react/jsx-runtime";const xe={backgroundImage:`var(--gradient-card-mask-light)`},Se={},Ce={list:[]},D=new Map,O=[];function we(e){if(e)return D.get(e)}function Te(e,t){if(!e||(D.has(e)||O.push(e),D.set(e,{items:[...t.items],cursor:t.cursor}),O.length<=120))return;let n=O.shift();n&&D.delete(n)}function Ee({variant:s,props:ae=Se,data:p=Ce,mode:oe=`renderer`}){let m=oe===`editor`,{list:h,title:se,cursor:_}=p,v=S(()=>Array.isArray(h)?h:[],[h]),y=S(()=>Array.isArray(p.icons)?p.icons:[],[p.icons]),{rows:xe,columns:D,moreLink:O,title:Ee,showPlayCount:Oe,playCountDelta:k,showEpisode:A,enableInfinite:Me,items:j,smartLayout:M}=ae,N=M?.enabled===!0,P=N&&ge(M?.sortRule),F=Me===!0&&N,I=!m&&F&&v.length>=16,L=S(()=>N||!Array.isArray(j)?``:j.map(e=>String(e?.contentId||``).trim()).filter(Boolean).join(`,`),[N,j]),[R,Ne]=w(0),[z,B]=w(v),[Le,Re]=w(y),[ze,V]=w(()=>typeof _==`string`?_:void 0),[Be,Ve]=w(!1),He=C(null),Ue=C(null),We=C(null),Ge=C([]),H=C({left:null,right:null}),Ke=C(null),qe=C(!1),Je=C(new Set),U=C(new Map),Ye=C(!1),W=C(``),{isLoading:Xe,show:Ze,hide:Qe}=ne(600),$e=Ae(xe,le,he),G=Ae(D,ce,me),K=F?16:s===`grid`?$e*G:16,q=S(()=>[s,(()=>{if(!N||!M)return`manual:${L}`;if(P)return`smart:newest:${M.tagIds.join(`,`)}:${M.catIds.join(`,`)}`;let e=String(M.sortRule??``);return`smart:popular:${M.tagIds.join(`,`)}:${M.catIds.join(`,`)}:sr:${e}`})(),String(K)].join(`|`),[N,L,K,M,P,s]);x(()=>{B(v),Re(y),V(typeof _==`string`?_:void 0)},[_,y,v]);let et=$e*G,tt=m&&s===`grid`,J=tt?z.slice(0,et):z,nt=tt?Le.slice(0,et):Le,rt=s===`waterfall`?6:4,it=J.length>0?Math.max(0,J.length-rt):-1,at=!!ze;x(()=>{if(m)return;let e=J.filter(e=>f(e)).map(e=>e.ad?.ad_code||``).filter(Boolean).join(`,`);e&&r({page_key:`home`,page_name:`首页`,ad_slot_key:`home_feed`,ad_slot_name:`信息流广告`,ad_id:e,ad_type:`feed`})},[J.length,m]);let ot=b(e=>{let t=e.ad?.ad_code||``;t&&n({page_key:`home`,page_name:`首页`,ad_slot_key:`home_feed`,ad_slot_name:`信息流广告`,ad_id:t,ad_type:`feed`})},[]),Y=Ee&&Ee.trim()||se||pe;x(()=>{if(m)return;let e=Ke.current;if(!e)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&!qe.current&&(qe.current=!0,i({page_key:`home`,page_name:`首页`,current_page_key:Y,current_page_name:Y}),t.disconnect())},{threshold:.5});return t.observe(e),()=>{t.disconnect()}},[m,Y,J.length]),x(()=>{let e=U.current;return()=>{e.forEach(e=>e.disconnect()),e.clear()}},[]);let st=b(e=>{let t=e.id||``;!t||Je.current.has(t)||(Je.current.add(t),i({page_key:`home`,page_name:`首页`,current_page_key:t,current_page_name:e.name||``}))},[]),ct=b((e,t)=>{if(f(e)){ot(e);return}o({page_key:`home`,page_name:`首页`,recommend_id:Y}),a(`home`,`首页`,t,e.name||e.id||``)},[ot,Y]);function lt(){a(`home`,`首页`,null,`recommend_more`,{recommend_id:Y})}let X=Oe??fe,Z=Number(k??ue),Q=A??de,ut=`flex-1 min-w-0 text-[18px] leading-[24px] font-medium line-clamp-1 text-text2`,dt=s===`grid`?ie:m?re:ie,ft=ke(O),pt=(s===`waterfall`||!F)&&!!ft,mt=pt?ft:``,ht=s===`grid`?`flex size-[24px] shrink-0 items-center justify-center ${m?`opacity-100`:`opacity-50`}`:`ml-[8px] flex size-[24px] shrink-0 items-center justify-center ${m?`opacity-100`:`opacity-50`}`,gt=`size-[16px] text-text1`,_t=d({enabled:!m&&s===`grid`,containerRef:Ue,firstRowItemRef:Ge,columns:G,itemsCount:J.length,deps:[s]}),vt=te({enabled:!m&&s===`waterfall`,containerRef:He,firstRowRef:H,deps:[s,J.length]}),yt=s===`grid`?_t:vt,bt=b(async()=>{if(m||W.current===q)return;let e=we(q);if(e){B(e.items),N&&V(e.cursor);return}if(N||L){W.current=q;try{if(Ze(),!N){if(!L)return;let e=await ve(v);B(e),Te(q,{items:e});return}if(!M)return;let e=await t({page_size:K,tags:M.tagIds.length>0?M.tagIds:void 0,cat_ids:M.catIds.length>0?M.catIds:void 0},{cache:`no-store`}),n=_e(e.data?.videos,K),r=e.data?.cursor;B(n),V(r),Te(q,{items:n,cursor:r})}catch(e){console.error(`推荐位刷新首屏失败(client)`,e)}finally{W.current===q&&(W.current=``),Qe()}}},[Qe,v,m,N,L,q,K,Ze,M]);x(()=>{bt()},[bt]);let xt=b(async()=>{let n=ze;if(!(!I||!n||Ye.current)){Ye.current=!0,Ve(!0);try{if(!M)return;let r={cursor:n,page_size:K,tags:M.tagIds.length>0?M.tagIds:void 0,cat_ids:M.catIds.length>0?M.catIds:void 0},i=P?await e(r):await t(r),a=Array.isArray(i.data?.videos)?i.data.videos:[],o=i.data?.cursor;a.length>0&&B(e=>e.concat(a)),V(e=>{if(!(!a.length||!o))return o===e?void 0:o})}catch(e){console.error(`推荐位加载下一页失败(client)`,e),V(void 0)}finally{Ye.current=!1,Ve(!1)}}},[ze,K,I,M,P]);x(()=>{let e=We.current;if(!e||!I||!at)return;let t=new IntersectionObserver(e=>{!e[0]?.isIntersecting||Be||xt()},{root:null,threshold:0});return t.observe(e),()=>{t.disconnect()}},[xt,at,Be,J.length,K,I,it]),ye(()=>{let e=He.current;if(!e||s!==`waterfall`)return;let t=()=>{let t=e.clientWidth||0;Ne(t>0?(t-15)/2:0)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[s]);let $=S(()=>s===`waterfall`?Fe(J,nt,R):{left:[],right:[]},[R,nt,J,s]),St=S(()=>s===`waterfall`?{left:$.left.map(e=>Pe(e,X,Z,Q)),right:$.right.map(e=>Pe(e,X,Z,Q))}:{left:[],right:[]},[Z,Q,X,s,$.left,$.right]);if(x(()=>{s===`waterfall`&&($.left.length||(H.current.left=null),$.right.length||(H.current.right=null))},[s,$.left.length,$.right.length]),!J.length)return null;let Ct=!m&&Xe,wt=!m&&Be,Tt=yt>0?yt/2:160;return E(c,{ref:Ke,className:`w-full mt-[8px]`,children:[s===`grid`&&E(c,{className:`flex items-center justify-between no-vw-x-16 mb-[16px]`,children:[T(l,{className:ut,children:Y}),pt&&T(ee,{href:mt,"aria-label":`更多`,className:ht,onClick:lt,children:T(dt,{className:gt})})]}),s===`grid`&&E(c,{ref:Ue,className:`relative flex w-full flex-wrap items-start gap-[8px] no-vw-x-16`,children:[J.map((e,t)=>{let n=nt[t],r=je(e);return T(`div`,{ref:e=>{t===it&&(We.current=e),t<G&&(Ge.current[t]=e)},className:`w-[calc((100%-8px)/2)]`,children:T(De,{item:e,icon:n,index:t,showPlayCount:X&&(r?.showPlayCount??!0),playCountDelta:r?.playCountDelta??Z,showEpisode:r?.showEpisode??Q,widthStyle:{width:`100%`},onContentClick:ct,onContentView:st})},Ie(e,t))}),Ct&&T(c,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),Ct&&T(c,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:Tt},"aria-hidden":!0,children:T(u,{size:`large`,showLabel:!1,className:`text-theme5`})})]}),s===`waterfall`&&T(g,{title:Y,moreHref:mt||void 0,onMoreClick:lt,moreIcon:pt?T(dt,{className:gt}):void 0,titleClassName:ut,moreLinkClassName:ht,columns:St,containerClassName:`relative flex w-full gap-[8px] no-vw-x-16`,getItemRef:({item:e,column:t,columnIndex:n})=>r=>{let{sourceIndex:i}=e;i===it&&(We.current=r),n===0&&(H.current[t]=r);let a=U.current.get(i);if(a&&(a.disconnect(),U.current.delete(i)),r&&!m){let e=J[i];if(e&&!f(e)){let t=new IntersectionObserver(n=>{n[0]?.isIntersecting&&(st(e),t.disconnect(),U.current.delete(i))},{threshold:.5});t.observe(r),U.current.set(i,t)}}},overlay:Ct?E(be,{children:[T(c,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),T(c,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:Tt},"aria-hidden":!0,children:T(u,{size:`large`,showLabel:!1,className:`text-theme5`})})]}):void 0,onItemClick:e=>{let t=J[e.sourceIndex];t&&(f(t)?ot(t):(o({page_key:`home`,page_name:`首页`,recommend_id:Y}),a(`home`,`首页`,null,t.name||t.id||``)))}}),wt&&T(c,{className:`w-full flex justify-center py-[12px]`,children:T(u,{size:`medium`,showLabel:!1,className:`text-theme5`})})]})}function De({item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o,onContentClick:s,onContentView:c}){return T(Oe,{item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o,onContentClick:s,onContentView:c})}function Oe({item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o,onContentClick:u,onContentView:d}){let te=C(null),ne=M(e,j(e)),re=e.name||e?.title||``,ie=e.id?k(e):`#`,g=se({title:re,badgeImageUrl:z(e,t,n),episodeText:I(e,a),heatText:r?_(v(e),i):``,score:P(e.score)}),ce=m(g.topLeftBadgeImageUrl);return x(()=>{let t=te.current;if(!t||!d||f(e))return;let n=new IntersectionObserver(t=>{t[0]?.isIntersecting&&(d(e),n.disconnect())},{threshold:.5});return n.observe(t),()=>{n.disconnect()}},[e,d]),T(ee,{href:ie,className:`block w-full`,onClick:t=>u?.(e,t),style:o,children:E(be,{children:[E(c,{className:`relative w-full overflow-hidden rounded-[8px] bg-bg3`,style:{aspectRatio:h},children:[ne&&T(s,{src:ne,alt:re||`推荐封面`,fill:!0,objectFit:`cover`,className:`object-cover object-top`}),T(c,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:xe,"aria-hidden":!0}),ce&&T(c,{className:oe,children:T(s,{src:ce,alt:`角标`,width:96,height:18,className:p})}),E(c,{className:`absolute left-[8px] right-[8px] bottom-[8px] z-10 flex items-end justify-between gap-[8px]`,children:[T(c,{className:`flex min-w-0 items-center gap-[4px]`,children:g.bottomLeftHeatText&&E(be,{children:[T(ae,{className:`h-[16px] w-[16px] shrink-0 text-white`}),T(l,{as:`span`,className:`min-w-0 truncate text-[14px] leading-[20px] text-white`,children:g.bottomLeftHeatText})]})}),g.bottomRightEpisodeText&&T(l,{as:`span`,className:`shrink-0 text-[14px] leading-[20px] text-white`,children:g.bottomRightEpisodeText})]})]}),T(c,{className:`mt-[8px] h-[44px] overflow-hidden`,children:T(l,{as:`h3`,className:`line-clamp-2 text-[16px] leading-[22px] text-[--color-text-white80]`,children:g.title})})]})})}function k(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id||``}/${t}/episode/1`}function ke(e){return e?e.trim():``}function Ae(e,t,n){let r=Number(e);return!Number.isFinite(r)||r<=0?t:Math.min(n,Math.floor(r))}function je(e){return e[y]}function A(e){return typeof e==`string`?e:``}function Me(e){return typeof e==`string`?e.trim():``}function j(e){return Me(e.img_type).toLowerCase()===`long`?`short`:`tall`}function M(e,t){return t===`short`?e.img_x||e.img_y||e?.coverUrl:e.img_y||e.img_x||e?.coverUrl}function N(e,t){return(e.tags?.map(e=>e.name).filter(Boolean).join(` · `)??``)||(t?F(e,!0):``)}function P(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t>10&&t<=100?t/10:Math.min(t,10)}function F(e,t){return t?L(e)||Ne(Number(e.duration||0)):``}function I(e,t){return t?L(e):``}function L(e){if(!R(e))return``;let t=e.update_status===`0`,n=Number(e.episode_cnt||e.links?.length||0);return n>0?`${t?`更新至`:`全`}${n}集`:``}function R(e){if(Number(e.type??0)===2)return!0;let t=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(t)&&t>1}function Ne(e){if(!Number.isFinite(e)||e<=0)return``;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`}function z(e,t,n){return A(e.badge_url)||A(t?.material_url)||``}function Pe(e,t,n,r){let i=j(e.item),a=M(e.item,i),o=e.item.name||e.item?.title||``,s=e.item.id?k(e.item):`#`,c=z(e.item,e.icon,e.index),l=F(e.item,r),u=N(e.item,r),ee=t?_(v(e.item),n):``,d=P(e.item.score);return{key:Ie(e.item,e.index),sourceIndex:e.index,href:s,cardKind:i,coverUrl:a,title:o,badgeImageUrl:c,episodeText:l,metaPrimaryText:u,heatText:ee,score:d}}function Fe(e,t,n){let r=[],i=[],a=n<=0,o=0,s=0;return e.forEach((e,c)=>{let l=t[c];if(a){c%2==0?r.push({item:e,icon:l,index:c}):i.push({item:e,icon:l,index:c});return}let u=B(n,e);o<=s?(r.push({item:e,icon:l,index:c}),o+=u):(i.push({item:e,icon:l,index:c}),s+=u)}),{left:r,right:i}}function B(e,t){return e?(j(t)===`tall`?216:142)+16:0}function Ie(e,t){return e.id?`home-recommend-${e.id}-${t}`:`home-recommend-${t}`}export{Ee as default};
@@ -1,2 +1,2 @@
1
1
 
2
- import{formatCompactCount as e}from"../../../../utils/common.mjs";import{trackRecommendListClick as t}from"../../../../utils/tracking.mjs";import{Image as n}from"../../../ui/image.mjs";import{Box as r}from"../../../ui/box.mjs";import{Text as i}from"../../../ui/text.mjs";import a from"../../../ui/link.mjs";import{normalizeRecommendBadgeUrl as o}from"../../../common/list/waterfall-recommend/recommend-badge-style.mjs";import s from"../../../../assets/icons/view.mjs";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";function d(t){let n=Number(t||0);return Number.isNaN(n)||n<=0?``:e(n)}function f(e){let t=Number(e);return!Number.isFinite(t)||t<=0?``:(Math.min(Math.max(t,0),100)/10).toFixed(1)}function p({data:e}){return e?l(r,{className:`flex flex-col gap-[12px]`,children:(Array.isArray(e)?e:[e]).map((e,p)=>{if(!e||typeof e!=`object`)return null;let{id:m,title:h,desc:g,cover:_,tagImageUrl:v,showEpisode:y,episodeText:b,showPlayCount:x,play_count:S,score:C}=e,w=h||``,T=m?`/video/${m}/${w?encodeURIComponent(w):``}`:`#`,E=b==null?``:String(b).trim(),D=(y??!0)&&E!==``,O=x??!0,k=o(v),A=d(S)||`0`,j=f(C);return l(r,{children:l(a,{href:T,className:`block`,onClick:()=>t({page_key:`home`,page_name:`首页`,recommend_id:m,recommend_trace_info:w}),children:u(r,{className:`relative h-[204px] w-full overflow-hidden rounded-[8px] bg-[rgba(67,60,97,.5)]`,children:[u(r,{className:`relative h-[134px] w-full overflow-hidden rounded-t-[8px]`,children:[_&&l(n,{src:_,alt:w||`封面`,fill:!0,objectFit:`cover`}),k&&l(r,{className:`absolute left-[16px] top-[12px] z-10 flex min-w-0 items-center`,children:l(n,{src:k,alt:`角标`,width:96,height:18,className:`h-[18px] w-auto max-w-[96px] rounded-[4px] object-contain`})}),j&&l(i,{as:`span`,className:`absolute right-[16px] top-[8px] z-10 shrink-0 text-[14px] font-semibold leading-[22px] text-[#FFC24B]`,children:j}),u(r,{className:`absolute bottom-[12px] left-[16px] right-[16px] flex items-center justify-between`,children:[l(r,{className:`flex items-center gap-[4px]`,children:O&&u(c,{children:[l(s,{className:`size-[22px] text-white opacity-80`}),l(i,{className:`text-[14px] leading-[20px] text-white`,children:A})]})}),D&&l(i,{className:`text-[14px] leading-[20px] text-white`,children:E})]})]}),l(r,{className:`pt-[12px] no-vw-x-16`,children:u(r,{className:`flex flex-col gap-[2px]`,children:[l(i,{className:`line-clamp-1 text-[16px] font-medium leading-[22px] text-[--color-text-secondary]`,children:w}),g&&l(i,{className:`line-clamp-1 text-[14px] leading-[20px] text-white/50`,children:g})]})})]})})},m||w||`large-grid-item-${p}`)})}):null}export{p as LargeGridItemClient};
2
+ import{formatCompactCount as e}from"../../../../utils/common.mjs";import{trackRecommendListClick as t}from"../../../../utils/tracking.mjs";import{Image as n}from"../../../ui/image.mjs";import{Box as r}from"../../../ui/box.mjs";import{Text as i}from"../../../ui/text.mjs";import a from"../../../ui/link.mjs";import{normalizeRecommendBadgeUrl as o}from"../../../common/list/waterfall-recommend/recommend-badge-style.mjs";import s from"../../../../assets/icons/view.mjs";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";function d(t){let n=Number(t||0);return Number.isNaN(n)||n<=0?``:e(n)}function f({data:e}){return e?l(r,{className:`flex flex-col gap-[12px]`,children:(Array.isArray(e)?e:[e]).map((e,f)=>{if(!e||typeof e!=`object`)return null;let{id:p,title:m,desc:h,cover:g,tagImageUrl:_,showEpisode:v,episodeText:y,showPlayCount:b,play_count:x}=e,S=m||``,C=p?`/video/${p}/${S?encodeURIComponent(S):``}`:`#`,w=y==null?``:String(y).trim(),T=(v??!0)&&w!==``,E=b??!0,D=o(_),O=d(x)||`0`;return l(r,{children:l(a,{href:C,className:`block`,onClick:()=>t({page_key:`home`,page_name:`首页`,recommend_id:p,recommend_trace_info:S}),children:u(r,{className:`relative h-[204px] w-full overflow-hidden rounded-[8px] bg-[rgba(67,60,97,.5)]`,children:[u(r,{className:`relative h-[134px] w-full overflow-hidden rounded-t-[8px]`,children:[g&&l(n,{src:g,alt:S||`封面`,fill:!0,objectFit:`cover`}),D&&l(r,{className:`absolute left-[16px] top-[12px] z-10 flex min-w-0 items-center`,children:l(n,{src:D,alt:`角标`,width:96,height:18,className:`h-[18px] w-auto max-w-[96px] rounded-[4px] object-contain`})}),u(r,{className:`absolute bottom-[12px] left-[16px] right-[16px] flex items-center justify-between`,children:[l(r,{className:`flex items-center gap-[4px]`,children:E&&u(c,{children:[l(s,{className:`size-[22px] text-white opacity-80`}),l(i,{className:`text-[14px] leading-[20px] text-white`,children:O})]})}),T&&l(i,{className:`text-[14px] leading-[20px] text-white`,children:w})]})]}),l(r,{className:`pt-[12px] no-vw-x-16`,children:u(r,{className:`flex flex-col gap-[2px]`,children:[l(i,{className:`line-clamp-1 text-[16px] font-medium leading-[22px] text-[--color-text-secondary]`,children:S}),h&&l(i,{className:`line-clamp-1 text-[14px] leading-[20px] text-white/50`,children:h})]})})]})})},p||S||`large-grid-item-${f}`)})}):null}export{f as LargeGridItemClient};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useRouter as e}from"../../../../utils/use-compatible-router.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../../assets/icons/marquee-close.mjs";import i from"../../../../assets/icons/marquee-enter.mjs";import a from"../../../../assets/icons/marquee-speaker.mjs";import{defaultMarqueePeriod as o}from"./schema.mjs";import{useEffect as s,useLayoutEffect as c,useMemo as l,useRef as u,useState as d}from"react";import{jsx as f,jsxs as p}from"react/jsx-runtime";const m=[],h=`marquee_list`;let g=null;function _(e,t=20){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function v(e,t){if(!e)return!1;if(t===`once`)return!0;let n=new Date(e),r=new Date;return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function y(){if(g)return g;let e=localStorage.getItem(h);if(!e)return g={},{};try{let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};return Object.entries(t).forEach(([e,t])=>{if(!t||typeof t!=`object`)return;let r=t.closedAt;typeof r!=`number`||Number.isNaN(r)||(n[e]={closedAt:r})}),g=n,n}catch{return g={},{}}}function b(e){g=e,localStorage.setItem(h,JSON.stringify(e))}function x(e){return y()[e]??{}}function S(e,t){b({...y(),[e]:t})}function C(e,t){return v(e.closedAt,t)}function w(h){let{marqueeKey:g,contents:v=m,close:y,displayStrategy:b,mode:w=`renderer`}=h,T=w===`editor`,E=e(),D=u(!1),O=u(null),k=u(null),[A,j]=d(T),[M,N]=d(T),[P,F]=d(!1),[I,L]=d(0);s(()=>{F(!0)},[]);let R=l(()=>{let e=b?.period??o,t=e.start,n=e.end;if(!t&&!n)return!0;let r=Date.now(),i=t?new Date(t).getTime():0,a=n?new Date(n).getTime():2**53-1;return r>=i&&r<=a},[b?.period]),z=l(()=>(v??[]).map(e=>({...e,text:_(String(e?.text??``))})).filter(e=>!!e.text),[v]),B=g?.trim()??``,V=l(()=>z.map(e=>`${e.text??``}::${e.link??``}`).join(`|`),[z]);if(s(()=>{L(0)},[V,B]),s(()=>{T||B||D.current||process.env.NODE_ENV===`production`||(D.current=!0,console.warn(`[MarqueeClient] marqueeKey is required in renderer mode.`))},[T,B]),s(()=>{if(P){if(T){j(!0),N(!0);return}if(!b?.rule||!R||z.length===0){j(!1),N(!0);return}if(!B){j(!0),N(!0);return}j(!C(x(B),b.rule)),N(!0)}},[b?.rule,T,P,R,z.length,B]),c(()=>{if(T)return;let e=O.current,t=k.current;if(!e||!t)return;let n=e.offsetWidth,r=t.scrollWidth,i=n+r,a=Math.max(i/80,3)*1e3,o=t.animate([{transform:`translateX(${n}px)`},{transform:`translateX(-${r}px)`}],{duration:a,iterations:z.length<=1?1/0:1,easing:`linear`,fill:`forwards`});return o.onfinish=()=>{z.length>1&&L(e=>(e+1)%z.length)},()=>o.cancel()},[I,V,T,A,z.length]),!T&&(!P||!M||!A||!R)||z.length===0)return null;let H=z[I%z.length],U=H?.click,W=U?.enabled===!0,G=U?.link,K=W&&!!G,q=y?.enabled===!0,J=K,Y=q;function X(){!B||!b?.rule||z.length===0||S(B,{...x(B),closedAt:Date.now()})}let Z=e=>{e.stopPropagation(),j(!1),X()};function Q(e){if(typeof window>`u`){E.push(e);return}if(window.isWebView===!0)try{let t=new URL(e,window.location.href);if(t.origin===window.location.origin){let e=t.pathname.split(`/`).filter(Boolean),n=e.findIndex(e=>e===`video`);n>=0&&(e[n]=`webview`,t.pathname=`/${e.join(`/`)}`)}window.location.href=t.toString();return}catch{window.location.href=e;return}E.push(e)}function $(){T||K&&G&&(j(!1),X(),Q(G))}let ee=f(t,{className:`flex size-6 shrink-0 items-center justify-center overflow-hidden p-0.5`,"aria-hidden":!0,children:f(i,{className:`h-5 w-5 opacity-50`,"aria-hidden":!0})}),te=f(`button`,{type:`button`,"aria-label":`关闭`,className:`flex size-6 shrink-0 items-center justify-center overflow-hidden p-0.5`,onClick:Z,children:f(r,{className:`h-5 w-5`,"aria-hidden":!0})}),ne=f(t,{className:`flex size-6 shrink-0 items-center justify-center overflow-hidden p-0.5`,"aria-hidden":!0}),re=p(t,{className:`flex min-w-6 shrink-0 items-center justify-end `,children:[J?ee:null,Y?q?te:f(t,{className:`flex size-6 shrink-0 items-center justify-center overflow-hidden p-0.5`,"aria-hidden":!0,children:f(r,{className:`h-5 w-5`,"aria-hidden":!0})}):null,!J&&!Y?ne:null]});return p(t,{className:`grid h-8 w-full grid-cols-[20px_minmax(0,1fr)_auto] items-center gap-2 bg-white/10 no-vw-x-16 py-1 backdrop-blur-[2px] ${K?`cursor-pointer`:``} ${T?`pointer-events-none`:``}`,onClick:$,children:[f(a,{className:`h-5 w-5 shrink-0`,"aria-hidden":!0}),f(t,{ref:O,className:`relative h-5 min-w-0 w-full overflow-hidden`,children:f(t,{ref:k,className:`absolute inset-y-0 left-0 flex items-center whitespace-nowrap`,children:f(n,{className:`inline-block font-sans text-[14px] font-normal leading-[20px] not-italic text-white/90`,children:H.text})},`marquee-item-${I}`)}),re]})}export{w as MarqueeClient};
2
+ "use client";import{useRouter as e}from"../../../../utils/use-compatible-router.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../../assets/icons/marquee-close.mjs";import i from"../../../../assets/icons/marquee-enter.mjs";import a from"../../../../assets/icons/marquee-speaker.mjs";import{defaultMarqueePeriod as o}from"./schema.mjs";import{useEffect as s,useLayoutEffect as c,useMemo as l,useRef as u,useState as d}from"react";import{jsx as f,jsxs as p}from"react/jsx-runtime";const m=[],h=`marquee_list`;let g=null;function _(e,t=20){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function v(e,t){if(!e)return!1;if(t===`once`)return!0;let n=new Date(e),r=new Date;return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function y(){if(g)return g;let e=localStorage.getItem(h);if(!e)return g={},{};try{let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};return Object.entries(t).forEach(([e,t])=>{if(!t||typeof t!=`object`)return;let r=t.closedAt;typeof r!=`number`||Number.isNaN(r)||(n[e]={closedAt:r})}),g=n,n}catch{return g={},{}}}function b(e){g=e,localStorage.setItem(h,JSON.stringify(e))}function x(e){return y()[e]??{}}function S(e,t){b({...y(),[e]:t})}function C(e,t){return v(e.closedAt,t)}function w(h){let{marqueeKey:g,contents:v=m,close:y,displayStrategy:b,mode:w=`renderer`}=h,T=w===`editor`,E=e(),D=u(!1),O=u(null),k=u(null),[A,j]=d(T),[M,N]=d(T),[P,F]=d(!1),[I,L]=d(0);s(()=>{F(!0)},[]);let R=l(()=>{let e=b?.period??o,t=e.start,n=e.end;if(!t&&!n)return!0;let r=Date.now(),i=t?new Date(t).getTime():0,a=n?new Date(n).getTime():2**53-1;return r>=i&&r<=a},[b?.period]),z=l(()=>(v??[]).map(e=>({...e,text:_(String(e?.text??``))})).filter(e=>!!e.text),[v]),B=g?.trim()??``,V=l(()=>z.map(e=>`${e.text??``}::${e.link??``}`).join(`|`),[z]);if(s(()=>{L(0)},[V,B]),s(()=>{T||B||D.current||process.env.NODE_ENV===`production`||(D.current=!0,console.warn(`[MarqueeClient] marqueeKey is required in renderer mode.`))},[T,B]),s(()=>{if(P){if(T){j(!0),N(!0);return}if(!b?.rule||!R||z.length===0){j(!1),N(!0);return}if(!B){j(!0),N(!0);return}j(!C(x(B),b.rule)),N(!0)}},[b?.rule,T,P,R,z.length,B]),c(()=>{if(T)return;let e=O.current,t=k.current;if(!e||!t)return;let n=e.offsetWidth,r=t.scrollWidth,i=n+r,a=Math.max(i/80,3)*1e3,o=t.animate([{transform:`translateX(${n}px)`},{transform:`translateX(-${r}px)`}],{duration:a,iterations:z.length<=1?1/0:1,easing:`linear`,fill:`forwards`});return o.onfinish=()=>{z.length>1&&L(e=>(e+1)%z.length)},()=>o.cancel()},[I,V,T,A,z.length]),!T&&(!P||!M||!A||!R)||z.length===0)return null;let H=z[I%z.length],U=H?.click,W=U?.enabled===!0,G=U?.link,K=W&&!!G,q=y?.enabled===!0,J=K,Y=q;function X(){!B||!b?.rule||z.length===0||S(B,{...x(B),closedAt:Date.now()})}let Z=e=>{e.stopPropagation(),j(!1),X()};function Q(e){if(typeof window>`u`){E.push(e);return}if(window.isWebView===!0)try{let t=new URL(e,window.location.href);if(t.origin===window.location.origin){let e=t.pathname.split(`/`).filter(Boolean),n=e.findIndex(e=>e===`video`);n>=0&&(e[n]=`webview`,t.pathname=`/${e.join(`/`)}`)}window.location.href=t.toString();return}catch{window.location.href=e;return}E.push(e)}function $(){T||K&&G&&Q(G)}let ee=f(t,{className:`flex size-6 shrink-0 items-center justify-center overflow-hidden p-0.5`,"aria-hidden":!0,children:f(i,{className:`h-5 w-5 opacity-50`,"aria-hidden":!0})}),te=f(`button`,{type:`button`,"aria-label":`关闭`,className:`flex size-6 shrink-0 items-center justify-center overflow-hidden p-0.5`,onClick:Z,children:f(r,{className:`h-5 w-5`,"aria-hidden":!0})}),ne=f(t,{className:`flex size-6 shrink-0 items-center justify-center overflow-hidden p-0.5`,"aria-hidden":!0}),re=p(t,{className:`flex min-w-6 shrink-0 items-center justify-end `,children:[J?ee:null,Y?q?te:f(t,{className:`flex size-6 shrink-0 items-center justify-center overflow-hidden p-0.5`,"aria-hidden":!0,children:f(r,{className:`h-5 w-5`,"aria-hidden":!0})}):null,!J&&!Y?ne:null]});return p(t,{className:`grid h-8 w-full grid-cols-[20px_minmax(0,1fr)_auto] items-center gap-2 bg-white/10 no-vw-x-16 py-1 backdrop-blur-[2px] ${K?`cursor-pointer`:``} ${T?`pointer-events-none`:``}`,onClick:$,children:[f(a,{className:`h-5 w-5 shrink-0`,"aria-hidden":!0}),f(t,{ref:O,className:`relative h-5 min-w-0 w-full overflow-hidden`,children:f(t,{ref:k,className:`absolute inset-y-0 left-0 flex items-center whitespace-nowrap`,children:f(n,{className:`inline-block font-sans text-[14px] font-normal leading-[20px] not-italic text-white/90`,children:H.text})},`marquee-item-${I}`)}),re]})}export{w as MarqueeClient};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{mergeStyles as e}from"../../../../../utils/styles/helpers.mjs";import{pxToVw as t}from"../../../../../../../utils/helper.mjs";import{trackAppPageView as n,trackPageClick as r}from"../../../../../../../utils/tracking.mjs";import{Box as i}from"../../../../../../ui/box.mjs";import a from"../../../../../../ui/link.mjs";import{urlPrefix as o}from"../../../../../../../constants/url-prefix.mjs";import{useSticky as s}from"../../../../../../../hooks/use-sticky.mjs";import c from"../../../../../../../assets/icons/search.mjs";import l,{loadHiddenChannelIdsFromStorage as u}from"./channel-filter-dialog.mjs";import{defaultProps as d}from"../defaults/default-props.mjs";import f from"../../../../../../../assets/icons/filter_dark.mjs";import{clsx as p}from"clsx";import{useEffect as m,useMemo as h,useState as g}from"react";import{Fragment as _,jsx as v,jsxs as y}from"react/jsx-runtime";const b={},x={list:[],currentChannelId:null,isFullfeed:!1};function S(e,t){return t===0?`/`:`${o.CHANNEL}/${encodeURIComponent(e.cn_name)}`}function C({props:o=b,styles:C,events:w,data:T=x}){let{searchUrl:E,searchIconSize:D,filterIconSize:O,channelItemHeight:k,channelItemFontSize:A,channelItemActiveFontSize:j,channelItemGap:M}={...d,...o},[N,P]=g(!1),{isSticky:F,ref:I}=s(),[L,R]=g(T.list),z=h(()=>T.currentChannelId??null,[T.currentChannelId]),B=h(()=>T.list.find(e=>e.id===z)?.cn_name??``,[T.list,z]);m(()=>{z&&n({page_key:`page_home_channel_${z}`,page_name:`首页频道-${B}`})},[z,B]),m(()=>{let e=u();R(T.list.filter(t=>!e.includes(t.id)))},[T.list]);let V=e=>{R(e)},H=(e,t)=>{r(`home`,`首页`,null,`channel_tab`,{channel_name:e.cn_name}),w?.onChannelChange?.(e,t)},U=()=>{P(!0),w?.onFilterClick?.()},W=()=>{w?.onSearchClick?.()},G=C?e(C,{}):void 0,K=F?O+D+24:O+16;return y(_,{children:[F&&v(i,{className:`w-full`,style:{height:t(44)}}),v(i,{as:`nav`,ref:I,className:p(`w-full bg-transparent transition-all duration-200`,!T.isFullfeed&&F&&`fixed top-0 left-0 right-0 z-50`,T.isFullfeed&&`fixed top-[54px] left-0 z-10 w-full`),style:G,children:y(i,{className:`relative flex items-center h-[44px]`,children:[v(i,{className:`flex-1 overflow-x-auto overflow-y-hidden [&::-webkit-scrollbar]:hidden`,style:{scrollbarWidth:`none`,msOverflowStyle:`none`,WebkitOverflowScrolling:`touch`},children:v(i,{className:`flex items-center h-full`,style:{paddingLeft:t(16),paddingRight:t(K+16),gap:t(M)},children:L.map((e,n)=>{let r=z===e.id||z===null&&n===0;return v(a,{href:S(e,n),className:p(`whitespace-nowrap cursor-pointer transition-all duration-200`,`flex items-center justify-center`),style:{height:t(k),fontSize:t(r?j:A),fontWeight:r?`bold`:`normal`,color:r?`var(--color-theme5)`:`var(--color-text2)`},onClick:()=>H(e,n),children:e.cn_name},e.id||`channel-${n}`)})})}),y(i,{className:`flex items-center gap-[12px] px-[8px]`,children:[v(i,{className:`flex items-center justify-center cursor-pointer`,style:{width:t(O+8),height:t(O+8)},onClick:U,children:v(f,{width:t(O),height:t(O),style:{color:`var(--color-text1)`}})}),F&&v(a,{href:E,onClick:W,children:v(i,{className:`flex items-center justify-center cursor-pointer`,style:{width:t(D+8),height:t(D+8)},children:v(c,{width:t(D),height:t(D),style:{color:`var(--color-text1)`}})})})]})]})}),v(l,{open:N,onOpenChange:P,channels:T.list,currentChannelId:z,onChannelClick:H,onChannelsChange:V})]})}export{C as default};
2
+ "use client";import{mergeStyles as e}from"../../../../../utils/styles/helpers.mjs";import{pxToVw as t}from"../../../../../../../utils/helper.mjs";import{trackAppPageView as n,trackPageClick as r}from"../../../../../../../utils/tracking.mjs";import{Box as i}from"../../../../../../ui/box.mjs";import a from"../../../../../../ui/link.mjs";import{urlPrefix as o}from"../../../../../../../constants/url-prefix.mjs";import{useSticky as s}from"../../../../../../../hooks/use-sticky.mjs";import c from"../../../../../../../assets/icons/search.mjs";import l,{loadHiddenChannelIdsFromStorage as u}from"./channel-filter-dialog.mjs";import{defaultProps as d}from"../defaults/default-props.mjs";import f from"../../../../../../../assets/icons/filter_dark.mjs";import{clsx as p}from"clsx";import{useEffect as m,useMemo as h,useState as g}from"react";import{Fragment as _,jsx as v,jsxs as y}from"react/jsx-runtime";const b={},x={list:[],currentChannelId:null,isFullfeed:!1};function S(e,t){return t===0?`/`:`${o.CHANNEL}/${encodeURIComponent(e.cn_name)}`}function C({props:o=b,styles:C,events:w,data:T=x}){let{searchUrl:E,searchIconSize:D,filterIconSize:O,channelItemHeight:k,channelItemFontSize:A,channelItemActiveFontSize:j,channelItemGap:M}={...d,...o},[N,P]=g(!1),{isSticky:F,ref:I}=s(),[L,R]=g(T.list),z=h(()=>T.currentChannelId??null,[T.currentChannelId]),B=h(()=>T.list.find(e=>e.id===z)?.cn_name??``,[T.list,z]);m(()=>{z&&n({page_key:`page_home_channel_${z}`,page_name:`首页频道-${B}`})},[z,B]),m(()=>{let e=u();R(T.list.filter(t=>!e.includes(t.id)))},[T.list]);let V=e=>{R(e)},H=(e,t)=>{r(`home`,`首页`,null,`channel_tab`,{channel_name:e.cn_name}),w?.onChannelChange?.(e,t)},U=()=>{P(!0),w?.onFilterClick?.()},W=()=>{w?.onSearchClick?.()},G=C?e(C,{}):void 0,K=F?O+D+24:O+16;return y(_,{children:[F&&v(i,{className:`w-full`,style:{height:t(44)}}),v(i,{as:`nav`,ref:I,className:p(`w-full bg-[var(--color-surface-white10)] backdrop-blur-[2px] transition-all duration-200`,!T.isFullfeed&&F&&`safe-top-offset fixed left-0 right-0 z-50`,T.isFullfeed&&`fixed top-[54px] left-0 z-10 w-full`),style:G,children:y(i,{className:`relative flex items-center h-[44px]`,children:[v(i,{className:`flex-1 overflow-x-auto overflow-y-hidden [&::-webkit-scrollbar]:hidden`,style:{scrollbarWidth:`none`,msOverflowStyle:`none`,WebkitOverflowScrolling:`touch`},children:v(i,{className:`flex items-center h-full`,style:{paddingLeft:t(16),paddingRight:t(K+16),gap:t(M)},children:L.map((e,n)=>{let r=z===e.id||z===null&&n===0;return v(a,{href:S(e,n),className:p(`whitespace-nowrap cursor-pointer transition-all duration-200`,`flex items-center justify-center`),style:{height:t(k),fontSize:t(r?j:A),fontWeight:r?`bold`:`normal`,color:r?`var(--color-theme5)`:`var(--color-text2)`},onClick:()=>H(e,n),children:e.cn_name},e.id||`channel-${n}`)})})}),y(i,{className:`flex items-center gap-[12px] px-[8px]`,children:[v(i,{className:`flex items-center justify-center cursor-pointer`,style:{width:t(O+8),height:t(O+8)},onClick:U,children:v(f,{width:t(O),height:t(O),style:{color:`var(--color-text1)`}})}),F&&v(a,{href:E,onClick:W,children:v(i,{className:`flex items-center justify-center cursor-pointer`,style:{width:t(D+8),height:t(D+8)},children:v(c,{width:t(D),height:t(D),style:{color:`var(--color-text1)`}})})})]})]})}),v(l,{open:N,onOpenChange:P,channels:T.list,currentChannelId:z,onChannelClick:H,onChannelsChange:V})]})}export{C as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{useUserStore as t}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserInfo as n,gUserViewUserInfo as r,pInteractionFollow as i,pInteractionUnfollow as a}from"../../../../../service/generated/client.mjs";import{useRouter as o}from"../../../../../utils/use-compatible-router.mjs";import{Button as s}from"../../../../ui/button.mjs";import{Box as c}from"../../../../ui/box.mjs";import{Text as l}from"../../../../ui/text.mjs";import{Skeleton as u}from"../../../../ui/skeleton.mjs";import{toast as d}from"../../../../../ui.mjs";import{useLoginModalStore as f}from"../../../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as p,useMutation as m,useRequest as h,useUpdateRequest as g}from"../../../../../hooks/query/use-query.mjs";import{LeftArrowIcon as _}from"../../../../common/icons/left-arrow.mjs";import{SettingIcon as v}from"../../../../common/icons/setting.mjs";import{trackProfilePageClick as y}from"../tracking.mjs";import{UserProfileAvatar as b}from"./user-profile-avatar.mjs";import{UserProfileCoverBackground as x}from"./user-profile-cover-background.mjs";import{useEffect as S,useMemo as ee,useState as te}from"react";import{Check as C,Plus as w}from"lucide-react";import{jsx as T,jsxs as E}from"react/jsx-runtime";import{useTranslations as D}from"next-intl";import O from"next/link";const k=t.persist,A=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,j=`/images/mine/img_mine_head_bg.png`;function M({showBackButton:t,isMine:n,enableCustomBackground:r,className:i}){return E(c,{className:e(`relative overflow-hidden px-4 pb-8 pt-[16px]`,i),children:[T(c,{className:e(`pointer-events-none absolute inset-x-0 top-0 h-[220px]`,r?`bg-[image:var(--gradient-card-mask-strong)]`:`bg-[linear-gradient(180deg,var(--color-overlay-mask-start)_0%,var(--color-overlay-mask-end80)_100%)]`)}),E(c,{className:`absolute left-4 right-4 top-[16px] z-10 flex items-center justify-between`,children:[T(s,{variant:`ghost`,size:`icon-xs`,className:e(`h-4 w-4 p-0 hover:bg-transparent`,{invisible:!t}),disabled:!0,children:T(_,{className:`w-4 h-4`})}),T(c,{className:e({invisible:!n}),children:T(v,{className:`text-text1`})})]}),E(c,{className:`relative z-10 mt-[56px] flex items-start gap-4`,children:[T(u,{className:`h-[72px] w-[72px] shrink-0 rounded-full bg-[var(--color-surface-white10)]`}),E(c,{className:`min-w-0 flex-1`,children:[T(u,{className:`h-[26px] w-[132px] rounded-md bg-[var(--color-surface-white10)]`}),E(c,{className:`mt-1 flex flex-col gap-1`,children:[T(u,{className:`h-[20px] w-[76%] rounded-md bg-[var(--color-surface-white10)]`}),T(u,{className:`h-[20px] w-[58%] rounded-md bg-[var(--color-surface-white10)]`})]})]})]})]})}function ne({userId:t,currentUserId:n,isFollowing:r}){let o=D(`components.pages.profile`),{open:c}=f(),l=p(),u=g(),{mutateAsync:h,isPending:_}=m(async e=>i(e)),{mutateAsync:v,isPending:y}=m(async e=>a(e)),b=_||y;async function x(){if(!b){if(!n){c();return}try{if(r){let e=await v({app_id:0,follower_id:n,followee_id:t});e.code===0?(d.success(o(`client.unfollowSuccess`)),S(!1),l([`check-follow`,t]),l([`user-profile`,`profile`,t])):d.error(e.message||o(`client.unfollowFailed`))}else{let e=await h({app_id:0,follower_id:n,followee_id:t});e.code===0?(d.success(o(`client.followSuccess`)),S(!0),l([`check-follow`,t]),l([`user-profile`,`profile`,t])):d.error(e.message||o(`client.followFailed`))}}catch(e){console.error(`关注操作失败`,e),d.error(o(`client.operationFailed`))}}}function S(e){u([`user-profile`,`profile`,t],t=>!t||!t.data?t:{...t,data:{...t.data,is_following:e}})}return E(s,{type:`button`,variant:`ghost`,size:`xs`,className:e(`h-6 min-w-0 gap-1 rounded-full border px-2 py-0 text-[14px] font-normal leading-5 shadow-none`,`disabled:pointer-events-none disabled:opacity-100`,r?`border-[var(--color-text-tertiary)] bg-transparent text-[var(--color-text-tertiary)] hover:!bg-[var(--color-surface-white10)] hover:!text-[var(--color-text-tertiary)]`:`border-[var(--color-text-secondary)] bg-[var(--color-overlay-create-top-black50)] text-[var(--color-text-secondary)] backdrop-blur-[2px] hover:!bg-[var(--color-overlay-create-top-black50)] hover:!text-[var(--color-text-secondary)]`),onClick:x,disabled:b,children:[T(r?C:w,{className:`size-[14px]`}),o(b?`client.processing`:r?`client.followed`:`client.follow`)]})}function N({id:i,enableCustomBackground:a=!0,showBackButton:u=!0,requireLogin:d=!1,isEditorPreview:p=!1,className:m,mode:g=`renderer`}){let C=D(`components.pages.profile`),w=p||g===`editor`,N=!w,re=o(),{open:P}=f(),{isLogin:F,userId:I,token:L}=t(),[ie,R]=te(!1);S(()=>{if(!k){R(!0);return}R(k.hasHydrated());let e=k.onHydrate(()=>{R(!1)}),t=k.onFinishHydration(()=>{R(!0)});return()=>{e(),t()}},[]);let z=w?!1:F&&!!I&&!!L,B=w?``:I,V=B,H=i==null||!!i&&!!V&&i===V,U=H?[`user-profile`,`mine`]:[`user-profile`,`profile`,i],{data:W,isLoading:ae}=h(w?[`editor-preview`,...U]:U,()=>i?r({target_user_id:i,user_id:B||i}):n({user_id:i||B||``}),{staleTime:0,enabled:N&&(!!i||!!B)}),G=ee(()=>{let e=W?W.data:void 0;return e?{userId:e.user_id,isFollowing:e.is_following||!1,name:e.nick_name||`User${i??``}`,avatar:e.avatar||A,followingCnt:e.following_count??0,followersCnt:e.follower_count??0,likeCnt:e.like_count??0,signature:e.signature||``,background:e.bg_image||j}:{}},[i,W]),K=w||d&&H&&!z,q=H&&z&&!K,J=!z,oe=a&&q,se=a&&J,ce={name:C(`client.welcomeToPlanet`),description:C(`client.exploreAdventures`),avatar:A,followingCnt:0,followersCnt:0,likeCnt:0,background:j};function Y(){P()}function le(){re.back()}let X=K?null:H?z?T(O,{href:`/edit`,onClick:e=>{y(e,`edit_profile`)},children:T(s,{variant:`ghost`,className:`h-auto min-h-0 rounded-full border border-[rgba(255,255,255,0.8)] bg-[rgba(11,3,23,0.5)] px-2 py-1 text-[14px] font-normal leading-5 text-[rgba(255,255,255,0.8)] backdrop-blur-[2px] hover:bg-[rgba(11,3,23,0.65)] hover:text-[rgba(255,255,255,0.9)]`,children:C(`client.editProfile`)})}):null:T(ne,{userId:i||``,currentUserId:B,isFollowing:G?.isFollowing}),Z=K?ce:G,Q=Z.name||``,$=Z.description||Z.signature||``,ue=Z.avatar||``;return N&&ae&&!W?T(M,{showBackButton:u,isMine:H,enableCustomBackground:a,className:m}):E(c,{className:e(`relative px-4 pb-8 pt-[16px]`,m),children:[T(c,{className:`absolute inset-x-0 top-0 overflow-hidden`,children:T(x,{isMine:oe,enableCustomBackground:a,src:Z.background,onUnauthorizedClick:se?Y:void 0})}),T(c,{className:e(`pointer-events-none absolute inset-x-0 top-0 h-[220px]`,a?`bg-[image:var(--gradient-card-mask-strong)]`:`bg-[linear-gradient(180deg,var(--color-overlay-mask-start)_0%,var(--color-overlay-mask-end80)_100%)]`)}),E(c,{className:`absolute left-4 right-4 top-[16px] z-10 flex items-center justify-between`,children:[T(s,{variant:`ghost`,size:`icon-xs`,onClick:le,className:e(`h-6 w-6 p-0 text-text1 hover:bg-transparent hover:text-[var(--color-text-secondary)]`,{invisible:!u}),children:T(_,{className:`h-4 w-4`})}),T(O,{href:`/settings`,className:e(`text-[var(--color-text-secondary)] opacity-80 transition-opacity hover:opacity-100`,{invisible:!H}),onClick:e=>{y(e,`settings`)},children:T(v,{})})]}),E(c,{className:e(`relative z-10 mt-[56px] flex justify-between gap-3 items-center`),children:[T(b,{isMine:q,src:ue,alt:Q||`avatar`,onUnauthorizedClick:J?Y:void 0}),E(c,{className:`min-w-0 flex-1`,children:[E(c,{className:e(`flex justify-between gap-3 items-center`),children:[F&&H?T(O,{href:`/edit`,className:`block min-w-0 max-w-[195px]`,children:T(l,{as:`p`,className:`truncate text-[18px] font-semibold leading-[26px] text-[var(--color-text-primary)]`,children:Q})}):T(l,{as:`p`,className:`min-w-0 max-w-[195px] truncate text-[18px] font-semibold leading-[26px] text-[var(--color-text-primary)]`,onClick:()=>{!F&&H&&Y()},children:Q}),X?T(c,{className:`shrink-0 pt-0.5`,children:X}):null]}),$&&T(c,{className:`pt-1`,children:T(l,{as:`p`,className:`line-clamp-2 max-w-[195px] break-words text-[14px] leading-[20px] text-[var(--color-text-white80)]`,children:$})})]})]})]})}export{N as UserProfileHeaderClient,j as defaultBackground};
2
+ "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{useUserStore as t}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserInfo as n,gUserViewUserInfo as r,pInteractionFollow as i,pInteractionUnfollow as a}from"../../../../../service/generated/client.mjs";import{useRouter as o}from"../../../../../utils/use-compatible-router.mjs";import{Button as s}from"../../../../ui/button.mjs";import{Box as c}from"../../../../ui/box.mjs";import{Text as l}from"../../../../ui/text.mjs";import{Skeleton as u}from"../../../../ui/skeleton.mjs";import{toast as d}from"../../../../../ui.mjs";import{useLoginModalStore as f}from"../../../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as p,useMutation as m,useRequest as h,useUpdateRequest as g}from"../../../../../hooks/query/use-query.mjs";import{LeftArrowIcon as _}from"../../../../common/icons/left-arrow.mjs";import{SettingIcon as v}from"../../../../common/icons/setting.mjs";import{trackProfilePageClick as y}from"../tracking.mjs";import{UserProfileAvatar as b}from"./user-profile-avatar.mjs";import{UserProfileCoverBackground as x}from"./user-profile-cover-background.mjs";import{useEffect as S,useMemo as ee,useState as te}from"react";import{Check as C,Plus as w}from"lucide-react";import{jsx as T,jsxs as E}from"react/jsx-runtime";import{useTranslations as D}from"next-intl";import O from"next/link";const k=t.persist,A=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,j=`/images/mine/img_mine_head_bg.png`;function M({showBackButton:t,isMine:n,enableCustomBackground:r,className:i}){return E(c,{className:e(`relative overflow-hidden no-vw-x-16 pb-8 pt-[16px]`,i),children:[T(c,{className:e(`pointer-events-none absolute inset-x-0 top-0 h-[220px]`,r?`bg-[image:var(--gradient-card-mask-strong)]`:`bg-[linear-gradient(180deg,var(--color-overlay-mask-start)_0%,var(--color-overlay-mask-end80)_100%)]`)}),E(c,{className:`absolute left-4 right-4 top-[16px] z-10 flex items-center justify-between`,children:[T(s,{variant:`ghost`,size:`icon-xs`,className:e(`h-4 w-4 p-0 hover:bg-transparent`,{invisible:!t}),disabled:!0,children:T(_,{className:`w-4 h-4`})}),T(c,{className:e({invisible:!n}),children:T(v,{className:`text-text1`})})]}),E(c,{className:`relative z-10 mt-[56px] flex items-start gap-4`,children:[T(u,{className:`h-[72px] w-[72px] shrink-0 rounded-full bg-[var(--color-surface-white10)]`}),E(c,{className:`min-w-0 flex-1`,children:[T(u,{className:`h-[26px] w-[132px] rounded-md bg-[var(--color-surface-white10)]`}),E(c,{className:`mt-1 flex flex-col gap-1`,children:[T(u,{className:`h-[20px] w-[76%] rounded-md bg-[var(--color-surface-white10)]`}),T(u,{className:`h-[20px] w-[58%] rounded-md bg-[var(--color-surface-white10)]`})]})]})]})]})}function ne({userId:t,currentUserId:n,isFollowing:r}){let o=D(`components.pages.profile`),{open:c}=f(),l=p(),u=g(),{mutateAsync:h,isPending:_}=m(async e=>i(e)),{mutateAsync:v,isPending:y}=m(async e=>a(e)),b=_||y;async function x(){if(!b){if(!n){c();return}try{if(r){let e=await v({app_id:0,follower_id:n,followee_id:t});e.code===0?(d.success(o(`client.unfollowSuccess`)),S(!1),l([`check-follow`,t]),l([`user-profile`,`profile`,t])):d.error(e.message||o(`client.unfollowFailed`))}else{let e=await h({app_id:0,follower_id:n,followee_id:t});e.code===0?(d.success(o(`client.followSuccess`)),S(!0),l([`check-follow`,t]),l([`user-profile`,`profile`,t])):d.error(e.message||o(`client.followFailed`))}}catch(e){console.error(`关注操作失败`,e),d.error(o(`client.operationFailed`))}}}function S(e){u([`user-profile`,`profile`,t],t=>!t||!t.data?t:{...t,data:{...t.data,is_following:e}})}return E(s,{type:`button`,variant:`ghost`,size:`xs`,className:e(`h-6 min-w-0 gap-1 rounded-full border px-2 py-0 text-[14px] font-normal leading-5 shadow-none`,`disabled:pointer-events-none disabled:opacity-100`,r?`border-[var(--color-text-tertiary)] bg-transparent text-[var(--color-text-tertiary)] hover:!bg-[var(--color-surface-white10)] hover:!text-[var(--color-text-tertiary)]`:`border-[var(--color-text-secondary)] bg-[var(--color-overlay-create-top-black50)] text-[var(--color-text-secondary)] backdrop-blur-[2px] hover:!bg-[var(--color-overlay-create-top-black50)] hover:!text-[var(--color-text-secondary)]`),onClick:x,disabled:b,children:[T(r?C:w,{className:`size-[14px]`}),o(b?`client.processing`:r?`client.followed`:`client.follow`)]})}function N({id:i,enableCustomBackground:a=!0,showBackButton:u=!0,requireLogin:d=!1,isEditorPreview:p=!1,className:m,mode:g=`renderer`}){let C=D(`components.pages.profile`),w=p||g===`editor`,N=!w,re=o(),{open:P}=f(),{isLogin:F,userId:I,token:L}=t(),[ie,R]=te(!1);S(()=>{if(!k){R(!0);return}R(k.hasHydrated());let e=k.onHydrate(()=>{R(!1)}),t=k.onFinishHydration(()=>{R(!0)});return()=>{e(),t()}},[]);let z=w?!1:F&&!!I&&!!L,B=w?``:I,V=B,H=i==null||!!i&&!!V&&i===V,U=H?[`user-profile`,`mine`]:[`user-profile`,`profile`,i],{data:W,isLoading:ae}=h(w?[`editor-preview`,...U]:U,()=>i?r({target_user_id:i,user_id:B||i}):n({user_id:i||B||``}),{staleTime:0,enabled:N&&(!!i||!!B)}),G=ee(()=>{let e=W?W.data:void 0;return e?{userId:e.user_id,isFollowing:e.is_following||!1,name:e.nick_name||`User${i??``}`,avatar:e.avatar||A,followingCnt:e.following_count??0,followersCnt:e.follower_count??0,likeCnt:e.like_count??0,signature:e.signature||``,background:e.bg_image||j}:{}},[i,W]),K=w||d&&H&&!z,q=H&&z&&!K,J=!z,oe=a&&q,se=a&&J,ce={name:C(`client.welcomeToPlanet`),description:C(`client.exploreAdventures`),avatar:A,followingCnt:0,followersCnt:0,likeCnt:0,background:j};function Y(){P()}function le(){re.back()}let X=K?null:H?z?T(O,{href:`/edit`,onClick:e=>{y(e,`edit_profile`)},children:T(s,{variant:`ghost`,className:`h-auto min-h-0 rounded-full border border-[rgba(255,255,255,0.8)] bg-[rgba(11,3,23,0.5)] px-2 py-1 text-[14px] font-normal leading-5 text-[rgba(255,255,255,0.8)] backdrop-blur-[2px] hover:bg-[rgba(11,3,23,0.65)] hover:text-[rgba(255,255,255,0.9)]`,children:C(`client.editProfile`)})}):null:T(ne,{userId:i||``,currentUserId:B,isFollowing:G?.isFollowing}),Z=K?ce:G,Q=Z.name||``,$=Z.description||Z.signature||``,ue=Z.avatar||``;return N&&ae&&!W?T(M,{showBackButton:u,isMine:H,enableCustomBackground:a,className:m}):E(c,{className:e(`relative no-vw-x-16 pb-8 pt-[16px]`,m),children:[T(c,{className:`absolute inset-x-0 top-0 overflow-hidden`,children:T(x,{isMine:oe,enableCustomBackground:a,src:Z.background,onUnauthorizedClick:se?Y:void 0})}),T(c,{className:e(`pointer-events-none absolute inset-x-0 top-0 h-[220px]`,a?`bg-[image:var(--gradient-card-mask-strong)]`:`bg-[linear-gradient(180deg,var(--color-overlay-mask-start)_0%,var(--color-overlay-mask-end80)_100%)]`)}),E(c,{className:`absolute left-4 right-4 top-[16px] z-10 flex items-center justify-between`,children:[T(s,{variant:`ghost`,size:`icon-xs`,onClick:le,className:e(`h-6 w-6 p-0 text-text1 hover:bg-transparent hover:text-[var(--color-text-secondary)]`,{invisible:!u}),children:T(_,{className:`h-4 w-4`})}),T(O,{href:`/settings`,className:e(`text-[var(--color-text-secondary)] opacity-80 transition-opacity hover:opacity-100`,{invisible:!H}),onClick:e=>{y(e,`settings`)},children:T(v,{})})]}),E(c,{className:e(`relative z-10 mt-[56px] flex justify-between gap-4 items-center`),children:[T(b,{isMine:q,src:ue,alt:Q||`avatar`,onUnauthorizedClick:J?Y:void 0}),E(c,{className:`min-w-0 flex-1`,children:[E(c,{className:e(`flex justify-between gap-3 items-center`),children:[F&&H?T(O,{href:`/edit`,className:`block min-w-0 max-w-[195px]`,children:T(l,{as:`p`,className:`truncate text-[18px] font-semibold leading-[26px] text-[var(--color-text-primary)]`,children:Q})}):T(l,{as:`p`,className:`min-w-0 max-w-[195px] truncate text-[18px] font-semibold leading-[26px] text-[var(--color-text-primary)]`,onClick:()=>{!F&&H&&Y()},children:Q}),X?T(c,{className:`shrink-0 pt-0.5`,children:X}):null]}),$&&T(c,{className:`pt-1`,children:T(l,{as:`p`,className:`line-clamp-2 max-w-[195px] break-words text-[14px] leading-[20px] text-[var(--color-text-white80)]`,children:$})})]})]})]})}export{N as UserProfileHeaderClient,j as defaultBackground};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{useUserStore as t}from"../../../../../store/modules/user-store.mjs";import{Button as n}from"../../../../ui/button.mjs";import{Box as r}from"../../../../ui/box.mjs";import{EmptyState as i}from"../../../../ui/empty.mjs";import{Text as a}from"../../../../ui/text.mjs";import{Tabs as o,TabsList as s,TabsTrigger as c}from"../../../../ui/tabs.mjs";import{useLoginModalStore as l}from"../../../../../store/modules/login-modal-store.mjs";import{trackProfilePageClick as u}from"../tracking.mjs";import{profileMainMineTabOptions as d,profileMainProfileTabOptions as f}from"./variants.mjs";import{useEffect as p,useId as m,useMemo as h,useRef as g}from"react";import{jsx as _,jsxs as v}from"react/jsx-runtime";import{useTranslations as y}from"next-intl";import{parseAsString as b,useQueryState as x}from"nuqs";function S(e){let t=m();return v(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`37`,height:`10`,viewBox:`0 0 37 10`,fill:`none`,...e,children:[_(`path`,{d:`M32.8921 0.212888C34.4317 -0.398985 36.1765 0.353067 36.7886 1.89258C37.4004 3.43219 36.6484 5.17704 35.1089 5.78906L29.9204 7.85058C26.0475 9.38961 21.7156 9.29046 17.9175 7.57519C15.9234 6.67463 13.6771 6.5 11.5679 7.08203L3.79833 9.22656C2.20143 9.66708 0.549808 8.72958 0.108873 7.13281C-0.331916 5.53567 0.605478 3.88317 2.20262 3.44238L9.97118 1.29785C13.431 0.342993 17.1161 0.629191 20.3872 2.10644C22.7028 3.15218 25.3434 3.21271 27.7046 2.27441L32.8921 0.212888Z`,fill:`url(#${t})`}),_(`defs`,{children:v(`linearGradient`,{id:t,x1:`3.00047`,y1:`5.00097`,x2:`34.0005`,y2:`5.00097`,gradientUnits:`userSpaceOnUse`,children:[_(`stop`,{stopColor:`var(--color-brand-tag-gradient-start)`}),_(`stop`,{offset:`1`,stopColor:`var(--color-brand-tag-gradient-end)`})]})})]})}function C(e){return v(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`68`,height:`58`,viewBox:`0 0 68 58`,fill:`none`,...e,children:[_(`rect`,{x:`0.5`,y:`0.5`,width:`67`,height:`57`,rx:`7.5`,fill:`#1B1829`,stroke:`#322F3E`}),_(`path`,{d:`M27.1175 33.8211L27.118 23.9652C27.1182 21.7159 29.502 20.2667 31.4989 21.3021L40.5835 26.0125C42.6976 27.1086 42.7531 30.1126 40.681 31.2861L31.5959 36.4317C29.596 37.5644 27.1173 36.1195 27.1175 33.8211Z`,fill:`#54525E`})]})}function w(e){return e?[...d]:[...f]}function T(e,t){let n=w(t);return n.includes(e)?e:n[0]}function E(e){let t=window.getComputedStyle(e);return/auto|scroll|overlay/.test(t.overflowY)}function D(e){if(typeof window>`u`)return null;let t=e?.parentElement??null;for(;t;){if(E(t))return t;t=t.parentElement}return null}function O(e){return typeof window>`u`?0:e?e.scrollTop:window.scrollY||window.pageYOffset||0}function k(e,t){if(!(typeof window>`u`)){if(e){e.scrollTo({top:t});return}window.scrollTo({top:t,left:0})}}function A({profileId:d,currentUserId:f,isMine:m,renderMode:E,className:A,children:j}){let M=y(`components.pages.profile`),N=g(null),P=l(e=>e.open),F=t(e=>e.userId),I=g(``),L=w(m),[R,z]=x(`tab`,b.withDefault(`collect`)),B=h(()=>T(R,m),[m,R]),V=f||F||``,H=m?V:d,U=h(()=>`profile-scroll:${H||(m?`mine`:`guest`)}:${B}`,[m,B,H]);p(()=>{R!==B&&z(B,{shallow:!1})},[B,z,R]),p(()=>{if(typeof window>`u`)return;let e=`${m?`mine`:`profile`}:${H||``}:${B}`;I.current!==e&&(I.current=e)},[m,d,V,B,H]),p(()=>{if(typeof window>`u`)return;let e=D(N.current),t=window.sessionStorage.getItem(U),n=t?Number(t):0;Number.isFinite(n)&&n>0&&requestAnimationFrame(()=>{k(e,n)});let r=!1,i=()=>{r||(r=!0,requestAnimationFrame(()=>{window.sessionStorage.setItem(U,String(O(e))),r=!1}))};return e?(e.addEventListener(`scroll`,i,{passive:!0}),()=>{e.removeEventListener(`scroll`,i)}):(window.addEventListener(`scroll`,i,{passive:!0}),()=>{window.removeEventListener(`scroll`,i)})},[U]);let W={collect:M(`client.collect`),like:M(`client.like`),history:M(`client.history`)},G=j;return E===`login-required`?G=v(r,{className:`flex flex-col items-center pt-[132px] text-center`,children:[_(C,{className:`h-[58px] w-[68px]`}),_(a,{className:`mt-[16px] text-[15px] leading-[normal] text-[#54525E]`,children:M(`client.loginToSeeMoreVideos`)}),_(n,{type:`button`,onClick:P,className:`mt-[16px] h-[40px] min-w-[100px] rounded-[8px] border-0 bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] px-[24px] py-0 text-[16px] font-normal leading-[24px] text-white active:opacity-90`,children:M(`client.loginNow`)})]}):E===`privacy-collect`?G=_(i,{type:`no-content`,text:M(`client.collectionNotPublic`)}):E===`privacy-like`&&(G=_(i,{type:`no-content`,text:M(`client.likeNotPublic`)})),v(r,{ref:N,className:e(`relative grow overflow-hidden rounded-t-[24px] bg-[var(--color-surface-panel-dark)]`,A),children:[_(r,{className:`sticky top-0 z-10 bg-[var(--color-surface-panel-dark)] no-vw-x-16 pt-8`,children:_(o,{value:B,onValueChange:e=>{z(e,{shallow:!1})},className:`h-6 w-full`,children:_(s,{variant:`default`,className:`h-6 w-fit gap-8 px-0`,children:L.map(t=>v(c,{value:t,onClick:e=>{u(e,`${t}_tab`)},className:e(`group/profile-main-tab !flex-none !h-6 min-w-8 !px-0 !py-0 !pb-0 text-[16px] !font-normal leading-6 text-[var(--color-text-secondary)]`,`data-[active]:!text-text1 data-[active]:!font-semibold data-[active]:!text-[18px]`,`data-[state=active]:!text-text1 data-[state=active]:!font-semibold data-[state=active]:!text-[18px]`,`after:hidden`),children:[_(S,{"aria-hidden":`true`,className:e(`pointer-events-none absolute bottom-0 left-1/2 h-[10px] w-[37px] -translate-x-1/2 opacity-0 transition-opacity duration-200`,`group-data-[active]/profile-main-tab:opacity-100`,`group-data-[state=active]/profile-main-tab:opacity-100`)}),_(`span`,{className:`relative z-10`,children:W[t]})]},t))})})}),_(r,{className:`relative no-vw-x-16 pb-6 pt-7`,children:G})]})}export{A as UserProfileMainShell};
2
+ "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{useUserStore as t}from"../../../../../store/modules/user-store.mjs";import{Button as n}from"../../../../ui/button.mjs";import{Box as r}from"../../../../ui/box.mjs";import{EmptyState as i}from"../../../../ui/empty.mjs";import{Text as a}from"../../../../ui/text.mjs";import{Tabs as o,TabsList as s,TabsTrigger as c}from"../../../../ui/tabs.mjs";import{useLoginModalStore as l}from"../../../../../store/modules/login-modal-store.mjs";import{trackProfilePageClick as u}from"../tracking.mjs";import{profileMainMineTabOptions as d,profileMainProfileTabOptions as f}from"./variants.mjs";import{useEffect as p,useId as m,useMemo as h,useRef as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as b}from"next-intl";import{parseAsString as x,useQueryState as S}from"nuqs";function C(e){let t=m();return y(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`37`,height:`10`,viewBox:`0 0 37 10`,fill:`none`,...e,children:[v(`path`,{d:`M32.8921 0.212888C34.4317 -0.398985 36.1765 0.353067 36.7886 1.89258C37.4004 3.43219 36.6484 5.17704 35.1089 5.78906L29.9204 7.85058C26.0475 9.38961 21.7156 9.29046 17.9175 7.57519C15.9234 6.67463 13.6771 6.5 11.5679 7.08203L3.79833 9.22656C2.20143 9.66708 0.549808 8.72958 0.108873 7.13281C-0.331916 5.53567 0.605478 3.88317 2.20262 3.44238L9.97118 1.29785C13.431 0.342993 17.1161 0.629191 20.3872 2.10644C22.7028 3.15218 25.3434 3.21271 27.7046 2.27441L32.8921 0.212888Z`,fill:`url(#${t})`}),v(`defs`,{children:y(`linearGradient`,{id:t,x1:`3.00047`,y1:`5.00097`,x2:`34.0005`,y2:`5.00097`,gradientUnits:`userSpaceOnUse`,children:[v(`stop`,{stopColor:`var(--color-brand-tag-gradient-start)`}),v(`stop`,{offset:`1`,stopColor:`var(--color-brand-tag-gradient-end)`})]})})]})}function w(e){return y(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`68`,height:`58`,viewBox:`0 0 68 58`,fill:`none`,...e,children:[v(`rect`,{x:`0.5`,y:`0.5`,width:`67`,height:`57`,rx:`7.5`,fill:`#1B1829`,stroke:`#322F3E`}),v(`path`,{d:`M27.1175 33.8211L27.118 23.9652C27.1182 21.7159 29.502 20.2667 31.4989 21.3021L40.5835 26.0125C42.6976 27.1086 42.7531 30.1126 40.681 31.2861L31.5959 36.4317C29.596 37.5644 27.1173 36.1195 27.1175 33.8211Z`,fill:`#54525E`})]})}function T(e){return e?[...d]:[...f]}function E(e,t){let n=T(t);return n.includes(e)?e:n[0]}function D(e){let t=window.getComputedStyle(e);return/auto|scroll|overlay/.test(t.overflowY)}function O(e){if(typeof window>`u`)return null;let t=e?.parentElement??null;for(;t;){if(D(t))return t;t=t.parentElement}return null}function k(e){return typeof window>`u`?0:e?e.scrollTop:window.scrollY||window.pageYOffset||0}function A(e,t){if(!(typeof window>`u`)){if(e){e.scrollTo({top:t});return}window.scrollTo({top:t,left:0})}}function j({profileId:d,currentUserId:f,isMine:m,renderMode:D,className:j,children:M}){let N=b(`components.pages.profile`),P=g(null),F=g(null),[I,L]=_(!1),R=l(e=>e.open),z=t(e=>e.userId),B=g(``),V=T(m),[H,U]=S(`tab`,x.withDefault(`collect`)),W=h(()=>E(H,m),[m,H]),G=f||z||``,K=m?G:d,q=h(()=>`profile-scroll:${K||(m?`mine`:`guest`)}:${W}`,[m,W,K]);p(()=>{H!==W&&U(W,{shallow:!1})},[W,U,H]),p(()=>{if(typeof window>`u`)return;let e=`${m?`mine`:`profile`}:${K||``}:${W}`;B.current!==e&&(B.current=e)},[m,d,G,W,K]),p(()=>{if(typeof window>`u`)return;let e=O(P.current),t=window.sessionStorage.getItem(q),n=t?Number(t):0;Number.isFinite(n)&&n>0&&requestAnimationFrame(()=>{A(e,n)});let r=!1,i=()=>{r||(r=!0,requestAnimationFrame(()=>{window.sessionStorage.setItem(q,String(k(e))),r=!1}))};return e?(e.addEventListener(`scroll`,i,{passive:!0}),()=>{e.removeEventListener(`scroll`,i)}):(window.addEventListener(`scroll`,i,{passive:!0}),()=>{window.removeEventListener(`scroll`,i)})},[q]),p(()=>{if(typeof window>`u`)return;let e=F.current;if(!e)return;let t=O(e),n=new IntersectionObserver(([e])=>{L(!e.isIntersecting)},{root:t,rootMargin:`0px`,threshold:0});return n.observe(e),()=>{n.disconnect()}},[]);let J={collect:N(`client.collect`),like:N(`client.like`),history:N(`client.history`)},Y=M;return D===`login-required`?Y=y(r,{className:`flex flex-col items-center pt-[132px] text-center`,children:[v(w,{className:`h-[58px] w-[68px]`}),v(a,{className:`mt-[16px] text-[15px] leading-[normal] text-[#54525E]`,children:N(`client.loginToSeeMoreVideos`)}),v(n,{type:`button`,onClick:R,className:`mt-[16px] h-[40px] min-w-[100px] rounded-[8px] border-0 bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] px-[24px] py-0 text-[16px] font-normal leading-[24px] text-white active:opacity-90`,children:N(`client.loginNow`)})]}):D===`privacy-collect`?Y=v(i,{type:`no-content`,text:N(`client.collectionNotPublic`)}):D===`privacy-like`&&(Y=v(i,{type:`no-content`,text:N(`client.likeNotPublic`)})),y(r,{ref:P,className:e(`relative grow rounded-t-[24px] bg-[var(--color-surface-panel-dark)]`,j),children:[v(r,{ref:F,className:`pointer-events-none h-px w-full shrink-0`,"aria-hidden":!0}),v(r,{className:e(`safe-top-offset sticky z-[999] w-full bg-[var(--color-surface-panel-dark)] no-vw-x-16 pt-7 pb-6`,!I&&`rounded-t-[24px]`),children:v(o,{value:W,onValueChange:e=>{U(e,{shallow:!1})},className:`h-6 w-full`,children:v(s,{variant:`default`,className:`h-6 w-fit gap-8 px-0`,children:V.map(t=>y(c,{value:t,onClick:e=>{u(e,`${t}_tab`)},className:e(`group/profile-main-tab !flex-none !h-6 min-w-8 !px-0 !py-0 !pb-0 text-[16px] !font-normal leading-6 text-[var(--color-text-secondary)]`,`data-[active]:!text-text1 data-[active]:!font-semibold data-[active]:!text-[18px]`,`data-[state=active]:!text-text1 data-[state=active]:!font-semibold data-[state=active]:!text-[18px]`,`after:hidden`),children:[v(C,{"aria-hidden":`true`,className:e(`pointer-events-none absolute bottom-0 left-1/2 h-[10px] w-[37px] -translate-x-1/2 opacity-0 transition-opacity duration-200`,`group-data-[active]/profile-main-tab:opacity-100`,`group-data-[state=active]/profile-main-tab:opacity-100`)}),v(`span`,{className:`relative z-10`,children:J[t]})]},t))})})}),v(r,{className:`relative no-vw-x-16 pb-6`,children:Y})]})}export{j as UserProfileMainShell};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../../../../../utils/cn.mjs";import{useUserStore as t}from"../../../../../../../store/modules/user-store.mjs";import{gCommunityGetSubscribedCollections as n,gCommunityGetUserCollections as r,gInteractionListCollects as i,pCommunityBatchDeleteCollection as a,pInteractionBatchDeleteCollects as ee}from"../../../../../../../service/generated/client.mjs";import{Button as te}from"../../../../../../ui/button.mjs";import{Box as o}from"../../../../../../ui/box.mjs";import{Text as s}from"../../../../../../ui/text.mjs";import{Tabs as ne,TabsList as re,TabsTrigger as ie}from"../../../../../../ui/tabs.mjs";import{useMutation as ae,usePaginated as c,useUpdateRequest as oe}from"../../../../../../../hooks/query/use-query.mjs";import{CreateCollectionSheet as se}from"../../../../../../common/collection-popup/create-collection-sheet.mjs";import{DeleteConfirmDialog as ce}from"../../../../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{CollectionList as le}from"../../../../../../common/list/collection-list/collection-list.mjs";import{PostList as ue}from"../../../../../../common/list/post-list/post-list.mjs";import{trackProfilePageClick as de}from"../../../tracking.mjs";import{ProfileMainEmptyState as l}from"../../empty-state.mjs";import{CollectVideoWaterfall as fe}from"./video-waterfall.mjs";import{toast as u}from"sonner";import{useEffect as d,useMemo as f,useState as p}from"react";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{useTranslations as g}from"next-intl";import _ from"dayjs";import{parseAsString as pe,useQueryState as me}from"nuqs";const he={video:1,post:2};function ge(e,t){if(!e)return e;let n=0,r=e.pages.map(e=>({page:e,filteredList:(e.data?.list??b).filter(e=>{let r=e?.id??``,i=t.has(r);return i&&(n+=1),!i})}));return{...e,pages:r.map(({page:e,filteredList:t})=>{if(!e.data)return e;let r=typeof e.data.total==`number`?Math.max(0,e.data.total-n):e.data.total;return{...e,data:{...e.data,list:t,total:r}}})}}function v(e){if(e.cover_image)return e.cover_image;let t=``;return e.medias?.find(e=>e?(!e.is_video&&!t&&e.media_url&&(t=e.media_url),!!e.cover_image):!1)?.cover_image||t}function _e(e,t){let n=t[e.content_id||``]?.create_time,r=v(e);return{id:e.content_id||``,title:e.content||``,coverImage:r,publishTime:_(n).toDate().getTime()}}function ve(e){return String(e.description||e.detail?.description||``).trim()||``}function ye(e){let t=String(e.img_type||``).trim().toLowerCase();return t===`short`?e.img_y||e.img_x||``:t===`long`?e.img_x||e.img_y||``:e.img_y||e.img_x||``}function be(e,t){let n=t[e.id||``]?.create_time;return{is_more_link:e.is_more_link,id:e.id||``,title:e.name||``,coverImage:ye(e),duration:Number(e.duration??e.detail?.duration??0),authorName:e.up_user||e.source_username||``,viewCount:e.play_count??0,publishTime:_(n).toDate().getTime(),imgType:e.img_type||e.media?.img_type||``,score:e.score??e.detail?.score,description:ve(e)}}function xe(e){let t=v(e);return{contentType:e.source_type,id:e.content_id,title:e.title||e.content,coverImage:t,isVideo:!1,isMovie:!1}}function y(e){return Array.from({length:3},(t,n)=>({id:`${e}-placeholder-${n}`,isPlaceholder:!0}))}function Se(e){let t=e.contents??[],n=(Array.isArray(t)?t:[]).slice(0,3).map(xe),r=e.content_count??n.length;return{id:e.collection_id||``,title:e.title||``,contentCount:r,isDefaultCollection:!!e.is_default,contents:r===0?y(e.collection_id||`collection`):n}}const b=[],Ce=[`video`,`post`,`collection`],we=[`created`,`subscribed`];function Te({className:t}){return m(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,className:e(`text-[var(--color-text-secondary)] opacity-60`,t),children:m(`path`,{d:`M7.33398 7.3335V4.66683H8.66732V7.3335H11.334V8.66683H8.66732V11.3335H7.33398V8.66683H4.66732V7.3335H7.33398ZM8.00065 14.6668C4.31875 14.6668 1.33398 11.682 1.33398 8.00016C1.33398 4.31826 4.31875 1.3335 8.00065 1.3335C11.6825 1.3335 14.6673 4.31826 14.6673 8.00016C14.6673 11.682 11.6825 14.6668 8.00065 14.6668ZM8.00065 13.3335C10.9462 13.3335 13.334 10.9457 13.334 8.00016C13.334 5.05464 10.9462 2.66683 8.00065 2.66683C5.05513 2.66683 2.66732 5.05464 2.66732 8.00016C2.66732 10.9457 5.05513 13.3335 8.00065 13.3335Z`,fill:`currentColor`})})}function Ee({className:t}){return m(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,className:e(`text-[var(--color-text-secondary)] opacity-60`,t),children:m(`g`,{children:m(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M10.7666 2.12385C10.9828 1.94731 11.3023 1.95935 11.5039 2.16096L13.8389 4.49592C13.942 4.5991 13.9999 4.73966 14 4.88557C14 5.03152 13.942 5.17199 13.8389 5.27522L11.5078 7.6053C11.5063 7.60688 11.5055 7.60959 11.5039 7.61116C11.5023 7.61279 11.4997 7.61345 11.498 7.61506L5.27539 13.8387C5.17216 13.9418 5.03168 13.9998 4.88574 13.9998H2.55078C2.24679 13.9998 2.00001 13.753 2 13.449V11.1141C2 10.9681 2.05794 10.8277 2.16113 10.7244L10.7246 2.16096L10.7666 2.12385ZM3.10059 11.3416V12.8992H4.6582L10.335 7.22151L8.77734 5.66389L3.10059 11.3416ZM9.55664 4.88459L11.1143 6.44221L12.6709 4.88557L11.1133 3.32893L9.55664 4.88459Z`,fill:`currentColor`})})})}const De=`flex items-center gap-[2px] text-[14px] leading-6 text-[var(--color-text-secondary)]`;function Oe(){return e(`!flex !items-center !flex-none !h-6 !w-auto !rounded-[4px] !bg-[var(--color-surface-chip-gray20)] !text-[12px] !font-normal !leading-[14px] !text-text1 hover:!text-text1`,`data-[active]:!text-text1 data-[state=active]:!text-text1`,`data-[active]:!bg-[image:var(--gradient-action-button)]`,`data-[state=active]:!bg-[image:var(--gradient-action-button)]`)}function x({mode:e=`renderer`,userId:_,showCreateAction:v=!1,queryKeyPrefix:ve,isMine:ye=!1}){let xe=g(),y=g(`components.pages.collectionDetail`),x=g(`components.pages.profile.components.tabs`),S=e===`renderer`,C=ve??[],[w,T]=me(`collectTab`,pe.withDefault(`video`)),[E,ke]=me(`collectCollectionTab`,pe.withDefault(`created`)),D=f(()=>Ce.includes(w)?w:`video`,[w]),O=f(()=>we.includes(E)?E:`created`,[E]),[k,A]=p(!1),[j,M]=p(!1),[Ae,N]=p(!1),[je,P]=p(!1),[Me,Ne]=p(!1),[F,I]=p(()=>new Set),[L,R]=p(()=>new Set),{userId:Pe,userInfo:Fe}=t(),z=_||Pe||Fe?.userId||``,Ie=oe();async function Le(e,t){if(!z)return{data:{list:[],total:0}};let n=await i({user_id:z,folder_id:``,content_type:t,page:e,page_size:10}),r=n.data.collect_infos?.reduce((e,t)=>(t.content_id&&(e[t.content_id]=t),e),{})||{},a=n.data?.collect_items?.map(e=>t===he.video?be(e.video_info,r):_e(e.post_info,r))??[];return{data:{list:a,total:n.data?.total??a.length}}}let B=c({key:[...C,`user-collect-video`,z],initialPageParam:1,async queryFn(e){return Le(e,he.video)},options:{staleTime:0,enabled:S},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),V=c({key:[...C,`user-collect-post`,z],initialPageParam:1,options:{staleTime:0,enabled:S},async queryFn(e){return{data:{list:[],total:0,has_more:!1}}},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}});async function Re(e){if(!z)return{data:{list:[],total:0}};let t=await r({page:e,user_id:_,page_size:10}),n=t.data?.data?.collections??[];return{data:{list:n.map(Se),total:t.data?.data?.total??n.length}}}async function ze(e){if(!z)return{data:{list:[],total:0}};let t=(await n({page:e,user_id:_,page_size:10})).data?.data,r=t?.collections??[];return{data:{list:r.map(Se),total:t?.total??r.length}}}let H=c({key:[...C,`user-collection-created`,z],initialPageParam:1,options:{staleTime:0,enabled:S},async queryFn(e){return Re(e)},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),U=c({key:[...C,`user-collection-subscribed`,z],initialPageParam:1,options:{staleTime:0,enabled:S},async queryFn(e){return ze(e)},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),W=f(()=>B.data?.pages.flatMap(e=>e.data?.list??b)??b,[B.data]),G=f(()=>V.data?.pages.flatMap(e=>e.data?.list??b)??b,[V.data]),Be=f(()=>H.data?.pages.flatMap(e=>e.data?.list??b)??b,[H.data]),Ve=f(()=>U.data?.pages.flatMap(e=>e.data?.list??b)??b,[U.data]),He=D===`video`?W:D===`post`?G:b,K=new Set(He.map(e=>e.id)),Ue=K.size,We=Ue>0&&F.size===Ue,q=D===`video`?B:V,J=O===`created`?H:U,Y=O===`created`?Be:Ve,X=D===`video`?W.length===0&&!q.isFetching:D===`post`?G.length===0&&!q.isFetching:Y.length===0&&!J.isFetching,Z=f(()=>new Set(Y.filter(e=>!e.isDefaultCollection).map(e=>e.id)),[Y]),Ge=Z.size>0&&[...Z].every(e=>L.has(e)),Ke=D===`video`,qe=v&&O===`created`,Je=[...C,`user-collect-video`,z],Ye=[...C,`user-collect-post`,z],{mutateAsync:Xe,isPending:Q}=ae(async e=>await ee({app_id:0,user_id:z,folder_id:``,content_type:Ke?1:2,content_ids:e})),{mutateAsync:Ze,isPending:$}=ae(async e=>await a({collection_ids:e})),Qe=()=>{A(!k),I(new Set)};function $e(){qe&&(M(e=>!e),R(new Set))}d(()=>{if(I(new Set),D===`collection`){A(!1),N(!1);return}A(!1),R(new Set),M(!1),P(!1)},[D]),d(()=>{R(new Set),M(!1),P(!1)},[O]),d(()=>{w!==D&&T(D)},[D,w,T]),d(()=>{E!==O&&ke(O)},[O,E,ke]);let et=e=>{I(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},tt=()=>{F.size===K.size&&K.size>0?I(new Set):I(new Set(K))};function nt(e){if(Y.find(t=>t.id===e)?.isDefaultCollection){u.error(y(`detail.defaultCollectionDeleteNotSupported`));return}R(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function rt(){if(Ge){R(new Set);return}R(new Set(Z))}function it(){F.size===0||Q||N(!0)}function at(){Q||N(!1)}function ot(){$||P(!1)}async function st(){if(!(F.size===0||Q)){if(!z){u.error(x(`collectTab.pleaseLogin`));return}try{let e=Array.from(F),t=await Xe(e);if(t.code===0){u.success(x(`collectTab.uncollectedSuccess`));let t=new Set(e);Ie(Ke?Je:Ye,e=>ge(e,t)),N(!1),I(new Set),A(!1)}else u.error(t.message||x(`collectTab.uncollectFailed`))}catch(e){console.error(`取消收藏失败`,e),u.error(x(`collectTab.operationFailed`))}}}function ct(){L.size===0||$||P(!0)}async function lt(){if(!(L.size===0||$)){if(!z){u.error(x(`collectTab.pleaseLogin`));return}try{let e=await Ze(Array.from(L));if(e.code===0){u.success(y(`detail.deleteSuccess`)),await J.refetch(),P(!1),R(new Set),M(!1);return}u.error(e.message||y(`detail.deleteFailed`))}catch(e){console.error(`删除收藏夹失败`,e),u.error(y(`detail.deleteFailed`))}}}let ut=async()=>{if(S){if(D===`collection`){await J.fetchNextPage();return}await q.fetchNextPage()}};return h(o,{children:[h(o,{className:`flex items-center justify-between`,children:[m(ne,{value:D,onValueChange:e=>{T(e)},children:h(re,{variant:`tag`,className:`!h-6 !gap-4 !p-0`,children:[m(ie,{value:`video`,className:Oe(),children:x(`collectTab.video`)}),m(ie,{value:`collection`,className:Oe(),children:x(`collectTab.collections`)})]})}),D===`collection`?v&&h(o,{className:`flex items-center gap-3`,children:[h(`button`,{type:`button`,className:De,onClick:()=>Ne(!0),children:[m(Te,{}),m(s,{className:`text-[14px] leading-6 text-[var(--color-text-secondary)]`,children:xe(`components.pages.collectionCreate.form.create`)})]}),qe&&h(`button`,{type:`button`,className:De,onClick:$e,children:[!j&&m(Ee,{}),m(s,{className:`text-[14px] leading-6 text-[var(--color-text-secondary)]`,children:x(j?`collectTab.cancel`:`collectTab.edit`)})]})]}):(D===`video`||D===`post`)&&ye&&h(te,{variant:`ghost`,size:`sm`,className:`h-6 gap-[2px] px-0 text-[14px] leading-6 text-[var(--color-text-secondary)] hover:bg-transparent hover:text-[var(--color-text-secondary)]`,onClick:Qe,children:[k?null:m(Ee,{}),m(s,{className:`text-[14px] leading-6 text-[var(--color-text-secondary)]`,children:x(k?`collectTab.cancel`:`collectTab.edit`)})]})]}),m(o,{onClick:e=>{de(e,`content_item`)},className:`pt-4`,children:D===`video`?X?m(l,{text:x(`collectTab.emptyContent`)}):m(fe,{list:W,loading:q.isFetching,hasMore:q.hasNextPage??!1,loadMore:ut,emptyText:x(`collectTab.emptyContent`),isEditMode:k,selectedIds:F,onToggleSelection:et}):D===`post`?X?m(l,{text:x(`collectTab.emptyContent`)}):m(ue,{list:G,loading:q.isFetching,hasMore:q.hasNextPage??!1,loadMore:ut,emptyText:x(`collectTab.emptyContent`),isEditMode:k,selectedIds:F,onToggleSelection:et}):X?m(l,{text:x(`collectTab.emptyContent`)}):m(le,{list:Y,loading:J.isFetching,hasMore:J.hasNextPage??!1,loadMore:ut,emptyText:x(`collectTab.emptyContent`),isEditMode:j,selectedIds:L,onToggleSelection:nt})}),k&&D!==`collection`&&h(o,{className:`fixed bottom-0 left-0 right-0 z-[60] h-[98px] bg-[var(--color-overlay-panel-fade-start90)] backdrop-blur-[50px]`,children:[h(o,{className:`flex items-center gap-[2px] px-4 pt-2`,children:[m(`button`,{type:`button`,className:`flex h-12 w-[178px] items-center justify-center rounded-[100px] text-[16px] leading-6 text-[var(--color-text-primary)]`,onClick:tt,children:x(We?`collectTab.cancelSelectAll`:`collectTab.selectAll`)}),m(`button`,{type:`button`,className:`flex h-12 w-[178px] items-center justify-center rounded-[100px] bg-[var(--color-surface-white10)] text-[16px] leading-6 text-[var(--color-border-required)] disabled:opacity-40`,disabled:F.size===0||Q,onClick:it,children:x(Q?`collectTab.processing`:`collectTab.delete`)})]}),m(o,{className:`pointer-events-none absolute bottom-2 left-1/2 h-[5px] w-[134px] -translate-x-1/2 rounded-[100px] bg-[var(--color-neutral-black)]`})]}),j&&h(o,{className:`fixed bottom-0 left-0 right-0 z-[60] h-[98px] bg-[var(--color-overlay-panel-fade-start90)] backdrop-blur-[50px]`,children:[h(o,{className:`flex items-center gap-[2px] px-4 pt-2`,children:[m(`button`,{type:`button`,className:`flex h-12 w-[178px] items-center justify-center rounded-[100px] text-[16px] leading-6 text-[var(--color-text-primary)]`,onClick:rt,children:x(Ge?`collectTab.cancelSelectAll`:`collectTab.selectAll`)}),m(`button`,{type:`button`,className:`flex h-12 w-[178px] items-center justify-center rounded-[100px] bg-[var(--color-surface-white10)] text-[16px] leading-6 text-[var(--color-border-required)] disabled:opacity-40`,disabled:L.size===0||$,onClick:ct,children:x($?`collectTab.processing`:`collectTab.delete`)})]}),m(o,{className:`pointer-events-none absolute bottom-2 left-1/2 h-[5px] w-[134px] -translate-x-1/2 rounded-[100px] bg-[var(--color-neutral-black)]`})]}),m(ce,{open:Ae,onOpenChange:N,onCancel:at,onConfirm:st,title:``,description:x(`collectTab.deleteConfirmDescription`),confirmText:x(`collectTab.delete`),cancelText:x(`collectTab.cancel`),isConfirming:Q}),m(ce,{open:je,onOpenChange:P,onCancel:ot,onConfirm:lt,title:y(`detail.deleteCollection`),isConfirming:$}),m(se,{visible:Me,onClose:()=>Ne(!1),onCreated:()=>{H.refetch()}})]})}export{x as CollectTab};
2
+ "use client";import{cn as e}from"../../../../../../../utils/cn.mjs";import{useUserStore as t}from"../../../../../../../store/modules/user-store.mjs";import{gCommunityGetSubscribedCollections as n,gCommunityGetUserCollections as r,gInteractionListCollects as i,pCommunityBatchDeleteCollection as a,pInteractionBatchDeleteCollects as ee}from"../../../../../../../service/generated/client.mjs";import{Button as te}from"../../../../../../ui/button.mjs";import{Box as o}from"../../../../../../ui/box.mjs";import{Text as s}from"../../../../../../ui/text.mjs";import{Tabs as ne,TabsList as re,TabsTrigger as ie}from"../../../../../../ui/tabs.mjs";import{useMutation as ae,usePaginated as c,useUpdateRequest as oe}from"../../../../../../../hooks/query/use-query.mjs";import{CreateCollectionSheet as se}from"../../../../../../common/collection-popup/create-collection-sheet.mjs";import{DeleteConfirmDialog as ce}from"../../../../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{CollectionList as le}from"../../../../../../common/list/collection-list/collection-list.mjs";import{PostList as ue}from"../../../../../../common/list/post-list/post-list.mjs";import{trackProfilePageClick as de}from"../../../tracking.mjs";import{ProfileMainEmptyState as l}from"../../empty-state.mjs";import{CollectVideoWaterfall as fe}from"./video-waterfall.mjs";import{toast as u}from"sonner";import{useEffect as d,useMemo as f,useState as p}from"react";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{useTranslations as g}from"next-intl";import _ from"dayjs";import{parseAsString as pe,useQueryState as me}from"nuqs";const he={video:1,post:2};function ge(e,t){if(!e)return e;let n=0,r=e.pages.map(e=>({page:e,filteredList:(e.data?.list??b).filter(e=>{let r=e?.id??``,i=t.has(r);return i&&(n+=1),!i})}));return{...e,pages:r.map(({page:e,filteredList:t})=>{if(!e.data)return e;let r=typeof e.data.total==`number`?Math.max(0,e.data.total-n):e.data.total;return{...e,data:{...e.data,list:t,total:r}}})}}function v(e){if(e.cover_image)return e.cover_image;let t=``;return e.medias?.find(e=>e?(!e.is_video&&!t&&e.media_url&&(t=e.media_url),!!e.cover_image):!1)?.cover_image||t}function _e(e,t){let n=t[e.content_id||``]?.create_time,r=v(e);return{id:e.content_id||``,title:e.content||``,coverImage:r,publishTime:_(n).toDate().getTime()}}function ve(e){return String(e.description||e.detail?.description||``).trim()||``}function ye(e){let t=String(e.img_type||``).trim().toLowerCase();return t===`short`?e.img_y||e.img_x||``:t===`long`?e.img_x||e.img_y||``:e.img_y||e.img_x||``}function be(e,t){let n=t[e.id||``]?.create_time;return{is_more_link:e.is_more_link,id:e.id||``,title:e.name||``,coverImage:ye(e),duration:Number(e.duration??e.detail?.duration??0),authorName:e.up_user||e.source_username||``,viewCount:e.play_count??0,publishTime:_(n).toDate().getTime(),imgType:e.img_type||e.media?.img_type||``,score:e.score??e.detail?.score,description:ve(e)}}function xe(e){let t=v(e);return{contentType:e.source_type,id:e.content_id,title:e.title||e.content,coverImage:t,isVideo:!1,isMovie:!1}}function y(e){return Array.from({length:3},(t,n)=>({id:`${e}-placeholder-${n}`,isPlaceholder:!0}))}function Se(e){let t=e.contents??[],n=(Array.isArray(t)?t:[]).slice(0,3).map(xe),r=e.content_count??n.length;return{id:e.collection_id||``,title:e.title||``,contentCount:r,isDefaultCollection:!!e.is_default,contents:r===0?y(e.collection_id||`collection`):n}}const b=[],Ce=[`video`,`post`,`collection`],we=[`created`,`subscribed`];function Te({className:t}){return m(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,className:e(`text-[var(--color-text-secondary)] opacity-60`,t),children:m(`path`,{d:`M7.33398 7.3335V4.66683H8.66732V7.3335H11.334V8.66683H8.66732V11.3335H7.33398V8.66683H4.66732V7.3335H7.33398ZM8.00065 14.6668C4.31875 14.6668 1.33398 11.682 1.33398 8.00016C1.33398 4.31826 4.31875 1.3335 8.00065 1.3335C11.6825 1.3335 14.6673 4.31826 14.6673 8.00016C14.6673 11.682 11.6825 14.6668 8.00065 14.6668ZM8.00065 13.3335C10.9462 13.3335 13.334 10.9457 13.334 8.00016C13.334 5.05464 10.9462 2.66683 8.00065 2.66683C5.05513 2.66683 2.66732 5.05464 2.66732 8.00016C2.66732 10.9457 5.05513 13.3335 8.00065 13.3335Z`,fill:`currentColor`})})}function Ee({className:t}){return m(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,className:e(`text-[var(--color-text-secondary)] opacity-60`,t),children:m(`g`,{children:m(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M10.7666 2.12385C10.9828 1.94731 11.3023 1.95935 11.5039 2.16096L13.8389 4.49592C13.942 4.5991 13.9999 4.73966 14 4.88557C14 5.03152 13.942 5.17199 13.8389 5.27522L11.5078 7.6053C11.5063 7.60688 11.5055 7.60959 11.5039 7.61116C11.5023 7.61279 11.4997 7.61345 11.498 7.61506L5.27539 13.8387C5.17216 13.9418 5.03168 13.9998 4.88574 13.9998H2.55078C2.24679 13.9998 2.00001 13.753 2 13.449V11.1141C2 10.9681 2.05794 10.8277 2.16113 10.7244L10.7246 2.16096L10.7666 2.12385ZM3.10059 11.3416V12.8992H4.6582L10.335 7.22151L8.77734 5.66389L3.10059 11.3416ZM9.55664 4.88459L11.1143 6.44221L12.6709 4.88557L11.1133 3.32893L9.55664 4.88459Z`,fill:`currentColor`})})})}const De=`flex items-center gap-[2px] text-[14px] leading-6 text-[var(--color-text-secondary)]`;function Oe(){return e(`!flex !items-center !flex-none !h-6 !w-auto !rounded-[4px] !bg-[var(--color-surface-chip-gray20)] !text-[12px] !font-normal !leading-[14px] !text-text1 hover:!text-text1`,`data-[active]:!text-text1 data-[state=active]:!text-text1`,`data-[active]:!bg-[image:var(--gradient-action-button)]`,`data-[state=active]:!bg-[image:var(--gradient-action-button)]`)}function x({mode:e=`renderer`,userId:_,showCreateAction:v=!1,queryKeyPrefix:ve,isMine:ye=!1}){let xe=g(),y=g(`components.pages.collectionDetail`),x=g(`components.pages.profile.components.tabs`),S=e===`renderer`,C=ve??[],[w,T]=me(`collectTab`,pe.withDefault(`video`)),[E,ke]=me(`collectCollectionTab`,pe.withDefault(`created`)),D=f(()=>Ce.includes(w)?w:`video`,[w]),O=f(()=>we.includes(E)?E:`created`,[E]),[k,A]=p(!1),[j,M]=p(!1),[Ae,N]=p(!1),[je,P]=p(!1),[Me,Ne]=p(!1),[F,I]=p(()=>new Set),[L,R]=p(()=>new Set),{userId:Pe,userInfo:Fe}=t(),z=_||Pe||Fe?.userId||``,Ie=oe();async function Le(e,t){if(!z)return{data:{list:[],total:0}};let n=await i({user_id:z,folder_id:``,content_type:t,page:e,page_size:10}),r=n.data.collect_infos?.reduce((e,t)=>(t.content_id&&(e[t.content_id]=t),e),{})||{},a=n.data?.collect_items?.map(e=>t===he.video?be(e.video_info,r):_e(e.post_info,r))??[];return{data:{list:a,total:n.data?.total??a.length}}}let B=c({key:[...C,`user-collect-video`,z],initialPageParam:1,async queryFn(e){return Le(e,he.video)},options:{staleTime:0,enabled:S},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),V=c({key:[...C,`user-collect-post`,z],initialPageParam:1,options:{staleTime:0,enabled:S},async queryFn(e){return{data:{list:[],total:0,has_more:!1}}},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}});async function Re(e){if(!z)return{data:{list:[],total:0}};let t=await r({page:e,user_id:_,page_size:10}),n=t.data?.data?.collections??[];return{data:{list:n.map(Se),total:t.data?.data?.total??n.length}}}async function ze(e){if(!z)return{data:{list:[],total:0}};let t=(await n({page:e,user_id:_,page_size:10})).data?.data,r=t?.collections??[];return{data:{list:r.map(Se),total:t?.total??r.length}}}let H=c({key:[...C,`user-collection-created`,z],initialPageParam:1,options:{staleTime:0,enabled:S},async queryFn(e){return Re(e)},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),U=c({key:[...C,`user-collection-subscribed`,z],initialPageParam:1,options:{staleTime:0,enabled:S},async queryFn(e){return ze(e)},getNextPageParam(e,t){if((e?.data?.list||[]).length!==0)return t.length+1}}),W=f(()=>B.data?.pages.flatMap(e=>e.data?.list??b)??b,[B.data]),G=f(()=>V.data?.pages.flatMap(e=>e.data?.list??b)??b,[V.data]),Be=f(()=>H.data?.pages.flatMap(e=>e.data?.list??b)??b,[H.data]),Ve=f(()=>U.data?.pages.flatMap(e=>e.data?.list??b)??b,[U.data]),He=D===`video`?W:D===`post`?G:b,K=new Set(He.map(e=>e.id)),Ue=K.size,We=Ue>0&&F.size===Ue,q=D===`video`?B:V,J=O===`created`?H:U,Y=O===`created`?Be:Ve,X=D===`video`?W.length===0&&!q.isFetching:D===`post`?G.length===0&&!q.isFetching:Y.length===0&&!J.isFetching,Z=f(()=>new Set(Y.filter(e=>!e.isDefaultCollection).map(e=>e.id)),[Y]),Ge=Z.size>0&&[...Z].every(e=>L.has(e)),Ke=D===`video`,qe=v&&O===`created`,Je=[...C,`user-collect-video`,z],Ye=[...C,`user-collect-post`,z],{mutateAsync:Xe,isPending:Q}=ae(async e=>await ee({app_id:0,user_id:z,folder_id:``,content_type:Ke?1:2,content_ids:e})),{mutateAsync:Ze,isPending:$}=ae(async e=>await a({collection_ids:e})),Qe=()=>{A(!k),I(new Set)};function $e(){qe&&(M(e=>!e),R(new Set))}d(()=>{if(I(new Set),D===`collection`){A(!1),N(!1);return}A(!1),R(new Set),M(!1),P(!1)},[D]),d(()=>{R(new Set),M(!1),P(!1)},[O]),d(()=>{w!==D&&T(D)},[D,w,T]),d(()=>{E!==O&&ke(O)},[O,E,ke]);let et=e=>{I(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},tt=()=>{F.size===K.size&&K.size>0?I(new Set):I(new Set(K))};function nt(e){if(Y.find(t=>t.id===e)?.isDefaultCollection){u.error(y(`detail.defaultCollectionDeleteNotSupported`));return}R(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function rt(){if(Ge){R(new Set);return}R(new Set(Z))}function it(){F.size===0||Q||N(!0)}function at(){Q||N(!1)}function ot(){$||P(!1)}async function st(){if(!(F.size===0||Q)){if(!z){u.error(x(`collectTab.pleaseLogin`));return}try{let e=Array.from(F),t=await Xe(e);if(t.code===0){u.success(x(`collectTab.uncollectedSuccess`));let t=new Set(e);Ie(Ke?Je:Ye,e=>ge(e,t)),N(!1),I(new Set),A(!1)}else u.error(t.message||x(`collectTab.uncollectFailed`))}catch(e){console.error(`取消收藏失败`,e),u.error(x(`collectTab.operationFailed`))}}}function ct(){L.size===0||$||P(!0)}async function lt(){if(!(L.size===0||$)){if(!z){u.error(x(`collectTab.pleaseLogin`));return}try{let e=await Ze(Array.from(L));if(e.code===0){u.success(y(`detail.deleteSuccess`)),await J.refetch(),P(!1),R(new Set),M(!1);return}u.error(e.message||y(`detail.deleteFailed`))}catch(e){console.error(`删除收藏夹失败`,e),u.error(y(`detail.deleteFailed`))}}}let ut=async()=>{if(S){if(D===`collection`){await J.fetchNextPage();return}await q.fetchNextPage()}};return h(o,{children:[h(o,{className:`flex items-center justify-between`,children:[m(ne,{value:D,onValueChange:e=>{T(e)},children:h(re,{variant:`tag`,className:`!h-6 !gap-4 !p-0`,children:[m(ie,{value:`video`,className:Oe(),children:x(`collectTab.video`)}),m(ie,{value:`collection`,className:Oe(),children:x(`collectTab.collections`)})]})}),D===`collection`?v&&h(o,{className:`flex items-center gap-3`,children:[h(`button`,{type:`button`,className:De,onClick:()=>Ne(!0),children:[m(Te,{}),m(s,{className:`text-[14px] leading-6 text-[var(--color-text-secondary)]`,children:xe(`components.pages.collectionCreate.form.create`)})]}),qe&&h(`button`,{type:`button`,className:De,onClick:$e,children:[!j&&m(Ee,{}),m(s,{className:`text-[14px] leading-6 text-[var(--color-text-secondary)]`,children:x(j?`collectTab.cancel`:`collectTab.edit`)})]})]}):(D===`video`||D===`post`)&&ye&&h(te,{variant:`ghost`,size:`sm`,className:`h-6 gap-[2px] px-0 text-[14px] leading-6 text-[var(--color-text-secondary)] hover:bg-transparent hover:text-[var(--color-text-secondary)]`,onClick:Qe,children:[k?null:m(Ee,{}),m(s,{className:`text-[14px] leading-6 text-[var(--color-text-secondary)]`,children:x(k?`collectTab.cancel`:`collectTab.edit`)})]})]}),m(o,{onClick:e=>{de(e,`content_item`)},className:`pt-4`,children:D===`video`?X?m(l,{text:x(`collectTab.emptyContent`)}):m(fe,{list:W,loading:q.isFetching,hasMore:q.hasNextPage??!1,loadMore:ut,emptyText:x(`collectTab.emptyContent`),isEditMode:k,selectedIds:F,onToggleSelection:et,showDateGroupTitle:!0}):D===`post`?X?m(l,{text:x(`collectTab.emptyContent`)}):m(ue,{list:G,loading:q.isFetching,hasMore:q.hasNextPage??!1,loadMore:ut,emptyText:x(`collectTab.emptyContent`),isEditMode:k,selectedIds:F,onToggleSelection:et}):X?m(l,{text:x(`collectTab.emptyContent`)}):m(le,{list:Y,loading:J.isFetching,hasMore:J.hasNextPage??!1,loadMore:ut,emptyText:x(`collectTab.emptyContent`),isEditMode:j,selectedIds:L,onToggleSelection:nt})}),k&&D!==`collection`&&h(o,{className:`fixed bottom-0 left-0 right-0 z-[60] h-[98px] bg-[var(--color-overlay-panel-fade-start90)] backdrop-blur-[50px]`,children:[h(o,{className:`flex items-center gap-[2px] px-4 pt-2`,children:[m(`button`,{type:`button`,className:`flex h-12 w-[178px] items-center justify-center rounded-[100px] text-[16px] leading-6 text-[var(--color-text-primary)]`,onClick:tt,children:x(We?`collectTab.cancelSelectAll`:`collectTab.selectAll`)}),m(`button`,{type:`button`,className:`flex h-12 w-[178px] items-center justify-center rounded-[100px] bg-[var(--color-surface-white10)] text-[16px] leading-6 text-[var(--color-border-required)] disabled:opacity-40`,disabled:F.size===0||Q,onClick:it,children:x(Q?`collectTab.processing`:`collectTab.delete`)})]}),m(o,{className:`pointer-events-none absolute bottom-2 left-1/2 h-[5px] w-[134px] -translate-x-1/2 rounded-[100px] bg-[var(--color-neutral-black)]`})]}),j&&h(o,{className:`fixed bottom-0 left-0 right-0 z-[60] h-[98px] bg-[var(--color-overlay-panel-fade-start90)] backdrop-blur-[50px]`,children:[h(o,{className:`flex items-center gap-[2px] px-4 pt-2`,children:[m(`button`,{type:`button`,className:`flex h-12 w-[178px] items-center justify-center rounded-[100px] text-[16px] leading-6 text-[var(--color-text-primary)]`,onClick:rt,children:x(Ge?`collectTab.cancelSelectAll`:`collectTab.selectAll`)}),m(`button`,{type:`button`,className:`flex h-12 w-[178px] items-center justify-center rounded-[100px] bg-[var(--color-surface-white10)] text-[16px] leading-6 text-[var(--color-border-required)] disabled:opacity-40`,disabled:L.size===0||$,onClick:ct,children:x($?`collectTab.processing`:`collectTab.delete`)})]}),m(o,{className:`pointer-events-none absolute bottom-2 left-1/2 h-[5px] w-[134px] -translate-x-1/2 rounded-[100px] bg-[var(--color-neutral-black)]`})]}),m(ce,{open:Ae,onOpenChange:N,onCancel:at,onConfirm:st,title:``,description:x(`collectTab.deleteConfirmDescription`),confirmText:x(`collectTab.delete`),cancelText:x(`collectTab.cancel`),isConfirming:Q}),m(ce,{open:je,onOpenChange:P,onCancel:ot,onConfirm:lt,title:y(`detail.deleteCollection`),isConfirming:$}),m(se,{visible:Me,onClose:()=>Ne(!1),onCreated:()=>{H.refetch()}})]})}export{x as CollectTab};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{formatCompactCount as e}from"../../../../../../../utils/common.mjs";import{Image as t}from"../../../../../../ui/image.mjs";import{Box as n}from"../../../../../../ui/box.mjs";import{EmptyState as r}from"../../../../../../ui/empty.mjs";import{InfiniteScroll as i}from"../../../../../../ui/infinite-scroll.mjs";import{Text as a}from"../../../../../../ui/text.mjs";import{Skeleton as o}from"../../../../../../ui/skeleton.mjs";import s from"../../../../../../ui/link.mjs";import{CollectionSelectIcon as c,CollectionSelectedIcon as l}from"../../../../../../common/list/collection-list/collection-select-icon.mjs";import{VideoIcon as u}from"../../../../../../common/icons/video.mjs";import{Fragment as d,jsx as f,jsxs as p}from"react/jsx-runtime";import{useTranslations as m}from"next-intl";const h=`h-[128px] w-[173px]`,g={backgroundImage:`var(--gradient-card-mask-light)`};function _(t){return e(Number.isFinite(t)?Math.max(0,t):0)}function v(e){let t=Number.isFinite(e)?Math.max(0,Math.floor(e)):0;if(t<=0)return``;let n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`}function y(){return f(n,{className:`flex w-full flex-col gap-4`,children:Array.from({length:4},(e,t)=>p(n,{className:`flex min-w-0 gap-3`,children:[f(o,{className:`shrink-0 rounded-[8px] ${h}`}),p(n,{className:`flex min-w-0 flex-1 flex-col gap-4 pt-[20px]`,children:[p(n,{className:`flex flex-col gap-2`,children:[f(o,{className:`h-4 w-[88%] rounded`}),f(o,{className:`h-4 w-[62%] rounded`})]}),p(n,{className:`flex flex-col gap-2`,children:[f(o,{className:`h-3 w-full rounded`}),f(o,{className:`h-3 w-[72%] rounded`})]})]})]},`collect-video-skeleton-${t}`))})}function b({item:e,isEditMode:r,isSelected:i,onToggleSelection:o}){let y=m(`components.ui.list.videoList`),b=e.id||``,x=_(e.viewCount),S=v(e.duration),C=e.is_more_link!==void 0&&e.is_more_link!==null,w=e.is_more_link?y(`videoListItem.series`):y(`videoListItem.movie`),T=e.description?.trim()?`简介:${e.description.trim()}`:``;function E(){!r||!b||o?.(b)}let D=p(n,{className:`flex min-w-0 gap-3`,children:[p(n,{className:`relative shrink-0 overflow-hidden rounded-[8px] bg-[#18111f] ${h}`,children:[e.coverImage&&f(t,{src:e.coverImage,alt:e.title||`cover`,fill:!0,objectFit:`cover`,className:`object-cover`}),f(n,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:g,"aria-hidden":!0}),!r&&p(d,{children:[C&&f(n,{className:`absolute left-2 top-3 z-10 flex max-h-[18px] items-center rounded bg-white/20 px-1 py-0.5`,children:f(a,{className:`text-center text-[12px] leading-[14px] text-white`,children:w})}),p(n,{className:`absolute bottom-3 left-2 right-2 z-10 flex items-center justify-between`,children:[p(n,{className:`flex min-w-0 items-center gap-1`,children:[f(u,{className:`size-4 shrink-0 text-white opacity-80`,"aria-hidden":!0}),x?f(a,{className:`truncate text-[14px] leading-5 text-white`,children:x}):null]}),S?f(a,{className:`shrink-0 text-[14px] leading-5 text-white`,children:S}):null]})]}),r&&f(n,{className:`pointer-events-none absolute left-2 top-2 z-20`,children:f(i?l:c,{})})]}),p(n,{className:`flex min-w-0 flex-1 flex-col gap-4 pt-[20px]`,children:[f(a,{as:`h3`,className:`line-clamp-2 text-[14px] font-normal leading-5 text-[rgba(255,255,255,0.8)]`,children:e.title}),T?f(a,{className:`line-clamp-2 text-[12px] leading-4 text-[rgba(255,255,255,0.5)]`,children:T}):null]})]});return r?f(`button`,{type:`button`,className:`w-full cursor-pointer border-0 bg-transparent p-0 text-left`,onClick:E,"aria-pressed":i,disabled:!b,children:D}):f(s,{href:e.id?`/video/${e.id}/${e.title}`:`#`,className:`block w-full`,children:D})}function x({list:e,loading:t=!1,hasMore:a=!1,loadMore:o,emptyText:s=``,isEditMode:c=!1,selectedIds:l,onToggleSelection:u}){return t&&e.length===0?f(y,{}):e.length===0?f(r,{type:`no-content`,text:s,className:`!pt-[72px]`}):f(i,{loadMore:async()=>{await o?.()},hasMore:!!o&&a,noMoreText:`没有更多了`,className:`w-full`,children:f(n,{className:`flex w-full flex-col gap-4`,children:e.map((e,t)=>{let n=e.id?`collect-video-row-${e.id}-${t}`:`collect-video-row-${t}`;return f(b,{item:e,isEditMode:c,isSelected:!!(e.id&&l?.has(e.id)),onToggleSelection:u},n)})})})}export{x as CollectVideoWaterfall};
2
+ "use client";import{formatCompactCount as e}from"../../../../../../../utils/common.mjs";import{Image as t}from"../../../../../../ui/image.mjs";import{Box as n}from"../../../../../../ui/box.mjs";import{EmptyState as r}from"../../../../../../ui/empty.mjs";import{InfiniteScroll as i}from"../../../../../../ui/infinite-scroll.mjs";import{Text as a}from"../../../../../../ui/text.mjs";import{Skeleton as o}from"../../../../../../ui/skeleton.mjs";import{normalizeTimeToMilliseconds as s}from"../../../../../../ui/time.mjs";import c from"../../../../../../ui/link.mjs";import{CollectionSelectIcon as l,CollectionSelectedIcon as u}from"../../../../../../common/list/collection-list/collection-select-icon.mjs";import{VideoIcon as d}from"../../../../../../common/icons/video.mjs";import{useMemo as f}from"react";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";import{useTranslations as g}from"next-intl";const _=`h-[110px] w-[160px]`,v={backgroundImage:`var(--gradient-card-mask-light)`};function y(t){return e(Number.isFinite(t)?Math.max(0,t):0)}function b(e){let t=Number.isFinite(e)?Math.max(0,Math.floor(e)):0;if(t<=0)return``;let n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`}function x(e){let t=s(e);if(!t)return!1;let n=new Date(t),r=new Date;return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function S(e){let t=s(e);if(!t)return!1;let n=new Date(t),r=new Date;return r.setDate(r.getDate()-1),n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function C(){return m(n,{className:`flex w-full flex-col gap-4`,children:Array.from({length:4},(e,t)=>h(n,{className:`flex min-w-0 gap-3`,children:[m(o,{className:`shrink-0 rounded-[8px] ${_}`}),h(n,{className:`flex min-w-0 flex-1 flex-col gap-4 pt-[11px]`,children:[h(n,{className:`flex flex-col gap-2`,children:[m(o,{className:`h-4 w-[88%] rounded`}),m(o,{className:`h-4 w-[62%] rounded`})]}),h(n,{className:`flex flex-col gap-2`,children:[m(o,{className:`h-3 w-full rounded`}),m(o,{className:`h-3 w-[72%] rounded`})]})]})]},`collect-video-skeleton-${t}`))})}function w({item:e,isEditMode:r,isSelected:i,onToggleSelection:o}){let s=g(`components.ui.list.videoList`),f=e.id||``,x=y(e.viewCount),S=b(e.duration),C=e.is_more_link!==void 0&&e.is_more_link!==null,w=e.is_more_link?s(`videoListItem.series`):s(`videoListItem.movie`),T=e.description?.trim()?`简介:${e.description.trim()}`:``;function E(){!r||!f||o?.(f)}let D=h(n,{className:`flex min-w-0 gap-3`,children:[h(n,{className:`relative shrink-0 overflow-hidden rounded-[8px] bg-[#18111f] ${_}`,children:[e.coverImage&&m(t,{src:e.coverImage,alt:e.title||`cover`,fill:!0,objectFit:`cover`,className:`object-cover`}),m(n,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:v,"aria-hidden":!0}),!r&&h(p,{children:[C&&m(n,{className:`absolute left-2 top-3 z-10 flex max-h-[18px] items-center rounded bg-white/20 px-1 py-0.5`,children:m(a,{className:`text-center text-[12px] leading-[14px] text-white`,children:w})}),h(n,{className:`absolute bottom-3 left-2 right-2 z-10 flex items-center justify-between`,children:[h(n,{className:`flex min-w-0 items-center gap-1`,children:[m(d,{className:`size-4 shrink-0 text-white opacity-80`,"aria-hidden":!0}),x?m(a,{className:`truncate text-[14px] leading-5 text-white`,children:x}):null]}),S?m(a,{className:`shrink-0 text-[14px] leading-5 text-white`,children:S}):null]})]}),r&&m(n,{className:`pointer-events-none absolute left-2 top-2 z-20`,children:m(i?u:l,{})})]}),h(n,{className:`flex min-w-0 flex-1 flex-col gap-4 pt-[20px]`,children:[m(a,{as:`h3`,className:`line-clamp-2 text-[14px] font-normal leading-5 text-[rgba(255,255,255,0.8)]`,children:e.title}),T?m(a,{className:`line-clamp-2 text-[12px] leading-4 text-[rgba(255,255,255,0.5)]`,children:T}):null]})]});return r?m(`button`,{type:`button`,className:`w-full cursor-pointer border-0 bg-transparent p-0 text-left`,onClick:E,"aria-pressed":i,disabled:!f,children:D}):m(c,{href:e.id?`/video/${e.id}/${e.title}`:`#`,className:`block w-full`,children:D})}function T({list:e,loading:t=!1,hasMore:o=!1,loadMore:c,emptyText:l=``,isEditMode:u=!1,selectedIds:d,onToggleSelection:p,showDateGroupTitle:_=!1}){let v=g(`components.ui.list.videoList`),y=t&&e.length===0,b=f(()=>{let t=[...e].sort((e,t)=>{let n=s(e.publishTime)??0;return(s(t.publishTime)??0)-n});if(!_)return[{key:`all`,label:``,list:t}];let n=[],r=[],i=[];for(let e of t){if(x(e.publishTime)){n.push(e);continue}if(S(e.publishTime)){r.push(e);continue}i.push(e)}return[{key:`today`,label:v(`today`),list:n},{key:`yesterday`,label:v(`yesterday`),list:r},{key:`earlier`,label:v(`earlier`),list:i}].filter(e=>e.list.length>0)},[e,_,v]);return y?m(C,{}):e.length===0?m(r,{type:`no-content`,text:l,className:`!pt-[72px]`}):m(i,{loadMore:async()=>{await c?.()},hasMore:!!c&&o,className:`w-full`,children:m(n,{className:`flex w-full flex-col gap-4`,children:b.map(e=>h(n,{className:`flex w-full flex-col gap-2`,children:[e.label?m(a,{className:`text-[12px] leading-[22px] text-[rgba(255,255,255,0.8)]`,children:e.label}):null,m(n,{className:`flex w-full flex-col gap-4`,children:e.list.map((t,n)=>{let r=t.id?`collect-video-row-${t.id}-${n}`:`collect-video-row-${e.key}-${n}`;return m(w,{item:t,isEditMode:u,isSelected:!!(t.id&&d?.has(t.id)),onToggleSelection:p},r)})})]},e.key))})})}export{T as CollectVideoWaterfall};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../../../../../store/modules/user-store.mjs";import{pInteractionBatchClearBrowse as t}from"../../../../../../../service/generated/client.mjs";import{Button as n}from"../../../../../../ui/button.mjs";import{Box as r}from"../../../../../../ui/box.mjs";import{Checkbox as i}from"../../../../../../ui/checkbox.mjs";import{Text as a}from"../../../../../../ui/text.mjs";import{useMutation as o,usePaginated as s,useUpdateRequest as c}from"../../../../../../../hooks/query/use-query.mjs";import{PostList as l}from"../../../../../../common/list/post-list/post-list.mjs";import{trackProfilePageClick as u}from"../../../tracking.mjs";import{ProfileMainEmptyState as d}from"../../empty-state.mjs";import{CollectVideoWaterfall as f}from"../collect-tab/video-waterfall.mjs";import{getHistoryData as ee,likeContentType as p}from"../../utils.mjs";import{toast as m}from"sonner";import{useEffect as h,useMemo as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as b}from"next-intl";import{parseAsString as x,useQueryState as S}from"nuqs";function C(e){let{detail:t}=e,{info:n,publish_time:r}=t;return{id:e.id,title:n.title||n.text||``,coverImage:n.cover_image_thumbnail||n.cover_image||n.cover_horizontal_image_thumbnail||void 0,publishTime:r}}function te(e){let{detail:t,content_play_progress:n}=e,{user_info:r,info:i,statics_cnt:a,publish_time:o,parent_content_info:s}=t,c=String(i?.img_type||``).trim().toLowerCase(),l=c===`long`||!c&&!!i?.cover_horizontal_image_thumbnail,u=l?i?.cover_horizontal_image_thumbnail||i?.img_x||i?.cover_image_thumbnail||i?.img_y||i?.cover_image||``:i?.cover_image_thumbnail||i?.img_y||i?.cover_horizontal_image_thumbnail||i?.img_x||i?.cover_image||``,d=String(i?.description||``).trim();return{is_more_link:i.is_more_link,id:e.id,title:i.title||i.text||i.name||``,coverImage:u,duration:Number(i.video_duration??0),progress:n?.percent??0,seriesNum:n?.series_num,authorName:r.name,viewCount:i?.play_count??a?.browse_cnt??0,publishTime:o,type:s?.type,imgType:c||(l?`long`:`short`),score:i?.score,description:d}}function w(e,t,n){if(!e)return e;let r=0,i=e.pages.map(e=>({page:e,filteredList:(e.data?.list??[]).filter(e=>{let i=n(e)??``,a=t.has(i);return a&&(r+=1),!a})}));return{...e,pages:i.map(({page:e,filteredList:t})=>{if(!e.data)return e;let n=typeof e.data.total==`number`?Math.max(0,e.data.total-r):e.data.total;return{...e,data:{...e.data,list:t,total:n}}})}}const T=[`video`,`post`];function E({mode:E=`renderer`,targetUserId:D,queryKeyPrefix:O}){let k=b(`components.pages.profile.components.tabs`),A=E===`renderer`,j=O??[],[M,N]=S(`historyTab`,x.withDefault(`video`)),P=g(()=>T.includes(M)?M:`video`,[M]),[F,I]=_(!1),[L,R]=_(()=>new Set),z=e(e=>e.userId),B=c(),V=[...j,`user-history-video`],H=[...j,`user-history-post`],U=s({key:V,initialPageParam:1,async queryFn(e){return ee({targetUserId:D,page:e,contentType:p.video})},options:{staleTime:0,enabled:A},getNextPageParam(e,t){if(!((e?.data?.list??[]).length===0||e?.data?.total===0))return t.length+1}}),W=s({key:H,initialPageParam:1,async queryFn(e){return{data:{list:[],total:0,has_more:!1}}},options:{staleTime:0,enabled:A},getNextPageParam(e,t){if(!((e?.data?.list??[]).length===0||e?.data?.total===0))return t.length+1}}),G=P===`video`?U:W,K=U.data?.pages.flatMap(e=>(e.data?.list??[]).map(te))??[],q=W.data?.pages.flatMap(e=>(e.data?.list??[]).map(C))??[],J=P===`video`?K:q,Y=P===`video`?K.length===0&&!G.isFetching:q.length===0&&!G.isFetching,X=new Set(J.map(e=>e.id)),Z=P===`video`,{mutateAsync:ne,isPending:Q}=o(async e=>await t({app_id:0,user_id:z,content_type:e.contentType,content_ids:e.contentIds}));h(()=>{R(new Set)},[P]),h(()=>{M!==P&&N(P)},[P,M,N]);let re=e=>{R(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},ie=()=>{L.size===X.size&&X.size>0?R(new Set):R(new Set(X))},ae=async()=>{if(!(L.size===0||Q)){if(!z){m.error(k(`historyTab.pleaseLogin`));return}try{let e=Array.from(L),t=await ne({contentIds:e,contentType:Z?1:2});if(t.code===0){m.success(k(`historyTab.historyDeletedSuccess`));let t=new Set(e);B(Z?V:H,e=>w(e,t,e=>e.id)),R(new Set),I(!1)}else m.error(t.message||k(`historyTab.deleteFailed`))}catch(e){console.error(`删除浏览记录失败`,e),m.error(k(`historyTab.operationFailed`))}}},$=async()=>{A&&await G.fetchNextPage()};return y(r,{children:[v(r,{className:``,onClick:e=>{u(e,`content_item`)},children:P===`video`?Y?v(d,{text:k(`historyTab.emptyContent`)}):v(f,{list:K,loading:G.isFetching,hasMore:G.hasNextPage??!1,loadMore:$,emptyText:k(`historyTab.emptyContent`)}):Y?v(d,{text:k(`historyTab.emptyContent`)}):v(l,{list:q,loading:G.isFetching,hasMore:G.hasNextPage??!1,loadMore:$,emptyText:k(`historyTab.emptyContent`),isEditMode:F,selectedIds:L,onToggleSelection:re})}),F&&y(r,{className:`fixed left-0 z-10 flex w-full items-center justify-between bg-bg1 px-3 py-2 bottom-[var(--tab-bar-occupied-height)]`,children:[y(r,{className:`flex items-center gap-2`,children:[v(i,{checked:L.size===X.size&&X.size>0,onCheckedChange:ie}),v(a,{className:`text-sm text-text1`,children:k(`historyTab.selectAll`)})]}),v(n,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:L.size>0?`default`:`outline`,disabled:L.size===0||Q,onClick:ae,children:k(Q?`historyTab.processing`:`historyTab.delete`)})]})]})}export{E as HistoryTab};
2
+ "use client";import{useUserStore as e}from"../../../../../../../store/modules/user-store.mjs";import{pInteractionBatchClearBrowse as t}from"../../../../../../../service/generated/client.mjs";import{Button as n}from"../../../../../../ui/button.mjs";import{Box as r}from"../../../../../../ui/box.mjs";import{Checkbox as i}from"../../../../../../ui/checkbox.mjs";import{Text as a}from"../../../../../../ui/text.mjs";import{useMutation as o,usePaginated as s,useUpdateRequest as c}from"../../../../../../../hooks/query/use-query.mjs";import{PostList as l}from"../../../../../../common/list/post-list/post-list.mjs";import{trackProfilePageClick as u}from"../../../tracking.mjs";import{ProfileMainEmptyState as d}from"../../empty-state.mjs";import{CollectVideoWaterfall as f}from"../collect-tab/video-waterfall.mjs";import{getHistoryData as ee,likeContentType as p}from"../../utils.mjs";import{toast as m}from"sonner";import{useEffect as h,useMemo as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as b}from"next-intl";import{parseAsString as x,useQueryState as S}from"nuqs";function C(e){let{detail:t}=e,{info:n,publish_time:r}=t;return{id:e.id,title:n.title||n.text||``,coverImage:n.cover_image_thumbnail||n.cover_image||n.cover_horizontal_image_thumbnail||void 0,publishTime:r}}function te(e){let{detail:t,content_play_progress:n}=e,{user_info:r,info:i,statics_cnt:a,publish_time:o,parent_content_info:s}=t,c=String(i?.img_type||``).trim().toLowerCase(),l=c===`long`||!c&&!!i?.cover_horizontal_image_thumbnail,u=l?i?.cover_horizontal_image_thumbnail||i?.img_x||i?.cover_image_thumbnail||i?.img_y||i?.cover_image||``:i?.cover_image_thumbnail||i?.img_y||i?.cover_horizontal_image_thumbnail||i?.img_x||i?.cover_image||``,d=String(i?.description||``).trim();return{is_more_link:i.is_more_link,id:e.id,title:i.title||i.text||i.name||``,coverImage:u,duration:Number(i.video_duration??0),progress:n?.percent??0,seriesNum:n?.series_num,authorName:r.name,viewCount:i?.play_count??a?.browse_cnt??0,publishTime:o,type:s?.type,imgType:c||(l?`long`:`short`),score:i?.score,description:d}}function w(e,t,n){if(!e)return e;let r=0,i=e.pages.map(e=>({page:e,filteredList:(e.data?.list??[]).filter(e=>{let i=n(e)??``,a=t.has(i);return a&&(r+=1),!a})}));return{...e,pages:i.map(({page:e,filteredList:t})=>{if(!e.data)return e;let n=typeof e.data.total==`number`?Math.max(0,e.data.total-r):e.data.total;return{...e,data:{...e.data,list:t,total:n}}})}}const T=[`video`,`post`];function E({mode:E=`renderer`,targetUserId:D,queryKeyPrefix:O}){let k=b(`components.pages.profile.components.tabs`),A=E===`renderer`,j=O??[],[M,N]=S(`historyTab`,x.withDefault(`video`)),P=g(()=>T.includes(M)?M:`video`,[M]),[F,I]=_(!1),[L,R]=_(()=>new Set),z=e(e=>e.userId),B=c(),V=[...j,`user-history-video`],H=[...j,`user-history-post`],U=s({key:V,initialPageParam:1,async queryFn(e){return ee({targetUserId:D,page:e,contentType:p.video})},options:{staleTime:0,enabled:A},getNextPageParam(e,t){if(!((e?.data?.list??[]).length===0||e?.data?.total===0))return t.length+1}}),W=s({key:H,initialPageParam:1,async queryFn(e){return{data:{list:[],total:0,has_more:!1}}},options:{staleTime:0,enabled:A},getNextPageParam(e,t){if(!((e?.data?.list??[]).length===0||e?.data?.total===0))return t.length+1}}),G=P===`video`?U:W,K=U.data?.pages.flatMap(e=>(e.data?.list??[]).map(te))??[],q=W.data?.pages.flatMap(e=>(e.data?.list??[]).map(C))??[],J=P===`video`?K:q,Y=P===`video`?K.length===0&&!G.isFetching:q.length===0&&!G.isFetching,X=new Set(J.map(e=>e.id)),Z=P===`video`,{mutateAsync:ne,isPending:Q}=o(async e=>await t({app_id:0,user_id:z,content_type:e.contentType,content_ids:e.contentIds}));h(()=>{R(new Set)},[P]),h(()=>{M!==P&&N(P)},[P,M,N]);let re=e=>{R(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},ie=()=>{L.size===X.size&&X.size>0?R(new Set):R(new Set(X))},ae=async()=>{if(!(L.size===0||Q)){if(!z){m.error(k(`historyTab.pleaseLogin`));return}try{let e=Array.from(L),t=await ne({contentIds:e,contentType:Z?1:2});if(t.code===0){m.success(k(`historyTab.historyDeletedSuccess`));let t=new Set(e);B(Z?V:H,e=>w(e,t,e=>e.id)),R(new Set),I(!1)}else m.error(t.message||k(`historyTab.deleteFailed`))}catch(e){console.error(`删除浏览记录失败`,e),m.error(k(`historyTab.operationFailed`))}}},$=async()=>{A&&await G.fetchNextPage()};return y(r,{children:[v(r,{className:``,onClick:e=>{u(e,`content_item`)},children:P===`video`?Y?v(d,{text:k(`historyTab.emptyContent`)}):v(f,{list:K,loading:G.isFetching,hasMore:G.hasNextPage??!1,loadMore:$,emptyText:k(`historyTab.emptyContent`),showDateGroupTitle:!0}):Y?v(d,{text:k(`historyTab.emptyContent`)}):v(l,{list:q,loading:G.isFetching,hasMore:G.hasNextPage??!1,loadMore:$,emptyText:k(`historyTab.emptyContent`),isEditMode:F,selectedIds:L,onToggleSelection:re})}),F&&y(r,{className:`fixed left-0 z-10 flex w-full items-center justify-between bg-bg1 px-3 py-2 bottom-[var(--tab-bar-occupied-height)]`,children:[y(r,{className:`flex items-center gap-2`,children:[v(i,{checked:L.size===X.size&&X.size>0,onCheckedChange:ie}),v(a,{className:`text-sm text-text1`,children:k(`historyTab.selectAll`)})]}),v(n,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:L.size>0?`default`:`outline`,disabled:L.size===0||Q,onClick:ae,children:k(Q?`historyTab.processing`:`historyTab.delete`)})]})]})}export{E as HistoryTab};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../../../../../store/modules/user-store.mjs";import{pInteractionUnifiedBatchLikeDislike as t}from"../../../../../../../service/generated/client.mjs";import{Button as n}from"../../../../../../ui/button.mjs";import{Box as r}from"../../../../../../ui/box.mjs";import{Checkbox as i}from"../../../../../../ui/checkbox.mjs";import{Text as a}from"../../../../../../ui/text.mjs";import{useMutation as o,usePaginated as s,useUpdateRequest as c}from"../../../../../../../hooks/query/use-query.mjs";import{PostList as l}from"../../../../../../common/list/post-list/post-list.mjs";import{trackProfilePageClick as u}from"../../../tracking.mjs";import{ProfileMainEmptyState as d}from"../../empty-state.mjs";import{CollectVideoWaterfall as f}from"../collect-tab/video-waterfall.mjs";import{getLikeData as ee,likeContentType as p}from"../../utils.mjs";import{toast as m}from"sonner";import{useEffect as h,useMemo as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as b}from"next-intl";import{parseAsString as x,useQueryState as te}from"nuqs";function S(e,t,n){if(!e)return e;let r=0,i=e.pages.map(e=>({page:e,filteredList:(e.data?.list??[]).filter(e=>{let i=n(e)??``,a=t.has(i);return a&&(r+=1),!a})}));return{...e,pages:i.map(({page:e,filteredList:t})=>{if(!e.data)return e;let n=typeof e.data.total==`number`?Math.max(0,e.data.total-r):e.data.total;return{...e,data:{...e.data,list:t,total:n}}})}}function C(e){let{detail:t}=e,{info:n,publish_time:r}=t;return{id:e.id,title:n?.name||n?.text||n?.content||``,coverImage:n?.cover_image_thumbnail||n?.cover_image||n?.cover_horizontal_image_thumbnail||``,publishTime:r??0}}function w(e){let{detail:t}=e,{user_info:n,info:r,statics_cnt:i,publish_time:a,parent_content_info:o}=t,s=String(r?.img_type||``).trim().toLowerCase(),c=s===`long`||!s&&!!r?.cover_horizontal_image_thumbnail,l=c?r?.cover_horizontal_image_thumbnail||r?.img_x||r?.cover_image_thumbnail||r?.img_y||r?.cover_image||``:r?.cover_image_thumbnail||r?.img_y||r?.cover_horizontal_image_thumbnail||r?.img_x||r?.cover_image||``,u=String(r?.description||``).trim();return{id:e.id,is_more_link:r?.is_more_link||!1,title:r?.name||r?.text||r?.content||``,coverImage:l,duration:Number(r?.video_duration??0),progress:e.content_play_progress?.percent??0,seriesNum:e.content_play_progress?.series_num,authorName:n?.name||``,viewCount:r?.play_count??i?.browse_cnt??0,publishTime:a??0,type:o?.type,imgType:s||(c?`long`:`short`),score:r?.score,description:u}}const T=[`video`,`post`];function E({mode:E=`renderer`,targetUserId:D,queryKeyPrefix:O,isMine:ne=!1}){let k=b(`components.pages.profile.components.tabs`),A=E===`renderer`,j=O??[],[M,N]=te(`likeTab`,x.withDefault(`video`)),P=g(()=>T.includes(M)?M:`video`,[M]),[F,I]=_(!1),[L,R]=_(()=>new Set),z=e(e=>e.userId),B=c(),V=[...j,`user-like-video`],H=[...j,`user-like-post`],U=s({key:V,initialPageParam:1,async queryFn(e){return ee({targetUserId:D,page:e,contentType:p.video})},options:{staleTime:0,enabled:A},getNextPageParam(e,t){if(typeof e?.data?.has_more==`boolean`)return e.data.has_more?t.length+1:void 0;if(!((e?.data?.list??[]).length===0||e?.data?.total===0))return t.length+1}}),W=s({key:H,options:{staleTime:0,enabled:A},initialPageParam:1,async queryFn(e){return{data:{list:[],total:0,has_more:!1}}},getNextPageParam(e,t){if(typeof e?.data?.has_more==`boolean`)return e.data.has_more?t.length+1:void 0;if(!((e?.data?.list??[]).length===0||e?.data?.total===0))return t.length+1}}),G=P===`video`?U:W,K=U.data?.pages.flatMap(e=>(e.data?.list??[]).map(w))??[],q=W.data?.pages.flatMap(e=>(e.data?.list??[]).map(C))??[],J=P===`video`?K:q,Y=P===`video`?K.length===0&&!G.isFetching:q.length===0&&!G.isFetching,X=new Set(J.map(e=>e.id)),Z=P===`video`,{mutateAsync:re,isPending:Q}=o(async e=>await t({app_id:0,user_id:z,action:`cancel_like`,content_ids:e,content_type:Z?1:2}));h(()=>{R(new Set)},[P]),h(()=>{M!==P&&N(P)},[P,M,N]);let ie=e=>{R(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},ae=()=>{L.size===X.size&&X.size>0?R(new Set):R(new Set(X))},oe=async()=>{if(!(L.size===0||Q)){if(!z){m.error(k(`likeTab.pleaseLogin`));return}try{let e=Array.from(L),t=await re(e);if(t.code===0){m.success(k(`likeTab.unlikedSuccess`));let t=new Set(e);B(Z?V:H,e=>S(e,t,e=>e.id)),R(new Set),I(!1)}else m.error(t.message||k(`likeTab.unlikeFailed`))}catch(e){console.error(`取消点赞失败`,e),m.error(k(`likeTab.operationFailed`))}}},$=async()=>{A&&await G.fetchNextPage()};return y(r,{children:[v(r,{className:``,onClick:e=>{u(e,`content_item`)},children:P===`video`?Y?v(d,{text:k(`likeTab.emptyContent`)}):v(f,{list:K,loading:G.isFetching,hasMore:G.hasNextPage??!1,loadMore:$,emptyText:k(`likeTab.emptyContent`)}):Y?v(d,{text:k(`likeTab.emptyContent`)}):v(l,{list:q,loading:G.isFetching,hasMore:G.hasNextPage??!1,loadMore:$,emptyText:k(`likeTab.emptyContent`),isEditMode:F,selectedIds:L,onToggleSelection:ie})}),F&&y(r,{className:`fixed left-0 z-10 flex w-full items-center justify-between bg-bg1 px-3 py-2 bottom-[var(--tab-bar-occupied-height)]`,children:[y(r,{className:`flex items-center gap-2`,children:[v(i,{checked:L.size===X.size&&X.size>0,onCheckedChange:ae}),v(a,{className:`text-sm text-text1`,children:k(`likeTab.selectAll`)})]}),v(n,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:L.size>0?`default`:`outline`,disabled:L.size===0||Q,onClick:oe,children:k(Q?`likeTab.processing`:`likeTab.delete`)})]})]})}export{E as LikeTab};
2
+ "use client";import{useUserStore as e}from"../../../../../../../store/modules/user-store.mjs";import{pInteractionUnifiedBatchLikeDislike as t}from"../../../../../../../service/generated/client.mjs";import{Button as n}from"../../../../../../ui/button.mjs";import{Box as r}from"../../../../../../ui/box.mjs";import{Checkbox as i}from"../../../../../../ui/checkbox.mjs";import{Text as a}from"../../../../../../ui/text.mjs";import{useMutation as o,usePaginated as s,useUpdateRequest as c}from"../../../../../../../hooks/query/use-query.mjs";import{PostList as l}from"../../../../../../common/list/post-list/post-list.mjs";import{trackProfilePageClick as u}from"../../../tracking.mjs";import{ProfileMainEmptyState as d}from"../../empty-state.mjs";import{CollectVideoWaterfall as f}from"../collect-tab/video-waterfall.mjs";import{getLikeData as ee,likeContentType as p}from"../../utils.mjs";import{toast as m}from"sonner";import{useEffect as h,useMemo as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as b}from"next-intl";import{parseAsString as x,useQueryState as te}from"nuqs";function S(e,t,n){if(!e)return e;let r=0,i=e.pages.map(e=>({page:e,filteredList:(e.data?.list??[]).filter(e=>{let i=n(e)??``,a=t.has(i);return a&&(r+=1),!a})}));return{...e,pages:i.map(({page:e,filteredList:t})=>{if(!e.data)return e;let n=typeof e.data.total==`number`?Math.max(0,e.data.total-r):e.data.total;return{...e,data:{...e.data,list:t,total:n}}})}}function C(e){let{detail:t}=e,{info:n,publish_time:r}=t;return{id:e.id,title:n?.name||n?.text||n?.content||``,coverImage:n?.cover_image_thumbnail||n?.cover_image||n?.cover_horizontal_image_thumbnail||``,publishTime:r??0}}function w(e){let{detail:t}=e,{user_info:n,info:r,statics_cnt:i,publish_time:a,parent_content_info:o}=t,s=String(r?.img_type||``).trim().toLowerCase(),c=s===`long`||!s&&!!r?.cover_horizontal_image_thumbnail,l=c?r?.cover_horizontal_image_thumbnail||r?.img_x||r?.cover_image_thumbnail||r?.img_y||r?.cover_image||``:r?.cover_image_thumbnail||r?.img_y||r?.cover_horizontal_image_thumbnail||r?.img_x||r?.cover_image||``,u=String(r?.description||``).trim();return{id:e.id,is_more_link:r?.is_more_link||!1,title:r?.name||r?.text||r?.content||``,coverImage:l,duration:Number(r?.video_duration??0),progress:e.content_play_progress?.percent??0,seriesNum:e.content_play_progress?.series_num,authorName:n?.name||``,viewCount:r?.play_count??i?.browse_cnt??0,publishTime:a??0,type:o?.type,imgType:s||(c?`long`:`short`),score:r?.score,description:u}}const T=[`video`,`post`];function E({mode:E=`renderer`,targetUserId:D,queryKeyPrefix:O,isMine:ne=!1}){let k=b(`components.pages.profile.components.tabs`),A=E===`renderer`,j=O??[],[M,N]=te(`likeTab`,x.withDefault(`video`)),P=g(()=>T.includes(M)?M:`video`,[M]),[F,I]=_(!1),[L,R]=_(()=>new Set),z=e(e=>e.userId),B=c(),V=[...j,`user-like-video`],H=[...j,`user-like-post`],U=s({key:V,initialPageParam:1,async queryFn(e){return ee({targetUserId:D,page:e,contentType:p.video})},options:{staleTime:0,enabled:A},getNextPageParam(e,t){if(typeof e?.data?.has_more==`boolean`)return e.data.has_more?t.length+1:void 0;if(!((e?.data?.list??[]).length===0||e?.data?.total===0))return t.length+1}}),W=s({key:H,options:{staleTime:0,enabled:A},initialPageParam:1,async queryFn(e){return{data:{list:[],total:0,has_more:!1}}},getNextPageParam(e,t){if(typeof e?.data?.has_more==`boolean`)return e.data.has_more?t.length+1:void 0;if(!((e?.data?.list??[]).length===0||e?.data?.total===0))return t.length+1}}),G=P===`video`?U:W,K=U.data?.pages.flatMap(e=>(e.data?.list??[]).map(w))??[],q=W.data?.pages.flatMap(e=>(e.data?.list??[]).map(C))??[],J=P===`video`?K:q,Y=P===`video`?K.length===0&&!G.isFetching:q.length===0&&!G.isFetching,X=new Set(J.map(e=>e.id)),Z=P===`video`,{mutateAsync:re,isPending:Q}=o(async e=>await t({app_id:0,user_id:z,action:`cancel_like`,content_ids:e,content_type:Z?1:2}));h(()=>{R(new Set)},[P]),h(()=>{M!==P&&N(P)},[P,M,N]);let ie=e=>{R(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},ae=()=>{L.size===X.size&&X.size>0?R(new Set):R(new Set(X))},oe=async()=>{if(!(L.size===0||Q)){if(!z){m.error(k(`likeTab.pleaseLogin`));return}try{let e=Array.from(L),t=await re(e);if(t.code===0){m.success(k(`likeTab.unlikedSuccess`));let t=new Set(e);B(Z?V:H,e=>S(e,t,e=>e.id)),R(new Set),I(!1)}else m.error(t.message||k(`likeTab.unlikeFailed`))}catch(e){console.error(`取消点赞失败`,e),m.error(k(`likeTab.operationFailed`))}}},$=async()=>{A&&await G.fetchNextPage()};return y(r,{children:[v(r,{className:``,onClick:e=>{u(e,`content_item`)},children:P===`video`?Y?v(d,{text:k(`likeTab.emptyContent`)}):v(f,{list:K,loading:G.isFetching,hasMore:G.hasNextPage??!1,loadMore:$,emptyText:k(`likeTab.emptyContent`),showDateGroupTitle:!0}):Y?v(d,{text:k(`likeTab.emptyContent`)}):v(l,{list:q,loading:G.isFetching,hasMore:G.hasNextPage??!1,loadMore:$,emptyText:k(`likeTab.emptyContent`),isEditMode:F,selectedIds:L,onToggleSelection:ie})}),F&&y(r,{className:`fixed left-0 z-10 flex w-full items-center justify-between bg-bg1 px-3 py-2 bottom-[var(--tab-bar-occupied-height)]`,children:[y(r,{className:`flex items-center gap-2`,children:[v(i,{checked:L.size===X.size&&X.size>0,onCheckedChange:ae}),v(a,{className:`text-sm text-text1`,children:k(`likeTab.selectAll`)})]}),v(n,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:L.size>0?`default`:`outline`,disabled:L.size===0||Q,onClick:oe,children:k(Q?`likeTab.processing`:`likeTab.delete`)})]})]})}export{E as LikeTab};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{userSelectors as e}from"../../../store/modules/user-store.mjs";import{useEffect as t}from"react";const n=`funhub-sensor-sdk-script`;let r=!1;function i(){let e=`__funhub_device_id`,t=localStorage.getItem(e);return t||(t=crypto.randomUUID().replace(/-/g,``),localStorage.setItem(e,t)),t}function a(){let e=`__funhub_session_id`,t=sessionStorage.getItem(e);return t||(t=crypto.randomUUID().replace(/-/g,``),sessionStorage.setItem(e,t)),t}function o(){let e=navigator.userAgent;return/android/i.test(e)?`Android`:/iPad|iPhone|iPod/.test(e)?`iOS`:`PC`}function s(){return{channel:process.env.NEXT_PUBLIC_TRACK_CHANNEL||``,event_id:crypto.randomUUID().replace(/-/g,``),app_id:process.env.NEXT_PUBLIC_TRACK_APP_ID||``,uid:e.getUserId()||``,sid:a(),client_ts:Math.floor(Date.now()/1e3),device:o(),device_id:i(),user_agent:navigator.userAgent,device_brand:``,device_model:``}}function c(){return{server_url:process.env.NEXT_PUBLIC_SENSOR_SERVER_URL,is_track_single_page:!1,use_client_time:!0,send_type:`beacon`,heatmap:{clickmap:`not_collect`,scroll_notice_map:`not_collect`}}}function l(){return typeof window>`u`||window.sensorsDataAnalytic201505?Promise.resolve():(window.__funhubSensorSdkLoader||(window.__funhubSensorSdkLoader=new Promise((e,t)=>{let r=document.getElementById(n);if(r){r.addEventListener(`load`,()=>e(),{once:!0}),r.addEventListener(`error`,()=>t(Error(`load sensor sdk failed`)),{once:!0});return}let i=document.createElement(`script`);i.id=n,i.async=!0,i.src=`/sensorsdata.js`,i.onload=()=>e(),i.onerror=()=>t(Error(`load sensor sdk failed`)),document.head.appendChild(i)})),window.__funhubSensorSdkLoader)}function u(){return t(()=>{let e=!1;async function t(){if(r||(await l(),e))return;let t=window.sensorsDataAnalytic201505;if(!t)return;let n=c();if(!n||r)return;r=!0,t.init(n),t.quick(`autoTrack`);let i=t.track.bind(t);t.track=(e,t)=>{let n={...s()};return n.payload={...t},i(e,n)},window.sensors=t}return t(),()=>{e=!0}},[]),null}export{u as SensorInit};
2
+ "use client";import{getOrCreateBrowserFingerprint as e}from"../../../utils/browser-fingerprint.mjs";import{userSelectors as t}from"../../../store/modules/user-store.mjs";import{useEffect as n}from"react";const r=`funhub-sensor-sdk-script`;let i=!1,a=``;function o(){let e=`__funhub_session_id`,t=sessionStorage.getItem(e);return t||(t=crypto.randomUUID().replace(/-/g,``),sessionStorage.setItem(e,t)),t}function s(){let e=navigator.userAgent;return/android/i.test(e)?`Android`:/iPad|iPhone|iPod/.test(e)?`iOS`:`PC`}function c(){return{channel:process.env.NEXT_PUBLIC_TRACK_CHANNEL||``,event_id:crypto.randomUUID().replace(/-/g,``),app_id:process.env.NEXT_PUBLIC_TRACK_APP_ID||``,uid:t.getUserId()||``,sid:o(),client_ts:Math.floor(Date.now()/1e3),device:s(),device_id:a,user_agent:navigator.userAgent,device_brand:``,device_model:``}}function l(){return{server_url:process.env.NEXT_PUBLIC_SENSOR_SERVER_URL,is_track_single_page:!1,use_client_time:!0,send_type:`beacon`,heatmap:{clickmap:`not_collect`,scroll_notice_map:`not_collect`}}}function u(){return typeof window>`u`||window.sensorsDataAnalytic201505?Promise.resolve():(window.__funhubSensorSdkLoader||(window.__funhubSensorSdkLoader=new Promise((e,t)=>{let n=document.getElementById(r);if(n){n.addEventListener(`load`,()=>e(),{once:!0}),n.addEventListener(`error`,()=>t(Error(`load sensor sdk failed`)),{once:!0});return}let i=document.createElement(`script`);i.id=r,i.async=!0,i.src=`/sensorsdata.js`,i.onload=()=>e(),i.onerror=()=>t(Error(`load sensor sdk failed`)),document.head.appendChild(i)})),window.__funhubSensorSdkLoader)}function d(){return n(()=>{let t=!1;async function n(){if(i||(await u(),t))return;a=await e();let n=window.sensorsDataAnalytic201505;if(!n)return;let r=l();if(!r||i)return;i=!0,n.init(r),n.quick(`autoTrack`);let o=n.track.bind(n);n.track=(e,t)=>{let n={...c()};return n.payload={...t},o(e,n)},window.sensors=n}return n(),()=>{t=!0}},[]),null}export{d as SensorInit};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{useRouter as t}from"../../../utils/use-compatible-router.mjs";import{Toaster as n}from"../../ui/sonner.mjs";import{MediaPreview as r}from"../media-preview/index.mjs";import{IntlProvider as i}from"../intl-provider/intl-provider.mjs";import{useEffect as a,useRef as o,useState as s}from"react";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";import{QueryClient as d,QueryClientProvider as f}from"@tanstack/react-query";import{NuqsAdapter as p}from"nuqs/adapters/next/app";function m(m){let{queryClient:h,intl:g,children:_}=m,[v]=s(()=>new d),y=h??v,b=t(),x=e(e=>e.isLogin&&!!e.token&&!!e.userId),S=o(x);a(()=>{S.current&&!x&&(y.clear(),b.refresh()),S.current=x},[x,y,b]);let C=u(c,{children:[_,l(n,{position:`top-center`}),l(r,{})]});return l(f,{client:y,children:l(p,{children:l(i,{...g,children:C})})})}export{m as FunhubProvider};
2
+ "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{useRouter as t}from"../../../utils/use-compatible-router.mjs";import{Toaster as n}from"../../ui/sonner.mjs";import{MediaPreview as r}from"../media-preview/index.mjs";import{IntlProvider as i}from"../intl-provider/intl-provider.mjs";import{StatusBarSync as a}from"./status-bar-sync.mjs";import{useEffect as o,useRef as s,useState as c}from"react";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";import{QueryClient as f,QueryClientProvider as p}from"@tanstack/react-query";import{NuqsAdapter as m}from"nuqs/adapters/next/app";function h(h){let{queryClient:g,intl:_,children:v}=h,[y]=c(()=>new f),b=g??y,x=t(),S=e(e=>e.isLogin&&!!e.token&&!!e.userId),C=s(S);o(()=>{C.current&&!S&&(b.clear(),x.refresh()),C.current=S},[S,b,x]);let w=d(l,{children:[u(a,{}),u(`div`,{className:`safe-top-shell`,children:v}),u(n,{position:`top-center`}),u(r,{})]});return u(p,{client:b,children:u(m,{children:u(i,{..._,children:w})})})}export{h as FunhubProvider};
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import{usePathname as e}from"next/navigation";import{useEffect as t}from"react";function n(e){let t=Number(e);return!Number.isFinite(t)||t<0?0:t}function r(e){return e.split(`/`).filter(Boolean).some(e=>e===`video`||e===`webview`)}function i(){let e=window.__flutterStatusBar;return`${n(e?.statusBarHeight)}px`}function a(){let n=e()||`/`;return t(()=>{if(typeof window>`u`)return;if(typeof window.__applySafeTopOffset==`function`){window.__applySafeTopOffset(n);return}let e=window.isWebView&&!r(n)?i():`0px`;document.documentElement.style.setProperty(`--safe-top-offset`,e)},[n]),null}export{a as StatusBarSync};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useRouter as e}from"../../../utils/use-compatible-router.mjs";import{toast as t}from"../../../ui.mjs";import{LeftArrowIcon as n}from"../icons/left-arrow.mjs";import{jsx as r,jsxs as i}from"react/jsx-runtime";function a({title:a,leftChild:o,centerChild:s,className:c,rightChild:l,leftIconCss:u,onBack:d}){let f=e();function p(){if(t.dismiss(),d){d?.();return}window.location.search.split(`from_code=`)[1]?f.push(`/`):f.back()}return r(`nav`,{className:`app-top-nav w-full relative ${c?.includes(`h-`)?(c.match(/h-\[?\d\w+\]?/)||[`h-12`])[0]:`h-12`}`,children:i(`div`,{className:`w-full bg-bg1 flex items-center justify-center fixed h-12 top-0 left-0 right-0 z-50 border-b border-text1/5 ${c}`,style:{willChange:`transform`,transform:`translateZ(0)`},children:[r(`div`,{className:`absolute z-[1] h-full left-0 top-0`,children:o||r(`div`,{onClick:p,className:`cursor-pointer h-full w-12 flex items-center justify-center`,children:r(n,{className:`w-4 h-4 text-text1 ${u}`})})}),s||r(`p`,{className:`text-text1 line-clamp-1 px-12 text-ellipsis text-lg`,children:a}),l&&r(`div`,{className:`absolute h-full right-2 top-0 flex items-center justify-center`,children:l})]})})}export{a as HeaderNav};
2
+ "use client";import{useRouter as e}from"../../../utils/use-compatible-router.mjs";import{toast as t}from"../../../ui.mjs";import{LeftArrowIcon as n}from"../icons/left-arrow.mjs";import{jsx as r,jsxs as i}from"react/jsx-runtime";function a({title:a,leftChild:o,centerChild:s,className:c,rightChild:l,leftIconCss:u,onBack:d}){let f=e();function p(){if(t.dismiss(),d){d?.();return}window.location.search.split(`from_code=`)[1]?f.push(`/`):f.back()}return r(`nav`,{className:`app-top-nav w-full relative ${c?.includes(`h-`)?(c.match(/h-\[?\d\w+\]?/)||[`h-12`])[0]:`h-12`}`,children:i(`div`,{className:`safe-top-offset w-full bg-bg1 flex items-center justify-center fixed h-12 left-0 right-0 z-50 border-b border-text1/5 ${c}`,style:{willChange:`transform`,transform:`translateZ(0)`},children:[r(`div`,{className:`absolute z-[1] h-full left-0 top-0`,children:o||r(`div`,{onClick:p,className:`cursor-pointer h-full w-12 flex items-center justify-center`,children:r(n,{className:`w-4 h-4 text-text1 ${u}`})})}),s||r(`p`,{className:`text-text1 line-clamp-1 px-12 text-ellipsis text-lg`,children:a}),l&&r(`div`,{className:`absolute h-full right-2 top-0 flex items-center justify-center`,children:l})]})})}export{a as HeaderNav};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../ui/link.mjs";import i from"../../../../assets/icons/detail/video_flag.mjs";import{CollectionSelectIcon as a,CollectionSelectedIcon as o}from"../collection-list/collection-select-icon.mjs";import{RECOMMEND_BADGE_IMAGE_CLASS_NAME as s,RECOMMEND_TOP_LEFT_BADGE_WRAPPER_CLASS_NAME as c,normalizeRecommendBadgeUrl as l}from"./recommend-badge-style.mjs";import{WATERFALL_SHORT_CARD_ASPECT_RATIO as u,WATERFALL_TALL_CARD_ASPECT_RATIO as d,buildWaterfallRecommendLegacyDisplay as f}from"./waterfall-recommend-display.mjs";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";const g={backgroundImage:`var(--gradient-card-mask-light)`};function _({title:e,moreHref:i,onMoreClick:a,moreIcon:o,columns:s,sectionClassName:c=`w-full`,headerClassName:l=`mb-[16px] flex items-center justify-between no-vw-x-16`,titleClassName:u=`flex-1 min-w-0 text-[18px] leading-[24px] font-medium line-clamp-1 text-text2`,moreLinkClassName:d=`ml-[8px] flex size-[24px] shrink-0 items-center justify-center opacity-50`,containerClassName:f=`relative flex w-full gap-[8px] no-vw-x-16`,overlay:p,footer:g,getItemRef:_,selectionMode:y=!1,selectedIds:b,onToggleSelection:x,onItemClick:S}){return h(t,{className:c,children:[h(t,{className:l,children:[m(n,{className:u,children:e}),o&&i&&m(r,{href:i,"aria-label":`更多`,className:d,onClick:a,children:o}),o&&!i&&a&&m(`button`,{type:`button`,"aria-label":`更多`,className:d,onClick:a,children:o})]}),h(t,{className:f,children:[m(t,{className:`flex-1 min-w-0 flex flex-col`,children:s.left.map((e,t)=>m(`div`,{ref:_?.({item:e,column:`left`,columnIndex:t}),children:m(v,{item:e,selectionMode:y,selectedIds:b,onToggleSelection:x,onItemClick:S})},e.key))}),m(t,{className:`flex-1 min-w-0 flex flex-col`,children:s.right.map((e,t)=>m(`div`,{ref:_?.({item:e,column:`right`,columnIndex:t}),children:m(v,{item:e,selectionMode:y,selectedIds:b,onToggleSelection:x,onItemClick:S})},e.key))}),p]}),g]})}function v({item:_,selectionMode:v=!1,selectedIds:y,onToggleSelection:b,onItemClick:x}){let S=_.cardKind===`short`?u:d,C=_.selectionId??``,w=!!(C&&y?.has(C)),T=f(_),E=l(T.topLeftBadgeImageUrl);function D(){!v||!C||b?.(C)}let O=h(p,{children:[h(t,{className:`relative w-full overflow-hidden rounded-[8px] bg-[#18111f]`,style:{aspectRatio:S},children:[_.coverUrl&&m(e,{src:_.coverUrl,alt:_.title||`推荐封面`,fill:!0,objectFit:`cover`,className:`object-cover`}),m(t,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:g,"aria-hidden":!0}),v&&m(t,{className:`pointer-events-none absolute left-[8px] top-[8px] z-[2]`,children:m(w?o:a,{})}),!v&&h(p,{children:[E&&m(t,{className:c,children:m(e,{src:E,alt:`角标`,width:96,height:18,className:s})}),T.topRightScoreText&&m(n,{as:`span`,className:`absolute right-[8px] top-[8px] z-[1] shrink-0 text-[14px] leading-[22px] font-semibold text-[#FFC24B]`,children:T.topRightScoreText}),h(t,{className:`absolute left-[8px] right-[8px] bottom-[10px] z-[1] flex items-end justify-between gap-[8px]`,children:[m(t,{className:`flex min-w-0 items-center gap-[4px]`,children:T.bottomLeftHeatText&&h(p,{children:[m(i,{className:`h-[16px] w-[16px] shrink-0 text-white`}),m(n,{as:`span`,className:`min-w-0 truncate text-[14px] leading-[20px] text-white`,children:T.bottomLeftHeatText})]})}),T.bottomRightEpisodeText&&m(n,{as:`span`,className:`shrink-0 text-[14px] leading-[20px] text-white`,children:T.bottomRightEpisodeText})]})]})]}),!v&&m(t,{className:`mt-[8px] overflow-hidden`,children:m(n,{as:`h3`,className:`line-clamp-2 text-[16px] leading-[22px] text-[--color-text-white80]`,children:T.title})})]});return v?m(`button`,{type:`button`,className:`mb-[16px] block w-full cursor-pointer border-0 bg-transparent p-0 text-left`,onClick:D,"aria-pressed":w,disabled:!C,children:O}):m(r,{href:_.href,className:`mb-[16px] block w-full`,onClick:()=>x?.(_),children:O})}export{_ as WaterfallRecommend};
2
+ "use client";import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../ui/link.mjs";import i from"../../../../assets/icons/detail/video_flag.mjs";import{CollectionSelectIcon as a,CollectionSelectedIcon as o}from"../collection-list/collection-select-icon.mjs";import{RECOMMEND_BADGE_IMAGE_CLASS_NAME as s,RECOMMEND_TOP_LEFT_BADGE_WRAPPER_CLASS_NAME as c,normalizeRecommendBadgeUrl as l}from"./recommend-badge-style.mjs";import{WATERFALL_SHORT_CARD_ASPECT_RATIO as u,WATERFALL_TALL_CARD_ASPECT_RATIO as d,buildWaterfallRecommendLegacyDisplay as f}from"./waterfall-recommend-display.mjs";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";const g={backgroundImage:`var(--gradient-card-mask-light)`};function _({title:e,moreHref:i,onMoreClick:a,moreIcon:o,columns:s,sectionClassName:c=`w-full`,headerClassName:l=`mb-[16px] flex items-center justify-between no-vw-x-16`,titleClassName:u=`flex-1 min-w-0 text-[18px] leading-[24px] font-medium line-clamp-1 text-text2`,moreLinkClassName:d=`ml-[8px] flex size-[24px] shrink-0 items-center justify-center opacity-50`,containerClassName:f=`relative flex w-full gap-[8px] no-vw-x-16`,overlay:p,footer:g,getItemRef:_,selectionMode:y=!1,selectedIds:b,onToggleSelection:x,onItemClick:S}){return h(t,{className:c,children:[h(t,{className:l,children:[m(n,{className:u,children:e}),o&&i&&m(r,{href:i,"aria-label":`更多`,className:d,onClick:a,children:o}),o&&!i&&a&&m(`button`,{type:`button`,"aria-label":`更多`,className:d,onClick:a,children:o})]}),h(t,{className:f,children:[m(t,{className:`flex-1 min-w-0 flex flex-col`,children:s.left.map((e,t)=>m(`div`,{ref:_?.({item:e,column:`left`,columnIndex:t}),children:m(v,{item:e,selectionMode:y,selectedIds:b,onToggleSelection:x,onItemClick:S})},e.key))}),m(t,{className:`flex-1 min-w-0 flex flex-col`,children:s.right.map((e,t)=>m(`div`,{ref:_?.({item:e,column:`right`,columnIndex:t}),children:m(v,{item:e,selectionMode:y,selectedIds:b,onToggleSelection:x,onItemClick:S})},e.key))}),p]}),g]})}function v({item:_,selectionMode:v=!1,selectedIds:y,onToggleSelection:b,onItemClick:x}){let S=_.cardKind===`short`?u:d,C=_.selectionId??``,w=!!(C&&y?.has(C)),T=f(_),E=l(T.topLeftBadgeImageUrl);function D(){!v||!C||b?.(C)}let O=h(p,{children:[h(t,{className:`relative w-full overflow-hidden rounded-[8px] bg-[#18111f]`,style:{aspectRatio:S},children:[_.coverUrl&&m(e,{src:_.coverUrl,alt:_.title||`推荐封面`,fill:!0,objectFit:`cover`,className:`object-cover`}),m(t,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:g,"aria-hidden":!0}),v&&m(t,{className:`pointer-events-none absolute left-[8px] top-[8px] z-[2]`,children:m(w?o:a,{})}),!v&&h(p,{children:[E&&m(t,{className:c,children:m(e,{src:E,alt:`角标`,width:96,height:18,className:s})}),h(t,{className:`absolute left-[8px] right-[8px] bottom-[10px] z-[1] flex items-end justify-between gap-[8px]`,children:[m(t,{className:`flex min-w-0 items-center gap-[4px]`,children:T.bottomLeftHeatText&&h(p,{children:[m(i,{className:`h-[16px] w-[16px] shrink-0 text-white`}),m(n,{as:`span`,className:`min-w-0 truncate text-[14px] leading-[20px] text-white`,children:T.bottomLeftHeatText})]})}),T.bottomRightEpisodeText&&m(n,{as:`span`,className:`shrink-0 text-[14px] leading-[20px] text-white`,children:T.bottomRightEpisodeText})]})]})]}),!v&&m(t,{className:`mt-[8px] overflow-hidden`,children:m(n,{as:`h3`,className:`line-clamp-2 text-[16px] leading-[22px] text-[--color-text-white80]`,children:T.title})})]});return v?m(`button`,{type:`button`,className:`mb-[16px] block w-full cursor-pointer border-0 bg-transparent p-0 text-left`,onClick:D,"aria-pressed":w,disabled:!C,children:O}):m(r,{href:_.href,className:`mb-[16px] block w-full`,onClick:()=>x?.(_),children:O})}export{_ as WaterfallRecommend};
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import e from"../../../utils/get-res-url.mjs";import{isM3u8VideoUrl as t}from"./process-m3u8-cache.mjs";function n(n){let r=String(n||``).trim();if(!r)return{normalizedUrl:``,isM3u8:!1,playerUrl:``,nativeSrc:``};let i=r.startsWith(`/`)?r.slice(1):r,a=t(i);return{normalizedUrl:i,isM3u8:a,playerUrl:a&&i.startsWith(`m3f/`)?i.slice(4):i,nativeSrc:a?``:`${e()}/${i}`}}export{n as resolveAdVideoSource};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import e from"../../../utils/get-res-url.mjs";import{useIsClient as t}from"../../../hooks/use-is-client.mjs";import n from"../../../assets/icons/detail/video_play.mjs";import{PrerollSkipButtonContent as r}from"./preroll-skip-button-content.mjs";import{useEffect as i,useImperativeHandle as a,useMemo as o,useRef as s,useState as c}from"react";import{jsx as l,jsxs as u}from"react/jsx-runtime";function d({ref:d,adData:f=null,visible:p=!1,autoStart:m=!1,sessionKey:h=`default`,onAutoplayBlocked:g,onFinish:_,onSkip:v,onOpenLink:y}){let b=s(null),[x,S]=c(0),[C,w]=c(!1),T=t(),E=s(!1),D=Number(f?.settings?.skip_seconds||0),O=o(()=>f?.materials?.[0],[f?.materials]),k=String(O?.advertise_video||``).trim(),A=o(()=>k?k.startsWith(`/m3f`)?`${e()}/${k}`:`${e()}/m3f${k}`:``,[k]),j=!!k,M=j?C:p,N=x<=0;i(()=>{w(!1),S(D),E.current=!1;let e=b.current;if(e)try{e.pause(),e.currentTime=0,e.load()}catch(e){console.warn(`重置前贴片播放状态失败:`,e)}},[A,h,D]),i(()=>{if(!p||!O)return;if(D<=0){S(0);return}if(!M)return;let e=window.setInterval(()=>{S(t=>t<=1?(window.clearInterval(e),0):t-1)},1e3);return()=>{window.clearInterval(e)}},[O,M,h,D,p]),i(()=>{!p||!m||!j||!b.current||E.current||(E.current=!0,b.current.play().catch(e=>{console.warn(`自动启动前贴片播放失败:`,e),g?.()}))},[m,j,g,h,p]),a(d,()=>({async play(){if(!b.current)return!1;try{return await b.current.play(),!0}catch(e){return console.warn(`手动启动前贴片播放失败:`,e),!1}}}),[]);function P(){N&&v?.()}function F(){if(j&&!C){let e=b.current;if(!e)return;e.play().catch(e=>{console.warn(`手动启动前贴片播放失败:`,e)});return}let e=O?.advertise_url;e&&(y?.(e),window.open(e,`_blank`,`noopener,noreferrer`))}if(!T||typeof window>`u`||!f?.hit||!O||!j)return null;let I=l(`video`,{ref:b,src:A,poster:O?.advertise_icon||``,className:`pointer-events-none w-full h-full object-cover bg-black`,autoPlay:m,muted:!0,playsInline:!0,preload:`none`,onEnded:()=>{_?.()},onPlaying:()=>{w(!0)},onError:e=>{console.warn(`[video-preroll-ad][error]`,{sessionKey:h,error:e.currentTarget?.error})}});return u(`div`,{className:`video-preroll-ad absolute top-0 left-0 w-full h-full z-[9999] ${p?``:`pointer-events-none opacity-0`}`,"aria-hidden":!p,children:[l(`button`,{type:`button`,disabled:!N,onClick:P,className:`absolute z-[10] text-sm top-6 right-6 bg-black/30 text-white rounded-full px-6 py-1.5 flex items-center justify-center disabled:opacity-60 disabled:cursor-not-allowed`,children:N?l(r,{label:`跳过`}):`跳过 ${x}s`}),u(`div`,{role:`button`,tabIndex:0,onClick:F,className:`relative block w-full h-full`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),F())},children:[I,j&&!C&&l(`div`,{className:`absolute inset-0 z-[2] flex items-center justify-center bg-black/20 pointer-events-none`,children:l(`div`,{className:`flex items-center justify-center w-12 h-12 rounded-full bg-[rgba(0,0,0,0.45)]`,children:l(n,{className:`w-[16px] h-[22px] text-white`})})})]})]})}export{d as VideoPrerollAd};
2
+ "use client";import{buildVideoPlayerSrc as e,resolveVideoPlayerSrc as t}from"./process-m3u8-cache.mjs";import{useIsClient as n}from"../../../hooks/use-is-client.mjs";import{resolveAdVideoSource as r}from"./ad-video-source.mjs";import i from"../../../assets/icons/detail/video_play.mjs";import{PrerollSkipButtonContent as a}from"./preroll-skip-button-content.mjs";import{useEffect as o,useImperativeHandle as s,useMemo as c,useRef as l,useState as u}from"react";import{jsx as d,jsxs as f}from"react/jsx-runtime";async function p(){await import(`xgplayer/dist/index.min.css`)}function m(e){if(e){try{e.muted=!0}catch{}try{e.volume=0}catch{}try{let t=e.video;t&&(t.muted=!0,t.volume=0)}catch{}}}function h(e){if(e)try{e.offAll?.(),e.destroy?.()}catch(e){console.warn(`销毁前贴片播放器失败:`,e)}}function g({ref:g,adData:_=null,visible:v=!1,autoStart:y=!1,sessionKey:b=`default`,onAutoplayBlocked:x,onFinish:S,onSkip:C,onOpenLink:w}){let T=l(null),E=l(null),D=l(null),O=l(null),[k,A]=u(0),[j,M]=u(!1),N=n(),P=l(!1),F=Number(_?.settings?.skip_seconds||0),I=c(()=>_?.materials?.[0],[_?.materials]),L=String(I?.advertise_video||``).trim(),R=c(()=>r(L),[L]),z=R.normalizedUrl,B=R.isM3u8,V=R.playerUrl,H=R.nativeSrc,U=!!L&&(B||!!H),W=U?j:v,G=k<=0;o(()=>{M(!1),A(F),P.current=!1,h(D.current),D.current=null,O.current=null;let e=T.current;if(e)try{e.pause(),e.currentTime=0,e.load()}catch(e){console.warn(`重置前贴片播放状态失败:`,e)}},[z,b,F]),o(()=>()=>{h(D.current),D.current=null,O.current=null},[]),o(()=>{if(!v||!I)return;if(F<=0){A(0);return}if(!W)return;let e=window.setInterval(()=>{A(t=>t<=1?(window.clearInterval(e),0):t-1)},1e3);return()=>{window.clearInterval(e)}},[I,W,b,F,v]),o(()=>{if(!v||!U||!B||D.current||O.current||!E.current)return;let n=!1,r=E.current;return O.current=(async()=>{try{await p();let[i,a,o]=await Promise.all([import(`xgplayer`),import(`xgplayer-hls`),t(V)]);if(n||!r?.isConnected)return;let s=i.default??i,c=i.Events,l=a.default??a,u=new s({el:r,url:o||e(V),poster:I?.advertise_icon||``,autoplay:!1,width:`100%`,height:`100%`,volume:0,controls:!1,preload:`auto`,playbackRate:[],autoplayMuted:!0,playsinline:!0,webkitPlaysInline:!0,closeVideoPreventDefault:!0,enableVideoDbltouch:!1,videoFillMode:`cover`,lang:`zh-cn`,plugins:[l],hls:{preloadTime:15,bufferBehind:5,keepStatusAfterSwitch:!0},mobile:{disablePress:!0,pressRate:2,gestureX:!1,gestureY:!1}});m(u),u.on(c.PLAYING,()=>{M(!0)}),u.on(c.ENDED,()=>{S?.()}),u.on(c.ERROR,e=>{console.warn(`[video-preroll-ad][error]`,{sessionKey:b,error:e})}),D.current=u}catch(e){console.warn(`初始化前贴片 m3u8 播放器失败:`,e)}finally{O.current=null}})(),()=>{n=!0}},[I?.advertise_icon,U,B,S,V,b,v]),o(()=>{if(!(!v||!y||!U||P.current)){if(P.current=!0,B){(async()=>{try{await O.current;let e=D.current;if(!e)throw Error(`前贴片播放器尚未完成初始化`);m(e),await e.play?.()}catch(e){console.warn(`自动启动前贴片播放失败:`,e),x?.()}})();return}T.current&&T.current.play().catch(e=>{console.warn(`自动启动前贴片播放失败:`,e),x?.()})}},[y,U,B,x,b,v]),s(g,()=>({async play(){try{if(B){await O.current;let e=D.current;return e?(m(e),await e.play?.(),!0):!1}return T.current?(await T.current.play(),!0):!1}catch(e){return console.warn(`手动启动前贴片播放失败:`,e),!1}}}),[B]);function K(){G&&C?.()}function q(){if(U&&!j){(async()=>{try{if(B){await O.current;let e=D.current;if(!e)return;m(e),await e.play?.();return}let e=T.current;if(!e)return;await e.play()}catch(e){console.warn(`手动启动前贴片播放失败:`,e)}})();return}let e=I?.advertise_url;e&&(w?.(e),window.open(e,`_blank`,`noopener,noreferrer`))}if(!N||typeof window>`u`||!_?.hit||!I||!U)return null;let J=B?d(`div`,{ref:E,className:`pointer-events-none w-full h-full bg-black`}):d(`video`,{ref:T,src:H,poster:I?.advertise_icon||``,className:`pointer-events-none w-full h-full object-cover bg-black`,autoPlay:y,muted:!0,playsInline:!0,preload:`none`,onEnded:()=>{S?.()},onPlaying:()=>{M(!0)},onError:e=>{console.warn(`[video-preroll-ad][error]`,{sessionKey:b,error:e.currentTarget?.error})}});return f(`div`,{className:`video-preroll-ad absolute top-0 left-0 w-full h-full z-[9999] ${v?``:`pointer-events-none opacity-0`}`,"aria-hidden":!v,children:[d(`button`,{type:`button`,disabled:!G,onClick:K,className:`absolute z-[10] text-sm top-6 right-6 bg-black/30 text-white rounded-full px-6 py-1.5 flex items-center justify-center disabled:opacity-60 disabled:cursor-not-allowed`,children:G?d(a,{label:`跳过`}):`跳过 ${k}s`}),f(`div`,{role:`button`,tabIndex:0,onClick:q,className:`relative block w-full h-full`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),q())},children:[J,U&&!j&&d(`div`,{className:`absolute inset-0 z-[2] flex items-center justify-center bg-black/20 pointer-events-none`,children:d(`div`,{className:`flex items-center justify-center w-12 h-12 rounded-full bg-[rgba(0,0,0,0.45)]`,children:d(i,{className:`w-[16px] h-[22px] text-white`})})})]})]})}export{g as VideoPrerollAd};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{useFollowIdsState as t}from"../../../store/modules/follow-ids-store.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{gContentGetAppChannels as r,gContentGetVideoDetail as i}from"../../../service/generated/client.mjs";import{useLoginModalStore as a}from"../../../store/modules/login-modal-store.mjs";import{useRequest as o}from"../../../hooks/query/use-query.mjs";import{queryKey as s}from"../../../constants/query-key.mjs";import{useKeepAliveState as c}from"../../common/keep-scroll-position/index.mjs";import{batchQueryContentInteractions as l}from"../../../hooks/use-content-operate.mjs";import u from"../../biz/basics/fullscreen-feed/runtime/client.mjs";import d from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{SeriesEpisodes as ee}from"../../common/series-episodes/index.mjs";import{useCallback as f,useEffect as te,useLayoutEffect as ne,useMemo as p,useRef as re,useState as m}from"react";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";import{useTranslations as v}from"next-intl";function y(e,t){return(e||[]).map((e,n)=>({id:e.id||`${t||`episode`}-${n+1}`,name:e.name||String(n+1),preview_m3u8_url:e.preview_m3u8_url||e.preview_m3u8url||``,m3u8_url:e.m3u8_url||e.m3u8url||``}))}function b(e,t,n){let r=e.id||``,i=t||r,a=y(e.links,i),o=e.static,s=e.score===void 0||e.score===null?void 0:Number(e.score),c=e.duration===void 0||e.duration===null?void 0:Number(e.duration),l={id:i,mid:i,name:e.name||``,img_x:e.img_x||``,img_y:e.img_y||``,img_type:e.img_type||``,cat_id:e.cat_id||``,cat_name:e.cat_name||``,status:e.status||``,status_text:e.status_text||``,show_at:e.show_at||``,tags:[],update_status:e.update_status||``,description:e.description||``,language:e.language||``,director:e.director||``,issue_date:e.issue_date||``,actor:e.actor||``,up_user:e.up_user||``,money:e.money||``,source_username:e.source_username||``,task_id:e.task_id||``,file_status:e.file_status||``,score:Number.isFinite(s)?s:void 0,duration:Number.isFinite(c)?c:void 0,episode_cnt:a.length||0,links:[],static:{browse_cnt:Number(o?.browse_cnt||0),collect_cnt:Number(o?.collect_cnt||0),comment_cnt:Number(e.comment_count??o?.comment_cnt??0),like_cnt:Number(o?.like_cnt||0),share_cnt:Number(o?.share_cnt||0),dislike_cnt:Number(o?.dislike_cnt||0)},type:e.type??e.content_type,author:{avatar:``,user_id:``,nick_name:``,user_name:``,is_verified:!1}};if(a.length===0)return{seriesTitle:l.name,seriesList:[],contents:[{...l,links:[]}]};let u=a.map((e,t)=>{let r=e.id||`${i||`episode`}-${t+1}`,o=n(t+1),s=[e,...a.filter(t=>t.id!==e.id)];return{...l,id:r,mid:i,episode_name:o,links:s}});return{seriesTitle:l.name,seriesList:a,contents:u}}function x({params:y,initialContents:x}){let S=v(`components.pages.feedSeries`),C=v(`components.common.seriesEpisodes`),{locale:w,seriesId:T,episodeNum:E=`1`}=y,{userInfo:D,isLogin:O}=n(),{followIds:ie,setFollowIds:ae}=t(),k=p(()=>x??[],[x]),[A,j]=m({}),{data:oe}=o([s.CHANNEL],()=>r()),se=e(oe?.data),M=p(()=>`feed-series:${w||`default`}:${T}`,[w,T]),ce=p(()=>{let e=Number.parseInt(E??`1`,10);return Number.isNaN(e)?0:Math.max(0,e-1)},[E]),[N,le]=c(`${M}-active-index`,ce),[ue,P]=c(`${M}-user-interacted`,!1),[de,fe]=c(`${M}-series-title-toggle`,!1),[F,I]=m(!1),L=re(null),[R,z]=m(0),B=g(`div`,{ref:L,className:`fixed top-0 left-0 right-0 z-40`,children:g(d,{data:{list:se}})});ne(()=>{let e=L.current;if(!e)return;let t=()=>{z(Math.max(0,Math.round(e.getBoundingClientRect().height)))};t();let n=new ResizeObserver(()=>t());return n.observe(e),()=>{n.disconnect()}},[]);let{data:V,isFetching:H}=o(p(()=>[`feed-series-detail`,T],[T]),async()=>T?await i({id:T}):null,{enabled:!!T&&k.length===0}),U=p(()=>V?.data?.video,[V]),W=p(()=>U?b(U,T,e=>C(`episodeLabel`,{episode:e})):null,[U,T,C]),G=p(()=>k.length>0?k:W?.contents??[],[W?.contents,k]),K=p(()=>Object.keys(A).length===0?G:G.map(e=>{let t=A[e.id];return t?{...e,...t,static:t.static?{...e.static,...t.static}:e.static,author:t.author?{...e.author,...t.author}:e.author}:e}),[G,A]),q=W?.seriesTitle??(k[0]?.name||``),J=W?.seriesList??[],{data:Y}=o(p(()=>[`feed-series-interactions`,T,O],[O,T]),async()=>await l([T],1),{enabled:!!O&&!!T}),X=p(()=>Y?.interaction_list,[Y]);te(()=>{if(!X||X.length===0)return;let e=X.find(e=>e.content_id===T)||X[0];e&&j(t=>{let n=!1,r={...t};for(let t of G){let i=r[t.id],a={...i,is_liked:e.is_liked||!1,is_dislike:e.is_disliked??e.is_dislike??!1,is_collected:e.is_collected||!1,is_followed:e.is_followed||!1};(!i||i.is_liked!==a.is_liked||i.is_dislike!==a.is_dislike||i.is_collected!==a.is_collected||i.is_followed!==a.is_followed)&&(n=!0,r[t.id]=a)}return n?r:t})},[X,G,T]);let Z=f(({})=>{},[]),pe=f(()=>{a.getState().open()},[]),me=f((e,t)=>{let n=t.is_liked!==void 0||t.is_dislike!==void 0||t.is_collected!==void 0||t.is_followed!==void 0||t.static?.like_cnt!==void 0||t.static?.dislike_cnt!==void 0||t.static?.collect_cnt!==void 0||t.static?.comment_cnt!==void 0;j(r=>{if(!n)return{...r,[e]:{...r[e],...t,static:t.static?{...r[e]?.static,...t.static}:r[e]?.static,author:t.author?{...r[e]?.author,...t.author}:r[e]?.author}};let i=!1,a={...r};for(let e of G){let n=e.id,r=a[n],o=t.static?{...r?.static||{},...t.static}:r?.static,s=t.author?{...r?.author||{},...t.author}:r?.author,c={...r,...t,static:o,author:s},l=!1;if(t.is_liked!==void 0&&r?.is_liked!==t.is_liked&&(l=!0),t.is_dislike!==void 0&&r?.is_dislike!==t.is_dislike&&(l=!0),t.is_collected!==void 0&&r?.is_collected!==t.is_collected&&(l=!0),t.is_followed!==void 0&&r?.is_followed!==t.is_followed&&(l=!0),t.static){let e=r?.static||{};t.static.like_cnt!==void 0&&e.like_cnt!==t.static.like_cnt&&(l=!0),t.static.dislike_cnt!==void 0&&e.dislike_cnt!==t.static.dislike_cnt&&(l=!0),t.static.collect_cnt!==void 0&&e.collect_cnt!==t.static.collect_cnt&&(l=!0),t.static.comment_cnt!==void 0&&e.comment_cnt!==t.static.comment_cnt&&(l=!0)}if(t.author&&r?.author){let e=r.author,n=t.author;for(let t of Object.keys(n))if(e?.[t]!==n[t]){l=!0;break}}l&&(i=!0,a[n]=c)}return i?a:r})},[G]),Q=f((e,t)=>{le(e),Z({episodeId:T,episodeNum:e+1,mode:t===`jump`?`replace`:`push`})},[Z,T]),he=f(()=>({showSeriesButton:!0,seriesTitle:q,seriesText:`${N+1}/${J.length||K.length}`,onSeriesClick:()=>I(!0)}),[N,K.length,J.length,q]),$=p(()=>K[N]?.links?.[0]?.id||``,[N,K]);return T?H&&G.length===0?_(h,{children:[B,_(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:[S(`feedSeriesClient.episodeLoading`),`...`]})]}):!H&&G.length===0?_(h,{children:[B,g(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:S(`feedSeriesClient.noEpisodes`)})]}):_(h,{children:[B,g(u,{items:K,activeIndex:N,top:R,videoConfig:{loop:!1,autoNext:!0},userInteracted:ue,onUserInteracted:()=>P(!0),onActiveIndexChange:Q,onDataUpdate:me,getNavigationInfo:he,currentUserId:D.userId||void 0,followIds:ie,onFollowIdsChange:ae,commentContentId:T,onRequireLogin:pe,activeEpisodeId:$}),F&&g(ee,{mode:`selector`,variant:`sheet`,open:F,title:S(`feedSeriesClient.episodeSelectorTitle`),videoTitle:U?.name,updateStatus:U?.update_status,seriesList:J,activeEpisodeId:$,showEpisodeTitle:de,onToggleTitle:fe,onClose:()=>I(!1),onSelectEpisode:(e,t)=>{I(!1),Q(Math.max(0,t-1),`jump`)}})]}):_(h,{children:[B,_(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:[S(`feedSeriesClient.missingEpisode`),` `,`ID`]})]})}export{x as default};
2
+ "use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{useFollowIdsState as t}from"../../../store/modules/follow-ids-store.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{gContentGetAppChannels as r,gContentGetVideoDetail as i}from"../../../service/generated/client.mjs";import{useLoginModalStore as a}from"../../../store/modules/login-modal-store.mjs";import{useRequest as o}from"../../../hooks/query/use-query.mjs";import{queryKey as s}from"../../../constants/query-key.mjs";import{useKeepAliveState as c}from"../../common/keep-scroll-position/index.mjs";import{batchQueryContentInteractions as l}from"../../../hooks/use-content-operate.mjs";import u from"../../biz/basics/fullscreen-feed/runtime/client.mjs";import d from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{SeriesEpisodes as ee}from"../../common/series-episodes/index.mjs";import{useCallback as f,useEffect as te,useLayoutEffect as ne,useMemo as p,useRef as re,useState as m}from"react";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";import{useTranslations as v}from"next-intl";function y(e,t){return(e||[]).map((e,n)=>({id:e.id||`${t||`episode`}-${n+1}`,name:e.name||String(n+1),preview_m3u8_url:e.preview_m3u8_url||e.preview_m3u8url||``,m3u8_url:e.m3u8_url||e.m3u8url||``}))}function b(e,t,n){let r=e.id||``,i=t||r,a=y(e.links,i),o=e.static,s=e.score===void 0||e.score===null?void 0:Number(e.score),c=e.duration===void 0||e.duration===null?void 0:Number(e.duration),l={id:i,mid:i,name:e.name||``,img_x:e.img_x||``,img_y:e.img_y||``,img_type:e.img_type||``,cat_id:e.cat_id||``,cat_name:e.cat_name||``,status:e.status||``,status_text:e.status_text||``,show_at:e.show_at||``,tags:[],update_status:e.update_status||``,description:e.description||``,language:e.language||``,director:e.director||``,issue_date:e.issue_date||``,actor:e.actor||``,up_user:e.up_user||``,money:e.money||``,source_username:e.source_username||``,task_id:e.task_id||``,file_status:e.file_status||``,score:Number.isFinite(s)?s:void 0,duration:Number.isFinite(c)?c:void 0,episode_cnt:a.length||0,links:[],static:{browse_cnt:Number(o?.browse_cnt||0),collect_cnt:Number(o?.collect_cnt||0),comment_cnt:Number(e.comment_count??o?.comment_cnt??0),like_cnt:Number(o?.like_cnt||0),share_cnt:Number(o?.share_cnt||0),dislike_cnt:Number(o?.dislike_cnt||0)},type:e.type??e.content_type,author:{avatar:``,user_id:``,nick_name:``,user_name:``,is_verified:!1}};if(a.length===0)return{seriesTitle:l.name,seriesList:[],contents:[{...l,links:[]}]};let u=a.map((e,t)=>{let r=e.id||`${i||`episode`}-${t+1}`,o=n(t+1),s=[e,...a.filter(t=>t.id!==e.id)];return{...l,id:r,mid:i,episode_name:o,links:s}});return{seriesTitle:l.name,seriesList:a,contents:u}}function x({params:y,initialContents:x}){let S=v(`components.pages.feedSeries`),C=v(`components.common.seriesEpisodes`),{locale:w,seriesId:T,episodeNum:E=`1`}=y,{userInfo:D,isLogin:O}=n(),{followIds:ie,setFollowIds:ae}=t(),k=p(()=>x??[],[x]),[A,j]=m({}),{data:oe}=o([s.CHANNEL],()=>r()),se=e(oe?.data),M=p(()=>`feed-series:${w||`default`}:${T}`,[w,T]),ce=p(()=>{let e=Number.parseInt(E??`1`,10);return Number.isNaN(e)?0:Math.max(0,e-1)},[E]),[N,le]=c(`${M}-active-index`,ce),[ue,P]=c(`${M}-user-interacted`,!1),[de,fe]=c(`${M}-series-title-toggle`,!1),[F,I]=m(!1),L=re(null),[R,z]=m(0),B=g(`div`,{ref:L,className:`safe-top-offset fixed left-0 right-0 z-40`,children:g(d,{data:{list:se}})});ne(()=>{let e=L.current;if(!e)return;let t=()=>{z(Math.max(0,Math.round(e.getBoundingClientRect().height)))};t();let n=new ResizeObserver(()=>t());return n.observe(e),()=>{n.disconnect()}},[]);let{data:V,isFetching:H}=o(p(()=>[`feed-series-detail`,T],[T]),async()=>T?await i({id:T}):null,{enabled:!!T&&k.length===0}),U=p(()=>V?.data?.video,[V]),W=p(()=>U?b(U,T,e=>C(`episodeLabel`,{episode:e})):null,[U,T,C]),G=p(()=>k.length>0?k:W?.contents??[],[W?.contents,k]),K=p(()=>Object.keys(A).length===0?G:G.map(e=>{let t=A[e.id];return t?{...e,...t,static:t.static?{...e.static,...t.static}:e.static,author:t.author?{...e.author,...t.author}:e.author}:e}),[G,A]),q=W?.seriesTitle??(k[0]?.name||``),J=W?.seriesList??[],{data:Y}=o(p(()=>[`feed-series-interactions`,T,O],[O,T]),async()=>await l([T],1),{enabled:!!O&&!!T}),X=p(()=>Y?.interaction_list,[Y]);te(()=>{if(!X||X.length===0)return;let e=X.find(e=>e.content_id===T)||X[0];e&&j(t=>{let n=!1,r={...t};for(let t of G){let i=r[t.id],a={...i,is_liked:e.is_liked||!1,is_dislike:e.is_disliked??e.is_dislike??!1,is_collected:e.is_collected||!1,is_followed:e.is_followed||!1};(!i||i.is_liked!==a.is_liked||i.is_dislike!==a.is_dislike||i.is_collected!==a.is_collected||i.is_followed!==a.is_followed)&&(n=!0,r[t.id]=a)}return n?r:t})},[X,G,T]);let Z=f(({})=>{},[]),pe=f(()=>{a.getState().open()},[]),me=f((e,t)=>{let n=t.is_liked!==void 0||t.is_dislike!==void 0||t.is_collected!==void 0||t.is_followed!==void 0||t.static?.like_cnt!==void 0||t.static?.dislike_cnt!==void 0||t.static?.collect_cnt!==void 0||t.static?.comment_cnt!==void 0;j(r=>{if(!n)return{...r,[e]:{...r[e],...t,static:t.static?{...r[e]?.static,...t.static}:r[e]?.static,author:t.author?{...r[e]?.author,...t.author}:r[e]?.author}};let i=!1,a={...r};for(let e of G){let n=e.id,r=a[n],o=t.static?{...r?.static||{},...t.static}:r?.static,s=t.author?{...r?.author||{},...t.author}:r?.author,c={...r,...t,static:o,author:s},l=!1;if(t.is_liked!==void 0&&r?.is_liked!==t.is_liked&&(l=!0),t.is_dislike!==void 0&&r?.is_dislike!==t.is_dislike&&(l=!0),t.is_collected!==void 0&&r?.is_collected!==t.is_collected&&(l=!0),t.is_followed!==void 0&&r?.is_followed!==t.is_followed&&(l=!0),t.static){let e=r?.static||{};t.static.like_cnt!==void 0&&e.like_cnt!==t.static.like_cnt&&(l=!0),t.static.dislike_cnt!==void 0&&e.dislike_cnt!==t.static.dislike_cnt&&(l=!0),t.static.collect_cnt!==void 0&&e.collect_cnt!==t.static.collect_cnt&&(l=!0),t.static.comment_cnt!==void 0&&e.comment_cnt!==t.static.comment_cnt&&(l=!0)}if(t.author&&r?.author){let e=r.author,n=t.author;for(let t of Object.keys(n))if(e?.[t]!==n[t]){l=!0;break}}l&&(i=!0,a[n]=c)}return i?a:r})},[G]),Q=f((e,t)=>{le(e),Z({episodeId:T,episodeNum:e+1,mode:t===`jump`?`replace`:`push`})},[Z,T]),he=f(()=>({showSeriesButton:!0,seriesTitle:q,seriesText:`${N+1}/${J.length||K.length}`,onSeriesClick:()=>I(!0)}),[N,K.length,J.length,q]),$=p(()=>K[N]?.links?.[0]?.id||``,[N,K]);return T?H&&G.length===0?_(h,{children:[B,_(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:[S(`feedSeriesClient.episodeLoading`),`...`]})]}):!H&&G.length===0?_(h,{children:[B,g(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:S(`feedSeriesClient.noEpisodes`)})]}):_(h,{children:[B,g(u,{items:K,activeIndex:N,top:R,videoConfig:{loop:!1,autoNext:!0},userInteracted:ue,onUserInteracted:()=>P(!0),onActiveIndexChange:Q,onDataUpdate:me,getNavigationInfo:he,currentUserId:D.userId||void 0,followIds:ie,onFollowIdsChange:ae,commentContentId:T,onRequireLogin:pe,activeEpisodeId:$}),F&&g(ee,{mode:`selector`,variant:`sheet`,open:F,title:S(`feedSeriesClient.episodeSelectorTitle`),videoTitle:U?.name,updateStatus:U?.update_status,seriesList:J,activeEpisodeId:$,showEpisodeTitle:de,onToggleTitle:fe,onClose:()=>I(!1),onSelectEpisode:(e,t)=>{I(!1),Q(Math.max(0,t-1),`jump`)}})]}):_(h,{children:[B,_(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:[S(`feedSeriesClient.missingEpisode`),` `,`ID`]})]})}export{x as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetComments as n,gCommunityGetContentInfo as r,gCommunityGetContentList as i,gContentGetAppChannels as a}from"../../../service/generated/client.mjs";import{checkFollowStatus as o}from"../../../utils/follow-service.mjs";import{EmptyState as s}from"../../ui/empty.mjs";import{useRequest as c}from"../../../hooks/query/use-query.mjs";import{useBrowseReport as l}from"../../../hooks/use-browse-report.mjs";import{queryKey as u}from"../../../constants/query-key.mjs";import{useKeepAliveEffect as ee,useKeepAliveState as d}from"../../common/keep-scroll-position/index.mjs";import{apiCollectClick as f}from"../../../utils/api-collect.mjs";import{batchQueryContentInteractions as p}from"../../../hooks/use-content-operate.mjs";import m from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{DetailFollowAction as te}from"../../biz/business/detail/shared/detail-follow-action.mjs";import{DetailOperate as ne}from"../../biz/business/detail/shared/detail-operate.mjs";import{PostRecommendList as re}from"../../biz/business/detail/shared/post-recommend-list.mjs";import{DetailHero as h}from"../../biz/business/detail/shared/video-hero.mjs";import g from"../../biz/business/comment/comment-list.mjs";import ie from"../../common/info-card/card-header.mjs";import _ from"../../common/info-card/card-text.mjs";import{useSearchParams as ae}from"next/navigation";import{useCallback as oe,useEffect as v,useMemo as y}from"react";import{Fragment as b,jsx as x,jsxs as S}from"react/jsx-runtime";import{useTranslations as se}from"next-intl";function C(e){if(!e||typeof e!=`object`||!e.content_id)return null;let t=Array.isArray(e.medias)?e.medias:[],n=t.filter(e=>e&&e.is_video===!1),r=t.filter(e=>e&&e.is_video===!0),i=n.map(e=>e.media_url).filter(e=>typeof e==`string`&&e.length>0),a=(Array.isArray(e.images)?e.images:[]).map(e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.url||e.image_url||e.media_url)||``).filter(e=>typeof e==`string`&&e.length>0),o=i.length?i:a,s=r.map(e=>e.cover_image).find(e=>typeof e==`string`&&e.length>0),c=o[0]||``,l=e.cover_image||s||c||``,u=(Array.isArray(e.tags)?e.tags:[]).map(e=>{if(e&&typeof e==`object`){let t=e.id??e.name??``,n=e.name??e.id??``,r=e.group??``;return{id:String(t),name:String(n),group:String(r)}}return{id:String(e),name:String(e),group:``}}).filter(e=>!!(e.id||e.name));return{...t.length?{medias:t}:{},id:e.content_id,mid:e.content_id,name:e.title||``,cat_id:``,cat_name:``,status:String(e.status||`2`),status_text:``,create_time:e.create_time,show_at:e.create_time,position:``,img_type:``,img_x:l,img_y:l,img_width:``,img_height:``,preview_images:o,score:``,duration:``,is_more_link:`n`,update_status:`1`,description:e.content||``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:u,source_tags:u.map(e=>e.name).filter(Boolean).join(`,`),source_actor:[],links:[],money:``,up_user:e.user_id||e.author?.user_id||``,source_username:e.author?.nickname||e.author?.username||``,task_id:``,file_status:``,content_type:2,author:{...e.author,avatar:e.author.avatar_url},like:e.interaction?.is_liked||!1,dislike:e.interaction?.is_dislike||!1,collect:e.interaction?.is_collected||!1,is_followed:e.interaction?.is_followed||!1,static:{like_cnt:e.like_count||0,comment_cnt:e.comment_count||0,share_cnt:e.share_count||0,browse_cnt:e.view_count||0},info:{text:e.content||``,images:o}}}function ce(e){let t=Array.isArray(e.medias)?e.medias:[],n=t.filter(e=>e&&e.is_video===!1).map(e=>e.media_url).filter(e=>typeof e==`string`&&e.length>0),r=(Array.isArray(e.images)?e.images:[]).map(e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.url||e.image_url||e.media_url)||``).filter(e=>typeof e==`string`&&e.length>0),i=n.length?n:r,a=t.filter(e=>e&&e.is_video===!0).map(e=>e.cover_image).find(e=>typeof e==`string`&&e.length>0),o=e.cover_image||a||i[0]||``,s=(Array.isArray(e.tags)?e.tags:[]).map(e=>{if(e&&typeof e==`object`){let t=e.id??e.name??``,n=e.name??e.id??``,r=e.group??``;return{id:String(t),name:String(n),group:String(r)}}return{id:String(e),name:String(e),group:``}}).filter(e=>!!(e.id||e.name)),c=t.length?t:i.filter(Boolean).map(e=>({media_url:e,is_video:!1,cover_image:``}));return{...c.length?{medias:c}:{},id:e.content_id||``,mid:e.content_id||``,name:e.title||``,cat_id:``,cat_name:``,status:String(e.status||`2`),status_text:``,create_time:e.create_time,show_at:e.create_time,position:``,img_type:``,img_x:o,img_y:o,img_width:``,img_height:``,preview_images:i,score:``,duration:``,is_more_link:`n`,update_status:`1`,description:e.content||``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:s,source_tags:s.map(e=>e.name).filter(Boolean).join(`,`),source_actor:[],links:[],money:``,up_user:e.user_id||e.author?.user_id||``,source_username:e.author?.nickname||e.author?.username||``,task_id:``,file_status:``,content_type:2,author:{...e.author,avatar:e.author.avatar_url},like:e.interaction?.is_liked||!1,dislike:e.interaction?.is_dislike||!1,collect:e.interaction?.is_collected||!1,is_followed:e.interaction?.is_followed||!1,statics_cnt:{like_cnt:String(e.like_count||0),dislike_cnt:String(e.dislike_count||0),comment_cnt:String(e.comment_count||0),share_cnt:String(e.share_count||0),browse_cnt:String(e.view_count||0),collect_cnt:String(e.collect_count||0)}}}function w({detailId:f,initialInformation:w,initialRecommendList:le,initialCommentList:T,initialCommentTotal:E,initialCommentHasMore:D}){let O=se(`components.pages.postDetail`),k=ae(),{isLogin:ue,userInfo:de,userId:A}=t(),j=A||de?.userId||``;l({contentId:f,contentType:2,enabled:!!f,enableIntervalReport:!1,enableExitReport:!1});let{data:M}=c(y(()=>[`post-detail`,f],[f]),async()=>f?await r({content_id:f}):null,{enabled:!!f}),N=y(()=>{let e=M?.data?.data;return C(e)},[M?.data?.data]),fe=w??N??null,{data:P}=c(y(()=>[`post-detail-recommend`,f],[f]),async()=>f?await i({page:1,page_size:6,sort_by:`recommend`}):null,{enabled:!!f}),F=y(()=>(P?.data?.data?.contents??[]).filter(e=>e.content_id!==f).slice(0,4).map(e=>ce(e)),[f,P?.data?.data?.contents]),I=le??F??[],[L,R]=d(`detail-information-${f}`,fe),[z,B]=d(`detail-recommend-${f}`,I),[V,H]=d(`info-detail-comment-add-count-${f}`,0),U=y(()=>L?.content_type===0,[L?.content_type]),W=y(()=>[`post-detail-comments`,f,1,5],[5,f]),{data:G}=c(W,async()=>f?await n({content_id:f,page:1,page_size:5,sort_by:`latest`}):null,{enabled:!!f}),pe=y(()=>{if(T?.length)return T;let e=G?.data?.data?.comments??[];if(e.length>0)return e},[G?.data?.data?.comments,T]),K=y(()=>{if(typeof E==`number`)return E;if(G?.data?.data)return typeof G?.data?.data?.total==`number`?G.data.data.total:void 0},[G?.data?.data,E]),me=y(()=>{if(typeof D==`boolean`)return D;if(G?.data?.data)return G?.data?.data?.has_more??!1},[G?.data?.data,D]),[q,J]=d(`post-detail-comment-total-${f}`,typeof E==`number`?E:void 0);v(()=>{typeof K==`number`&&J(e=>typeof e==`number`?Math.max(e,K):K)},[K,J]);let he=y(()=>[`detail-interaction`,L?.id,L?.content_type],[L?.content_type,L?.id]),Y=L?.up_user||``,ge=!!(j&&Y&&j===Y),_e=y(()=>[`detail-follow-status`,j,Y],[j,Y]),{data:X}=c(he,async()=>!L?.id||typeof L.content_type!=`number`?null:await p([L.id],2),{enabled:!!L?.id}),{data:Z}=c(_e,async()=>!j||!Y?null:await o({app_id:0,follower_id:j,followee_ids:[Y]}),{enabled:!!ue&&!!j&&!!Y&&!ge});v(()=>{!L&&N&&R(N)},[L,N,R]),v(()=>{z.length===0&&F.length>0&&B(F)},[z.length,F,B]),v(()=>{if(!X?.interaction_list?.[0])return;let e=X.interaction_list[0];R(t=>{if(!t)return t;let n=t.static?.like_cnt,r=typeof n==`number`?n:Number(n||0),i=!!e.is_liked&&r===0;return{...t,like:e.is_liked||!1,dislike:e.is_disliked||!1,collect:e.is_collected||!1,static:i?{...t.static||{},like_cnt:1}:t.static}})},[X,R]),v(()=>{if(!Z?.data||!Y)return;let e=!!Z.data?.is_following_map?.[Y];R(t=>!t||t.is_followed===e?t:{...t,is_followed:e})},[Z?.data,Y,R]);let Q=oe(e=>{R(t=>t&&{...t,...e})},[R]);ee(()=>{L?.id&&L.id},[L?.id],`detail-page-report-${f}`),v(()=>{!L||typeof window>`u`||window.sensors?.track?.(`detail_page_view`,{object_id:L.id||f,author_id:L.up_user,object_type:L.content_type,object_category:L.content_type,object_tags:L.tags?.map(e=>e.name),block_id:``,page_source:window.location?.pathname||``})},[f,L]),v(()=>{H(0)},[L?.id,H]);let ve=y(()=>(typeof q==`number`?q:typeof K==`number`?K:0)+V,[V,q,K]);v(()=>{k?.get(`tab`)===`comment`&&(typeof window>`u`||window.requestAnimationFrame(()=>{document.getElementById(`detail-comments`)?.scrollIntoView({behavior:`smooth`,block:`start`})}))},[L?.id,k]);let $=L?.status===`2`,{data:ye}=c([u.CHANNEL],()=>a());return S(`div`,{className:`w-full min-h-screen bg-bg2 text-text1 pt-11`,children:[x(`div`,{className:`fixed top-0 left-0 right-0 z-40`,children:x(m,{data:{list:e(ye?.data)}})}),x(`div`,{className:`mx-auto w-full max-w-[840px] pb-6`,children:S(b,{children:[L&&!$&&x(s,{type:`no-content`,text:O(`postDetailClient.postOffline`)}),L&&$&&S(b,{children:[U&&x(h,{information:L,isVideo:!0}),S(`article`,{className:`w-full`,children:[x(ie,{infoData:L,rightChild:x(te,{information:L,onUpdate:Q})}),x(_,{infoData:L,isEllipsis:!1}),!U&&x(`div`,{className:`mt-[12px]`,children:x(h,{information:L,isVideo:!1})})]}),x(ne,{information:L,onUpdate:Q}),S(`div`,{id:`detail-comments`,className:`w-full border-t-[8px] border-bg2 mt-[12px]`,children:[S(`div`,{className:`w-full px-[16px] h-[40px] flex items-center justify-between border-b-[1px] border-line1`,children:[x(`p`,{className:`text-[16px] text-text1 font-bold`,children:O(`postDetailClient.comment`)}),S(`p`,{className:`text-[12px] text-text3`,children:[ve,O(`postDetailClient.reactions`)]})]}),x(g,{listQueryKey:W,contentId:L.id,information:L,isShow:!1,isClickLoad:!0,initialComments:pe,initialTotal:K,initialHasMore:me,addCommentCount:()=>{H(e=>e+1)},onTotalChange:e=>{J(t=>typeof t==`number`?Math.max(t,e):e)}})]}),z.length>0&&x(re,{information:L,initRecommendList:z})]}),!L&&x(s,{type:`no-content`,text:O(`postDetailClient.postDeleted`)})]})})]})}export{w as default};
2
+ "use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetComments as n,gCommunityGetContentInfo as r,gCommunityGetContentList as i,gContentGetAppChannels as a}from"../../../service/generated/client.mjs";import{checkFollowStatus as o}from"../../../utils/follow-service.mjs";import{EmptyState as s}from"../../ui/empty.mjs";import{useRequest as c}from"../../../hooks/query/use-query.mjs";import{useBrowseReport as l}from"../../../hooks/use-browse-report.mjs";import{queryKey as u}from"../../../constants/query-key.mjs";import{useKeepAliveEffect as ee,useKeepAliveState as d}from"../../common/keep-scroll-position/index.mjs";import{apiCollectClick as f}from"../../../utils/api-collect.mjs";import{batchQueryContentInteractions as p}from"../../../hooks/use-content-operate.mjs";import m from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{DetailFollowAction as te}from"../../biz/business/detail/shared/detail-follow-action.mjs";import{DetailOperate as ne}from"../../biz/business/detail/shared/detail-operate.mjs";import{PostRecommendList as re}from"../../biz/business/detail/shared/post-recommend-list.mjs";import{DetailHero as h}from"../../biz/business/detail/shared/video-hero.mjs";import g from"../../biz/business/comment/comment-list.mjs";import ie from"../../common/info-card/card-header.mjs";import _ from"../../common/info-card/card-text.mjs";import{useSearchParams as ae}from"next/navigation";import{useCallback as oe,useEffect as v,useMemo as y}from"react";import{Fragment as b,jsx as x,jsxs as S}from"react/jsx-runtime";import{useTranslations as se}from"next-intl";function C(e){if(!e||typeof e!=`object`||!e.content_id)return null;let t=Array.isArray(e.medias)?e.medias:[],n=t.filter(e=>e&&e.is_video===!1),r=t.filter(e=>e&&e.is_video===!0),i=n.map(e=>e.media_url).filter(e=>typeof e==`string`&&e.length>0),a=(Array.isArray(e.images)?e.images:[]).map(e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.url||e.image_url||e.media_url)||``).filter(e=>typeof e==`string`&&e.length>0),o=i.length?i:a,s=r.map(e=>e.cover_image).find(e=>typeof e==`string`&&e.length>0),c=o[0]||``,l=e.cover_image||s||c||``,u=(Array.isArray(e.tags)?e.tags:[]).map(e=>{if(e&&typeof e==`object`){let t=e.id??e.name??``,n=e.name??e.id??``,r=e.group??``;return{id:String(t),name:String(n),group:String(r)}}return{id:String(e),name:String(e),group:``}}).filter(e=>!!(e.id||e.name));return{...t.length?{medias:t}:{},id:e.content_id,mid:e.content_id,name:e.title||``,cat_id:``,cat_name:``,status:String(e.status||`2`),status_text:``,create_time:e.create_time,show_at:e.create_time,position:``,img_type:``,img_x:l,img_y:l,img_width:``,img_height:``,preview_images:o,score:``,duration:``,is_more_link:`n`,update_status:`1`,description:e.content||``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:u,source_tags:u.map(e=>e.name).filter(Boolean).join(`,`),source_actor:[],links:[],money:``,up_user:e.user_id||e.author?.user_id||``,source_username:e.author?.nickname||e.author?.username||``,task_id:``,file_status:``,content_type:2,author:{...e.author,avatar:e.author.avatar_url},like:e.interaction?.is_liked||!1,dislike:e.interaction?.is_dislike||!1,collect:e.interaction?.is_collected||!1,is_followed:e.interaction?.is_followed||!1,static:{like_cnt:e.like_count||0,comment_cnt:e.comment_count||0,share_cnt:e.share_count||0,browse_cnt:e.view_count||0},info:{text:e.content||``,images:o}}}function ce(e){let t=Array.isArray(e.medias)?e.medias:[],n=t.filter(e=>e&&e.is_video===!1).map(e=>e.media_url).filter(e=>typeof e==`string`&&e.length>0),r=(Array.isArray(e.images)?e.images:[]).map(e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.url||e.image_url||e.media_url)||``).filter(e=>typeof e==`string`&&e.length>0),i=n.length?n:r,a=t.filter(e=>e&&e.is_video===!0).map(e=>e.cover_image).find(e=>typeof e==`string`&&e.length>0),o=e.cover_image||a||i[0]||``,s=(Array.isArray(e.tags)?e.tags:[]).map(e=>{if(e&&typeof e==`object`){let t=e.id??e.name??``,n=e.name??e.id??``,r=e.group??``;return{id:String(t),name:String(n),group:String(r)}}return{id:String(e),name:String(e),group:``}}).filter(e=>!!(e.id||e.name)),c=t.length?t:i.filter(Boolean).map(e=>({media_url:e,is_video:!1,cover_image:``}));return{...c.length?{medias:c}:{},id:e.content_id||``,mid:e.content_id||``,name:e.title||``,cat_id:``,cat_name:``,status:String(e.status||`2`),status_text:``,create_time:e.create_time,show_at:e.create_time,position:``,img_type:``,img_x:o,img_y:o,img_width:``,img_height:``,preview_images:i,score:``,duration:``,is_more_link:`n`,update_status:`1`,description:e.content||``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:s,source_tags:s.map(e=>e.name).filter(Boolean).join(`,`),source_actor:[],links:[],money:``,up_user:e.user_id||e.author?.user_id||``,source_username:e.author?.nickname||e.author?.username||``,task_id:``,file_status:``,content_type:2,author:{...e.author,avatar:e.author.avatar_url},like:e.interaction?.is_liked||!1,dislike:e.interaction?.is_dislike||!1,collect:e.interaction?.is_collected||!1,is_followed:e.interaction?.is_followed||!1,statics_cnt:{like_cnt:String(e.like_count||0),dislike_cnt:String(e.dislike_count||0),comment_cnt:String(e.comment_count||0),share_cnt:String(e.share_count||0),browse_cnt:String(e.view_count||0),collect_cnt:String(e.collect_count||0)}}}function w({detailId:f,initialInformation:w,initialRecommendList:le,initialCommentList:T,initialCommentTotal:E,initialCommentHasMore:D}){let O=se(`components.pages.postDetail`),k=ae(),{isLogin:ue,userInfo:de,userId:A}=t(),j=A||de?.userId||``;l({contentId:f,contentType:2,enabled:!!f,enableIntervalReport:!1,enableExitReport:!1});let{data:M}=c(y(()=>[`post-detail`,f],[f]),async()=>f?await r({content_id:f}):null,{enabled:!!f}),N=y(()=>{let e=M?.data?.data;return C(e)},[M?.data?.data]),fe=w??N??null,{data:P}=c(y(()=>[`post-detail-recommend`,f],[f]),async()=>f?await i({page:1,page_size:6,sort_by:`recommend`}):null,{enabled:!!f}),F=y(()=>(P?.data?.data?.contents??[]).filter(e=>e.content_id!==f).slice(0,4).map(e=>ce(e)),[f,P?.data?.data?.contents]),I=le??F??[],[L,R]=d(`detail-information-${f}`,fe),[z,B]=d(`detail-recommend-${f}`,I),[V,H]=d(`info-detail-comment-add-count-${f}`,0),U=y(()=>L?.content_type===0,[L?.content_type]),W=y(()=>[`post-detail-comments`,f,1,5],[5,f]),{data:G}=c(W,async()=>f?await n({content_id:f,page:1,page_size:5,sort_by:`latest`}):null,{enabled:!!f}),pe=y(()=>{if(T?.length)return T;let e=G?.data?.data?.comments??[];if(e.length>0)return e},[G?.data?.data?.comments,T]),K=y(()=>{if(typeof E==`number`)return E;if(G?.data?.data)return typeof G?.data?.data?.total==`number`?G.data.data.total:void 0},[G?.data?.data,E]),me=y(()=>{if(typeof D==`boolean`)return D;if(G?.data?.data)return G?.data?.data?.has_more??!1},[G?.data?.data,D]),[q,J]=d(`post-detail-comment-total-${f}`,typeof E==`number`?E:void 0);v(()=>{typeof K==`number`&&J(e=>typeof e==`number`?Math.max(e,K):K)},[K,J]);let he=y(()=>[`detail-interaction`,L?.id,L?.content_type],[L?.content_type,L?.id]),Y=L?.up_user||``,ge=!!(j&&Y&&j===Y),_e=y(()=>[`detail-follow-status`,j,Y],[j,Y]),{data:X}=c(he,async()=>!L?.id||typeof L.content_type!=`number`?null:await p([L.id],2),{enabled:!!L?.id}),{data:Z}=c(_e,async()=>!j||!Y?null:await o({app_id:0,follower_id:j,followee_ids:[Y]}),{enabled:!!ue&&!!j&&!!Y&&!ge});v(()=>{!L&&N&&R(N)},[L,N,R]),v(()=>{z.length===0&&F.length>0&&B(F)},[z.length,F,B]),v(()=>{if(!X?.interaction_list?.[0])return;let e=X.interaction_list[0];R(t=>{if(!t)return t;let n=t.static?.like_cnt,r=typeof n==`number`?n:Number(n||0),i=!!e.is_liked&&r===0;return{...t,like:e.is_liked||!1,dislike:e.is_disliked||!1,collect:e.is_collected||!1,static:i?{...t.static||{},like_cnt:1}:t.static}})},[X,R]),v(()=>{if(!Z?.data||!Y)return;let e=!!Z.data?.is_following_map?.[Y];R(t=>!t||t.is_followed===e?t:{...t,is_followed:e})},[Z?.data,Y,R]);let Q=oe(e=>{R(t=>t&&{...t,...e})},[R]);ee(()=>{L?.id&&L.id},[L?.id],`detail-page-report-${f}`),v(()=>{!L||typeof window>`u`||window.sensors?.track?.(`detail_page_view`,{object_id:L.id||f,author_id:L.up_user,object_type:L.content_type,object_category:L.content_type,object_tags:L.tags?.map(e=>e.name),block_id:``,page_source:window.location?.pathname||``})},[f,L]),v(()=>{H(0)},[L?.id,H]);let ve=y(()=>(typeof q==`number`?q:typeof K==`number`?K:0)+V,[V,q,K]);v(()=>{k?.get(`tab`)===`comment`&&(typeof window>`u`||window.requestAnimationFrame(()=>{document.getElementById(`detail-comments`)?.scrollIntoView({behavior:`smooth`,block:`start`})}))},[L?.id,k]);let $=L?.status===`2`,{data:ye}=c([u.CHANNEL],()=>a());return S(`div`,{className:`w-full min-h-screen bg-bg2 text-text1 pt-11`,children:[x(`div`,{className:`safe-top-offset fixed left-0 right-0 z-40`,children:x(m,{data:{list:e(ye?.data)}})}),x(`div`,{className:`mx-auto w-full max-w-[840px] pb-6`,children:S(b,{children:[L&&!$&&x(s,{type:`no-content`,text:O(`postDetailClient.postOffline`)}),L&&$&&S(b,{children:[U&&x(h,{information:L,isVideo:!0}),S(`article`,{className:`w-full`,children:[x(ie,{infoData:L,rightChild:x(te,{information:L,onUpdate:Q})}),x(_,{infoData:L,isEllipsis:!1}),!U&&x(`div`,{className:`mt-[12px]`,children:x(h,{information:L,isVideo:!1})})]}),x(ne,{information:L,onUpdate:Q}),S(`div`,{id:`detail-comments`,className:`w-full border-t-[8px] border-bg2 mt-[12px]`,children:[S(`div`,{className:`w-full px-[16px] h-[40px] flex items-center justify-between border-b-[1px] border-line1`,children:[x(`p`,{className:`text-[16px] text-text1 font-bold`,children:O(`postDetailClient.comment`)}),S(`p`,{className:`text-[12px] text-text3`,children:[ve,O(`postDetailClient.reactions`)]})]}),x(g,{listQueryKey:W,contentId:L.id,information:L,isShow:!1,isClickLoad:!0,initialComments:pe,initialTotal:K,initialHasMore:me,addCommentCount:()=>{H(e=>e+1)},onTotalChange:e=>{J(t=>typeof t==`number`?Math.max(t,e):e)}})]}),z.length>0&&x(re,{information:L,initRecommendList:z})]}),!L&&x(s,{type:`no-content`,text:O(`postDetailClient.postDeleted`)})]})})]})}export{w as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../ui/box.mjs";import{Popover as t,PopoverContent as n,PopoverTrigger as r}from"../../ui/popover.mjs";import{SEARCH_RESULT_SORT_OPTIONS as i}from"./shared.mjs";import{memo as a,useState as o}from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";function l({className:e}){return c(`svg`,{viewBox:`0 0 22 15`,fill:`currentColor`,"aria-hidden":!0,className:e,children:[s(`rect`,{x:`0`,y:`0`,width:`13.5`,height:`2`,rx:`1`}),s(`rect`,{x:`0`,y:`6.5`,width:`13.5`,height:`2`,rx:`1`}),s(`rect`,{x:`0`,y:`13`,width:`13.5`,height:`2`,rx:`1`}),s(`path`,{d:`M15 1C15 0.447715 15.4477 0 16 0C16.5523 0 17 0.447715 17 1V11.2969L18.2412 9.84961C18.6006 9.43028 19.2311 9.38179 19.6504 9.74121C20.0697 10.1006 20.1182 10.7311 19.7588 11.1504L16.7588 14.6504C16.4865 14.9681 16.0458 15.0826 15.6533 14.9375C15.2608 14.7923 15 14.4185 15 14V1Z`})]})}const u=a(({searchType:a,onChange:u,tabList:d,sort:f,onSortChange:p})=>{let[m,h]=o(!1);return s(e,{as:`nav`,className:`sticky top-0 z-40 no-vw-x-16 pb-[16px] pt-[12px]`,children:c(e,{className:`flex h-[24px] items-center justify-between`,children:[s(e,{className:`flex items-center gap-[10px]`,children:d.map(e=>s(`button`,{type:`button`,className:`text-[16px] leading-[24px] transition-colors ${a===e.value?`font-medium text-white`:`font-normal text-white/80`}`,onClick:()=>{a!==e.value&&u(e.value)},children:e.label},e.value))}),c(t,{open:m,onOpenChange:h,children:[s(r,{"aria-label":`排序筛选`,className:`flex size-[24px] items-center justify-center`,children:s(l,{className:`h-[15px] w-[20px] text-white/40`})}),s(n,{side:`bottom`,align:`end`,sideOffset:8,className:`w-[132px] border border-white/10 bg-[#10071E]/95 p-[8px] backdrop-blur-[18px]`,children:s(e,{className:`flex flex-col gap-[4px]`,children:i.map(e=>s(`button`,{type:`button`,className:`rounded-[8px] px-[12px] py-[8px] text-left text-[14px] leading-[20px] ${e.value===f?`bg-white/10 text-white`:`text-white/70`}`,onClick:()=>{p(e.value),h(!1)},children:e.label},e.value))})})]})]})})});u.displayName=`SearchTab`;export{u as SearchTab};
2
+ "use client";import{Box as e}from"../../ui/box.mjs";import{Popover as t,PopoverContent as n,PopoverTrigger as r}from"../../ui/popover.mjs";import{SEARCH_RESULT_SORT_OPTIONS as i}from"./shared.mjs";import{memo as a,useState as o}from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";function l({className:e}){return c(`svg`,{viewBox:`0 0 22 15`,fill:`currentColor`,"aria-hidden":!0,className:e,children:[s(`rect`,{x:`0`,y:`0`,width:`13.5`,height:`2`,rx:`1`}),s(`rect`,{x:`0`,y:`6.5`,width:`13.5`,height:`2`,rx:`1`}),s(`rect`,{x:`0`,y:`13`,width:`13.5`,height:`2`,rx:`1`}),s(`path`,{d:`M15 1C15 0.447715 15.4477 0 16 0C16.5523 0 17 0.447715 17 1V11.2969L18.2412 9.84961C18.6006 9.43028 19.2311 9.38179 19.6504 9.74121C20.0697 10.1006 20.1182 10.7311 19.7588 11.1504L16.7588 14.6504C16.4865 14.9681 16.0458 15.0826 15.6533 14.9375C15.2608 14.7923 15 14.4185 15 14V1Z`})]})}const u=a(({searchType:a,onChange:u,tabList:d,sort:f,onSortChange:p})=>{let[m,h]=o(!1);return s(e,{as:`nav`,className:`safe-top-offset sticky z-40 no-vw-x-16 pb-[16px] pt-[12px]`,children:c(e,{className:`flex h-[24px] items-center justify-between`,children:[s(e,{className:`flex items-center gap-[10px]`,children:d.map(e=>s(`button`,{type:`button`,className:`text-[16px] leading-[24px] transition-colors ${a===e.value?`font-medium text-white`:`font-normal text-white/80`}`,onClick:()=>{a!==e.value&&u(e.value)},children:e.label},e.value))}),c(t,{open:m,onOpenChange:h,children:[s(r,{"aria-label":`排序筛选`,className:`flex size-[24px] items-center justify-center`,children:s(l,{className:`h-[15px] w-[20px] text-white/40`})}),s(n,{side:`bottom`,align:`end`,sideOffset:8,className:`w-[132px] border border-white/10 bg-[#10071E]/95 p-[8px] backdrop-blur-[18px]`,children:s(e,{className:`flex flex-col gap-[4px]`,children:i.map(e=>s(`button`,{type:`button`,className:`rounded-[8px] px-[12px] py-[8px] text-left text-[14px] leading-[20px] ${e.value===f?`bg-white/10 text-white`:`text-white/70`}`,onClick:()=>{p(e.value),h(!1)},children:e.label},e.value))})})]})]})})});u.displayName=`SearchTab`;export{u as SearchTab};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../utils/cn.mjs";import{pContentGetNewstVideoList as t,pContentGetTopRatedVideoList as n}from"../../../service/generated/client.mjs";import{pContentGetNewstVideoListKey as r,pContentGetTopRatedVideoListKey as i}from"../../../service/generated/tanstack.mjs";import{useRouter as a}from"../../../utils/use-compatible-router.mjs";import{Button as o}from"../../ui/button.mjs";import{Box as s}from"../../ui/box.mjs";import{InfiniteScroll as c}from"../../ui/infinite-scroll.mjs";import{Text as l}from"../../ui/text.mjs";import{usePaginated as u}from"../../../hooks/query/use-query.mjs";import d from"../../../assets/icons/left_arrow.mjs";import{getNextVideoListPageParam as f,resolveNextCursor as p}from"./types.mjs";import{VideoListRecommendItem as m}from"./video-list-recommend-item.mjs";import{VideoListSkeleton as h}from"./video-list-skeleton.mjs";import{useEffect as g,useMemo as _,useState as v}from"react";import{jsx as y,jsxs as b}from"react/jsx-runtime";const x=[];function S({title:S=`列表页`,tags:C=x}){let w=a(),[T,E]=v(`hot`),D=_(()=>({page_size:10,tags:C.length?C:void 0}),[C]),{data:O,fetchNextPage:k,hasNextPage:A,isPending:j,isFetching:M}=u({key:_(()=>T===`hot`?i(D):r(D),[D,T]),queryFn:async e=>{let r={page_size:10,cursor:e||void 0,tags:C.length?C:void 0},i=(T===`hot`?await n(r):await t(r)).data,a=Array.isArray(i?.videos)?i.videos:[];return{list:a,nextCursor:a.length<10?``:p(i)}},getNextPageParam:f,initialPageParam:``,options:{staleTime:0,refetchOnMount:`always`,refetchOnWindowFocus:!1,refetchOnReconnect:!1}}),N=_(()=>O?.pages?.flatMap(e=>e.list)??[],[O?.pages]),P=(O?.pages?.length??0)>0,F=_(()=>P?A??!1:!0,[P,A]),I=N.length===0&&(!P||j||M);g(()=>{typeof window>`u`||window.scrollTo({top:0,behavior:`auto`})},[T]);function L(){w.back()}let R=_(()=>N.map(e=>{let t=e.id??e.mid??``;return y(m,{item:e,href:`/video/${t}/${e.name??``}`},t)}),[N]);return I?y(h,{}):b(s,{as:`main`,className:`min-h-[100dvh] bg-[linear-gradient(180deg,#160320_0%,#2a0a56_100%)] text-white`,children:[b(s,{className:`sticky top-0 z-20 bg-[linear-gradient(180deg,rgba(22,3,32,0.98)_0%,rgba(22,3,32,0.92)_100%)] no-vw-x-16 pb-[12px] pt-[10px] backdrop-blur-[16px]`,children:[b(s,{as:`header`,className:`flex items-center justify-between`,children:[y(o,{type:`button`,variant:`ghost`,size:`icon-sm`,onClick:L,className:`h-[24px] w-[24px] rounded-none p-0 text-white hover:bg-transparent`,children:y(d,{className:`h-[16px] w-[16px]`})}),y(l,{as:`h1`,className:`min-w-0 flex-1 truncate px-[16px] text-center text-[18px] font-medium leading-[22px] text-white`,children:S}),y(s,{className:`h-[24px] w-[24px] shrink-0 opacity-0`,"aria-hidden":!0})]}),b(s,{as:`nav`,className:`mt-[12px] flex gap-[14px]`,children:[y(o,{type:`button`,variant:`ghost`,onClick:()=>E(`hot`),className:e(`h-[28px] min-w-[64px] rounded-[100px] px-[16px] text-[14px] font-normal leading-[20px] text-white`,T===`hot`?`bg-[linear-gradient(90deg,#9756e3_0%,#6c43ee_100%)] shadow-[0_8px_20px_rgba(122,76,255,0.35)] hover:bg-transparent`:`bg-white/20 hover:bg-white/25`),children:`最热`}),y(o,{type:`button`,variant:`ghost`,onClick:()=>E(`latest`),className:e(`h-[28px] min-w-[64px] rounded-[100px] px-[16px] text-[14px] font-normal leading-[20px] text-white`,T===`latest`?`bg-[linear-gradient(90deg,#9756e3_0%,#6c43ee_100%)] shadow-[0_8px_20px_rgba(122,76,255,0.35)] hover:bg-transparent`:`bg-white/20 hover:bg-white/25`),children:`最新`})]})]}),y(c,{loadMore:()=>k().then(()=>void 0),hasMore:F,noMoreText:`没有更多了`,threshold:300,className:`no-vw-x-16 pb-[24px]`,children:y(s,{as:`section`,className:`flex flex-col gap-[16px]`,children:R})},T)]})}export{S as default};
2
+ "use client";import{cn as e}from"../../../utils/cn.mjs";import{pContentGetNewstVideoList as t,pContentGetTopRatedVideoList as n}from"../../../service/generated/client.mjs";import{pContentGetNewstVideoListKey as r,pContentGetTopRatedVideoListKey as i}from"../../../service/generated/tanstack.mjs";import{useRouter as a}from"../../../utils/use-compatible-router.mjs";import{Button as o}from"../../ui/button.mjs";import{Box as s}from"../../ui/box.mjs";import{InfiniteScroll as c}from"../../ui/infinite-scroll.mjs";import{Text as l}from"../../ui/text.mjs";import{usePaginated as u}from"../../../hooks/query/use-query.mjs";import d from"../../../assets/icons/left_arrow.mjs";import{getNextVideoListPageParam as f,resolveNextCursor as p}from"./types.mjs";import{VideoListRecommendItem as m}from"./video-list-recommend-item.mjs";import{VideoListSkeleton as h}from"./video-list-skeleton.mjs";import{useEffect as g,useMemo as _,useState as v}from"react";import{jsx as y,jsxs as b}from"react/jsx-runtime";const x=[];function S({title:S=`列表页`,tags:C=x}){let w=a(),[T,E]=v(`hot`),D=_(()=>({page_size:10,tags:C.length?C:void 0}),[C]),{data:O,fetchNextPage:k,hasNextPage:A,isPending:j,isFetching:M}=u({key:_(()=>T===`hot`?i(D):r(D),[D,T]),queryFn:async e=>{let r={page_size:10,cursor:e||void 0,tags:C.length?C:void 0},i=(T===`hot`?await n(r):await t(r)).data,a=Array.isArray(i?.videos)?i.videos:[];return{list:a,nextCursor:a.length<10?``:p(i)}},getNextPageParam:f,initialPageParam:``,options:{staleTime:0,refetchOnMount:`always`,refetchOnWindowFocus:!1,refetchOnReconnect:!1}}),N=_(()=>O?.pages?.flatMap(e=>e.list)??[],[O?.pages]),P=(O?.pages?.length??0)>0,F=_(()=>P?A??!1:!0,[P,A]),I=N.length===0&&(!P||j||M);g(()=>{typeof window>`u`||window.scrollTo({top:0,behavior:`auto`})},[T]);function L(){w.back()}let R=_(()=>N.map(e=>{let t=e.id??e.mid??``;return y(m,{item:e,href:`/video/${t}/${e.name??``}`},t)}),[N]);return I?y(h,{}):b(s,{as:`main`,className:`min-h-[100dvh] bg-[linear-gradient(180deg,#160320_0%,#2a0a56_100%)] text-white`,children:[b(s,{className:`safe-top-offset sticky z-20 bg-[linear-gradient(180deg,rgba(22,3,32,0.98)_0%,rgba(22,3,32,0.92)_100%)] no-vw-x-16 pb-[12px] pt-[10px] backdrop-blur-[16px]`,children:[b(s,{as:`header`,className:`flex items-center justify-between`,children:[y(o,{type:`button`,variant:`ghost`,size:`icon-sm`,onClick:L,className:`h-[24px] w-[24px] rounded-none p-0 text-white hover:bg-transparent`,children:y(d,{className:`h-[16px] w-[16px]`})}),y(l,{as:`h1`,className:`min-w-0 flex-1 truncate px-[16px] text-center text-[18px] font-medium leading-[22px] text-white`,children:S}),y(s,{className:`h-[24px] w-[24px] shrink-0 opacity-0`,"aria-hidden":!0})]}),b(s,{as:`nav`,className:`mt-[16px] flex gap-[14px]`,children:[y(o,{type:`button`,variant:`ghost`,onClick:()=>E(`hot`),className:e(`h-[28px] min-w-[64px] rounded-[100px] px-[16px] text-[14px] font-normal leading-[20px] text-white`,T===`hot`?`bg-[linear-gradient(90deg,#9756e3_0%,#6c43ee_100%)] shadow-[0_8px_20px_rgba(122,76,255,0.35)] hover:bg-transparent`:`bg-white/20 hover:bg-white/25`),children:`最热`}),y(o,{type:`button`,variant:`ghost`,onClick:()=>E(`latest`),className:e(`h-[28px] min-w-[64px] rounded-[100px] px-[16px] text-[14px] font-normal leading-[20px] text-white`,T===`latest`?`bg-[linear-gradient(90deg,#9756e3_0%,#6c43ee_100%)] shadow-[0_8px_20px_rgba(122,76,255,0.35)] hover:bg-transparent`:`bg-white/20 hover:bg-white/25`),children:`最新`})]})]}),y(c,{loadMore:()=>k().then(()=>void 0),hasMore:F,noMoreText:`没有更多了`,threshold:300,className:`no-vw-x-16 pb-[24px]`,children:y(s,{as:`section`,className:`flex flex-col gap-[12px]`,children:R})},T)]})}export{S as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../ui/box.mjs";import{Skeleton as t}from"../../ui/skeleton.mjs";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({count:i=3}){return r(e,{as:`main`,className:`min-h-[100dvh] bg-[linear-gradient(180deg,#160320_0%,#2a0a56_100%)] text-white`,children:[r(e,{className:`sticky top-0 z-20 bg-[linear-gradient(180deg,rgba(22,3,32,0.98)_0%,rgba(22,3,32,0.92)_100%)] no-vw-x-16 pb-[12px] pt-[10px] backdrop-blur-[16px]`,children:[r(e,{as:`header`,className:`flex items-center justify-between`,children:[n(t,{className:`h-[24px] w-[24px] rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`back-icon-skeleton`}),n(e,{className:`flex flex-1 justify-center px-[16px]`,children:n(t,{className:`h-[22px] w-[96px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-list-title-skeleton`})}),n(e,{className:`h-[24px] w-[24px] shrink-0`})]}),r(e,{as:`nav`,className:`mt-[12px] flex gap-[14px]`,children:[n(t,{className:`h-[28px] w-[64px] rounded-[100px] !bg-[rgba(255,255,255,0.16)]`,"aria-label":`hot-tab-skeleton`}),n(t,{className:`h-[28px] w-[64px] rounded-[100px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`latest-tab-skeleton`})]})]}),n(e,{className:`flex flex-col gap-[16px] no-vw-x-16 pb-[24px]`,children:Array.from({length:i}).map((i,a)=>r(e,{className:`rounded-[16px] border-[0.5px] border-[#ff1eff] bg-[rgba(255,255,255,0.1)] p-4`,children:[n(t,{className:`aspect-[326/207] w-full rounded-[8px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-cover-skeleton`}),r(e,{className:`mt-2 flex flex-col gap-2`,children:[r(e,{className:`flex items-center justify-between gap-3`,children:[n(t,{className:`h-[14px] min-h-[14px] flex-1 rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-title-skeleton`}),n(t,{className:`h-5 w-9 shrink-0 rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-score-skeleton`})]}),r(e,{className:`flex flex-wrap gap-[6px]`,children:[n(t,{className:`h-[18px] w-14 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-1`}),n(t,{className:`h-[18px] w-9 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-2`}),n(t,{className:`h-[18px] w-12 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-3`}),n(t,{className:`h-[18px] w-16 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-4`})]})]})]},`video-list-skeleton-${a}`))})]})}export{i as VideoListSkeleton};
2
+ "use client";import{Box as e}from"../../ui/box.mjs";import{Skeleton as t}from"../../ui/skeleton.mjs";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({count:i=3}){return r(e,{as:`main`,className:`min-h-[100dvh] bg-[linear-gradient(180deg,#160320_0%,#2a0a56_100%)] text-white`,children:[r(e,{className:`safe-top-offset sticky z-20 bg-[linear-gradient(180deg,rgba(22,3,32,0.98)_0%,rgba(22,3,32,0.92)_100%)] no-vw-x-16 pb-[12px] pt-[16px] backdrop-blur-[16px]`,children:[r(e,{as:`header`,className:`flex items-center justify-between`,children:[n(t,{className:`h-[24px] w-[24px] rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`back-icon-skeleton`}),n(e,{className:`flex flex-1 justify-center px-[16px]`,children:n(t,{className:`h-[22px] w-[96px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-list-title-skeleton`})}),n(e,{className:`h-[24px] w-[24px] shrink-0`})]}),r(e,{as:`nav`,className:`mt-[16px] flex gap-[14px]`,children:[n(t,{className:`h-[28px] w-[64px] rounded-[100px] !bg-[rgba(255,255,255,0.16)]`,"aria-label":`hot-tab-skeleton`}),n(t,{className:`h-[28px] w-[64px] rounded-[100px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`latest-tab-skeleton`})]})]}),n(e,{className:`flex flex-col gap-[12px] no-vw-x-16 pb-[24px]`,children:Array.from({length:i}).map((i,a)=>r(e,{className:`rounded-[16px] border-[0.5px] border-[#ff1eff] bg-[rgba(255,255,255,0.1)] p-4`,children:[n(t,{className:`aspect-[326/207] w-full rounded-[8px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-cover-skeleton`}),r(e,{className:`mt-2 flex flex-col gap-2`,children:[r(e,{className:`flex items-center justify-between gap-3`,children:[n(t,{className:`h-[14px] min-h-[14px] flex-1 rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-title-skeleton`}),n(t,{className:`h-5 w-9 shrink-0 rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-score-skeleton`})]}),r(e,{className:`flex flex-wrap gap-[6px]`,children:[n(t,{className:`h-[18px] w-14 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-1`}),n(t,{className:`h-[18px] w-9 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-2`}),n(t,{className:`h-[18px] w-12 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-3`}),n(t,{className:`h-[18px] w-16 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-4`})]})]})]},`video-list-skeleton-${a}`))})]})}export{i as VideoListSkeleton};
@@ -6,7 +6,7 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
6
6
  //#region components/ui/badge.d.ts
7
7
  /** badgeVariants 工具定义。 */
8
8
  declare const badgeVariants: (props?: ({
9
- variant?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
9
+ variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
10
10
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
11
11
  /** Badge 组件。 */
12
12
  declare function Badge({
@@ -8,7 +8,7 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
8
8
  //#region components/ui/button-group.d.ts
9
9
  /** buttonGroupVariants 工具定义。 */
10
10
  declare const buttonGroupVariants: (props?: ({
11
- orientation?: "vertical" | "horizontal" | null | undefined;
11
+ orientation?: "horizontal" | "vertical" | null | undefined;
12
12
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
13
13
  /** ButtonGroupText 组件属性。 */
14
14
  type ButtonGroupTextProps = useRender.ComponentProps<'div'>;
@@ -7,8 +7,8 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
7
7
  //#region components/ui/button.d.ts
8
8
  /** buttonVariants 工具定义。 */
9
9
  declare const buttonVariants: (props?: ({
10
- variant?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
11
- size?: "icon" | "default" | "xs" | "sm" | "icon-xs" | "icon-sm" | "lg" | "icon-lg" | null | undefined;
10
+ variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
11
+ size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
12
12
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
13
13
  /** Button 组件属性。 */
14
14
  type ButtonProps = Button.Props & VariantProps<typeof buttonVariants> & {
@@ -34,7 +34,7 @@ type EmptyStateProps = React.ComponentProps<'div'> & {
34
34
  };
35
35
  /** emptyMediaVariants 工具定义。 */
36
36
  declare const emptyMediaVariants: (props?: ({
37
- variant?: "icon" | "default" | null | undefined;
37
+ variant?: "default" | "icon" | null | undefined;
38
38
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
39
39
  /** EmptyMedia 组件。 */
40
40
  declare function EmptyMedia({
@@ -51,7 +51,7 @@ declare function FieldGroup({
51
51
  }: FieldGroupProps): react_jsx_runtime0.JSX.Element;
52
52
  /** fieldVariants 工具定义。 */
53
53
  declare const fieldVariants: (props?: ({
54
- orientation?: "vertical" | "horizontal" | "responsive" | null | undefined;
54
+ orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
55
55
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
56
56
  /** Field 组件。 */
57
57
  declare function Field({
@@ -82,7 +82,7 @@ declare function Item({
82
82
  }: ItemProps): React.ReactElement;
83
83
  /** itemMediaVariants 工具定义。 */
84
84
  declare const itemMediaVariants: (props?: ({
85
- variant?: "icon" | "default" | "image" | null | undefined;
85
+ variant?: "default" | "icon" | "image" | null | undefined;
86
86
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
87
87
  /** ItemMedia 组件。 */
88
88
  declare function ItemMedia({
@@ -6,10 +6,10 @@ type InspectorFieldOption<T> = Omit<T, 'type'>;
6
6
  declare const stringInspectorFieldSchema: z.ZodObject<{
7
7
  type: z.ZodLiteral<"string">;
8
8
  fieldType: z.ZodOptional<z.ZodEnum<{
9
+ select: "select";
9
10
  input: "input";
10
11
  textarea: "textarea";
11
12
  color: "color";
12
- select: "select";
13
13
  }>>;
14
14
  defaultValue: z.ZodOptional<z.ZodString>;
15
15
  label: z.ZodOptional<z.ZodString>;
@@ -68,10 +68,10 @@ type ObjectInspectorFieldOption = InspectorFieldOption<z.infer<typeof objectInsp
68
68
  declare const componentInspectorFieldMetaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
69
69
  type: z.ZodLiteral<"string">;
70
70
  fieldType: z.ZodOptional<z.ZodEnum<{
71
+ select: "select";
71
72
  input: "input";
72
73
  textarea: "textarea";
73
74
  color: "color";
74
- select: "select";
75
75
  }>>;
76
76
  defaultValue: z.ZodOptional<z.ZodString>;
77
77
  label: z.ZodOptional<z.ZodString>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@funhub/platform",
3
3
  "type": "module",
4
- "version": "0.2.33",
4
+ "version": "0.2.35",
5
5
  "private": false,
6
6
  "sideEffects": [
7
7
  "**/*.css"
package/theme.css CHANGED
@@ -1,4 +1,5 @@
1
1
  :root {
2
+ --safe-top-offset: 0px;
2
3
  --tab-bar-height: 56px;
3
4
  --tab-bar-top-gap: 8px;
4
5
  --tab-bar-safe-area-bottom: max(env(safe-area-inset-bottom, 0px), 8px);
@@ -223,6 +224,14 @@
223
224
  --sidebar-ring: var(--color-brand-primary);
224
225
  }
225
226
 
227
+ .safe-top-shell {
228
+ padding-top: var(--safe-top-offset);
229
+ }
230
+
231
+ .safe-top-offset {
232
+ top: var(--safe-top-offset) !important;
233
+ }
234
+
226
235
  .no-vw-x-16 {
227
236
  /* px-to-viewport-ignore-next */
228
237
  padding-left: 16px;