@funhub/platform 0.2.23 → 0.2.24

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 (32) hide show
  1. package/dist/components/biz/business/detail/shared/detail-operate.mjs +1 -1
  2. package/dist/components/biz/business/detail/video-detail-info/client.mjs +1 -1
  3. package/dist/components/biz/business/detail/video-detail-recommend/client.mjs +1 -1
  4. package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
  5. package/dist/components/biz/business/image-text-recommend/client.mjs +1 -1
  6. package/dist/components/biz/business/large-feature-grid/card-item.mjs +1 -1
  7. package/dist/components/biz/business/large-feature-grid/client.mjs +1 -1
  8. package/dist/components/biz/business/large-feature-grid/schema.mjs +1 -1
  9. package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +1 -1
  10. package/dist/components/biz/business/profile/profile-main/shell.mjs +1 -1
  11. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/video-waterfall.mjs +1 -1
  12. package/dist/components/biz/business/search-history/client.mjs +1 -1
  13. package/dist/components/biz/business/search-input/client.mjs +1 -1
  14. package/dist/components/common/background-preview-modal/background-preview-modal.mjs +1 -1
  15. package/dist/components/common/series-episodes/index.mjs +1 -1
  16. package/dist/components/common/video-player/style.module.mjs +4 -0
  17. package/dist/components/pages/search/hot-recommend.mjs +1 -1
  18. package/dist/components/pages/search/hot-search.mjs +1 -1
  19. package/dist/components/pages/search/page-client.mjs +1 -1
  20. package/dist/components/pages/search/search-result/search-all.mjs +1 -1
  21. package/dist/components/pages/search/top-header.mjs +1 -1
  22. package/dist/components/pages/search-result/search-all.mjs +1 -1
  23. package/dist/components/pages/search-result/search-tab.mjs +1 -1
  24. package/dist/components/pages/search-result/search-user.mjs +1 -1
  25. package/dist/components/pages/search-result/top-header.mjs +1 -1
  26. package/dist/components/pages/video-list/video-list-client.mjs +1 -1
  27. package/dist/components/pages/video-list/video-list-recommend-item.mjs +1 -1
  28. package/dist/components/pages/video-list/video-list-skeleton.mjs +1 -1
  29. package/dist/utils/http.mjs +1 -1
  30. package/dist/utils/schema/inspector.d.mts +2 -2
  31. package/package.json +1 -1
  32. package/theme.css +10 -10
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{formatCompactCount as e}from"../../../../../utils/common.mjs";import{useUserStore as t}from"../../../../../store/modules/user-store.mjs";import{pCommunityMoveCollectionContent as n}from"../../../../../service/generated/client.mjs";import{trackPageClick as r}from"../../../../../utils/tracking.mjs";import{Box as i}from"../../../../ui/box.mjs";import{Text as a}from"../../../../ui/text.mjs";import{useLoginModalStore as o}from"../../../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as s}from"../../../../../hooks/query/use-query.mjs";import c from"../../../../common/interaction-animations.module.mjs";import l from"../../../../common/collection-popup/index.mjs";import u from"../../../../common/share-popup/share-popup.mjs";import{useInteractionAnimation as ee}from"../../../../../hooks/use-interaction-animation.mjs";import{useContentOperate as d}from"../../../../../hooks/use-content-operate.mjs";import te from"../../../../../assets/icons/detail/check-ok.mjs";import{toast as f}from"sonner";import{usePathname as ne,useSearchParams as re}from"next/navigation";import{useCallback as p,useEffect 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 ie}from"next-intl";function ae({className:e}){return v(`svg`,{viewBox:`0 0 24 21`,fill:`none`,className:e,children:v(`path`,{d:`M21.2121 6.89394C21.2121 4.25805 19.0753 2.12121 16.4394 2.12121C14.8261 2.12121 13.3991 2.92114 12.5336 4.15024C12.3349 4.4321 12.0115 4.59976 11.6667 4.59976C11.3218 4.59976 10.9984 4.4321 10.7997 4.15024C9.93421 2.92114 8.50725 2.12121 6.89394 2.12121C4.25804 2.12121 2.12121 4.25805 2.12121 6.89394C2.12121 9.40321 3.62133 11.9321 5.72562 14.0572C7.68391 16.0348 10.0088 17.5016 11.6667 18.137C13.3246 17.5016 15.6494 16.0348 17.6077 14.0572C19.712 11.9321 21.2121 9.40321 21.2121 6.89394ZM23.3333 6.89394C23.3333 10.2178 21.3863 13.2566 19.1158 15.5497C16.8347 17.8533 14.0447 19.5915 12.0012 20.2706C11.7841 20.3428 11.5493 20.3428 11.3321 20.2706C9.28858 19.5915 6.4986 17.8533 4.21757 15.5497C1.94701 13.2566 0 10.2178 0 6.89394C0 3.08654 3.08652 0 6.89394 0C8.74758 0 10.4287 0.733771 11.6667 1.92235C12.9047 0.733771 14.5858 0 16.4394 0C20.2468 0 23.3333 3.08654 23.3333 6.89394Z`,fill:`currentColor`})})}function oe({className:e}){return v(`svg`,{viewBox:`0 0 24 21`,fill:`none`,className:e,children:v(`path`,{d:`M23.3333 6.89394C23.3333 10.2178 21.3863 13.2566 19.1158 15.5497C16.8347 17.8533 14.0447 19.5915 12.0012 20.2706C11.7841 20.3428 11.5493 20.3428 11.3321 20.2706C9.28858 19.5915 6.4986 17.8533 4.21757 15.5497C1.94701 13.2566 0 10.2178 0 6.89394C0 3.08654 3.08652 0 6.89394 0C8.74758 0 10.4287 0.733771 11.6667 1.92235C12.9047 0.733771 14.5858 0 16.4394 0C20.2468 0 23.3333 3.08654 23.3333 6.89394Z`,fill:`currentColor`})})}function se({className:e}){return v(`svg`,{viewBox:`0 0 24 23`,fill:`none`,className:e,children:v(`path`,{d:`M11.6636 2.65236e-06C12.0673 -0.000898131 12.437 0.227705 12.6165 0.589326L15.6522 6.70732L22.4258 7.69539C22.8246 7.75364 23.1564 8.03302 23.2813 8.41625C23.4062 8.79955 23.3021 9.22064 23.0141 9.50272L18.0882 14.3261L19.2585 21.0292C19.3281 21.4283 19.1639 21.8323 18.836 22.0701C18.5077 22.3079 18.072 22.3385 17.7143 22.1478L11.6657 18.9226L5.61917 22.1478C5.26131 22.3386 4.82579 22.3082 4.49748 22.0701C4.16923 21.832 4.00582 21.4276 4.07595 21.0282L5.25356 14.3271L0.319396 9.50376C0.0308898 9.2217 -0.0728394 8.79987 0.0521809 8.41625C0.177201 8.03266 0.509448 7.7533 0.90872 7.69539L7.71753 6.70732L10.7139 0.593469L10.7884 0.464005C10.9835 0.177012 11.3103 0.000910321 11.6636 2.65236e-06ZM9.37675 8.14386C9.22265 8.45841 8.92279 8.6767 8.57614 8.72697L3.33644 9.48615L7.1365 13.2013C7.38683 13.446 7.50059 13.799 7.43996 14.1438L6.54096 19.2509L11.1675 16.7859L11.2866 16.731C11.5714 16.6219 11.8921 16.6405 12.1649 16.7859L16.7946 19.253L15.9028 14.1427C15.8428 13.7988 15.9559 13.4467 16.2052 13.2023L20.0001 9.48511L14.7967 8.72697C14.4525 8.67672 14.155 8.46057 14.0002 8.14904L11.6719 3.45827L9.37675 8.14386Z`,fill:`currentColor`})})}function b({className:e}){return v(`svg`,{viewBox:`0 0 24 23`,fill:`none`,className:e,children:v(`path`,{d:`M11.6636 2.65236e-06C12.0673 -0.000898131 12.437 0.227705 12.6165 0.589326L15.6522 6.70732L22.4258 7.69539C22.8246 7.75364 23.1564 8.03302 23.2813 8.41625C23.4062 8.79955 23.3021 9.22064 23.0141 9.50272L18.0882 14.3261L19.2585 21.0292C19.3281 21.4283 19.1639 21.8323 18.836 22.0701C18.5077 22.3079 18.072 22.3385 17.7143 22.1478L11.6657 18.9226L5.61917 22.1478C5.26131 22.3386 4.82579 22.3082 4.49748 22.0701C4.16923 21.832 4.00582 21.4276 4.07595 21.0282L5.25356 14.3271L0.319396 9.50376C0.0308898 9.2217 -0.0728394 8.79987 0.0521809 8.41625C0.177201 8.03266 0.509448 7.7533 0.90872 7.69539L7.71753 6.70732L10.7139 0.593469L10.7884 0.464005C10.9835 0.177012 11.3103 0.000910321 11.6636 2.65236e-06Z`,fill:`currentColor`})})}function x({className:e}){return v(`svg`,{viewBox:`0 0 24 24`,fill:`none`,className:e,children:v(`path`,{d:`M11.7968 0.0846035C12.212 -0.0873746 12.69 0.00771373 13.0078 0.325488L23.0077 10.3254C23.22 10.5377 23.3375 10.8271 23.3332 11.1273C23.3288 11.4272 23.2029 11.7123 22.9849 11.9183L12.985 21.3627C12.6625 21.6673 12.1901 21.7509 11.7827 21.5754C11.3753 21.3998 11.1111 20.9991 11.1111 20.5554V15.6216C8.22953 15.9648 6.08879 17.6095 4.58982 19.3391C3.74967 20.3085 3.13167 21.2821 2.7246 22.0148C2.52173 22.38 2.37311 22.6823 2.27646 22.8894C2.22828 22.9927 2.19344 23.0722 2.17121 23.1238C2.16011 23.1495 2.15201 23.169 2.14734 23.1802C2.1451 23.1856 2.14372 23.1893 2.143 23.191C1.94502 23.6852 1.42342 23.9699 0.900603 23.8692C0.377728 23.7684 0 23.3102 0 22.7776C0 17.9877 0.696606 13.8374 2.60632 10.8582C4.41013 8.04448 7.21019 6.40446 11.1111 6.14686V1.11107C11.1111 0.661725 11.3817 0.256615 11.7968 0.0846035ZM13.3333 7.22216C13.3333 7.8358 12.8358 8.33326 12.2222 8.33326C8.37436 8.33326 5.97849 9.71592 4.47697 12.0583C3.44269 13.6719 2.79177 15.8074 2.46852 18.4168C2.60946 18.2401 2.75584 18.061 2.91014 17.8829C4.8356 15.6613 7.89407 13.3332 12.2222 13.3332C12.8358 13.3332 13.3333 13.8307 13.3333 14.4443V17.9773L20.6282 11.0882L13.3333 3.79335V7.22216Z`,fill:`currentColor`})})}function S({mode:S=`renderer`,information:E,onUpdate:D}){let O=S===`editor`||!E?.id||E.id.startsWith(`preview-`),k=`${ne()}?${re()?.toString()||``}`,A=g(k),j=ie(`components.biz.business.detail`),M=ee(),N=h(()=>w(E),[E]),P=h(()=>T(E),[E]),[F,I]=_(!1),[L,R]=_(!1),z=g(0),B=g(0),V=t(e=>e.userId),H=t(e=>e.isLogin),U=s();m(()=>{A.current!==k&&(u.clear(),A.current=k)},[k]),m(()=>()=>{u.clear()},[]);let W=p(()=>{V&&(U([`user-profile`,`mine`,V,`user-like-video`]),U([`user-profile`,`mine`,V,`user-like-post`]),U([`user-profile`,`mine`,V,`user-collect-video`,V]),U([`user-profile`,`mine`,V,`user-collect-post`,V]))},[U,V]),{likeAnimation:G,handleLikeOperate:K,handleDefaultCollectionOperate:q,handleShareOperate:J}=d({id:E.id,isLike:E.like||!1,isDislike:E.dislike||!1,isCollect:!!E.collect||!1,likeCnt:w(E),dislikeCnt:C(E.static?.dislike_cnt),contentType:1,prefetchDefaultCollection:!O,animationClasses:{like:c.likeShakeAnimation,dislike:c.dislikeShakeAnimation}}),Y=p(e=>{D?.({...e})},[D]),X=p(async()=>{if(F)return;if(!H){o.getState().open();return}let e=Date.now();if(e-z.current<300)return;z.current=e,r(`page_video_detail`,`详情页`,null,`detail_like`,{object_id:E.id}),I(!0);let t=E.like||!1,n=E.dislike||!1,i=w(E),a=C(E.static?.dislike_cnt),s=!t,c=Math.max(0,i+(s?1:-1)),l=s?!1:n,u=s&&n?Math.max(0,a-1):a;Y({like:s,dislike:l,like_count:c,static:{...E.static,dislike_cnt:u}});try{let e=await K();if(!e){Y({like:t,dislike:n,like_count:i,static:{...E.static,dislike_cnt:a}});return}Y({like:e.isLike,dislike:e.isDislike??l,like_count:e.likeCnt,static:{...E.static,dislike_cnt:e.dislikeCnt??u}}),W(),f.success(e.isLike?j(`detailOperate.likeSuccess`):j(`detailOperate.unlikeSuccess`)),window.sensors?.track?.(`detail_like_click`,{object_id:E.id,action:e.isLike?`点赞`:`取消点赞`,like_count:e.likeCnt})}catch(e){console.error(`点赞操作失败:`,e),f.error(j(`detailOperate.likeFailed`))}finally{I(!1)}},[K,E,W,F,H,j,Y]),Z=h(()=>E.id,[E.id]),ce=p(()=>{r(`page_video_detail`,`详情页`,null,`detail_share`,{object_id:E.id}),J(({isCollect:e})=>{Y({collect:e})},Z)},[J,Z,Y,E.id]),Q=p(()=>{l.show({mode:`select`,onCollect:async e=>{try{let t=await n({new_collection_id:e,content_id:E.id});if(t.code!==0)throw Error(t.message||j(`detailOperate.collectFailed`));Y({collect:!0}),W(),f.success(j(`detailOperate.modifyCollectionSuccess`))}catch(e){console.error(`修改收藏夹失败:`,e),f.error(j(`detailOperate.collectFailed`))}}})},[E.id,W,j,Y]),$=p(e=>{let t=e||j(`detailOperate.defaultCollection`);f.custom(e=>y(`div`,{className:`flex items-center justify-between gap-[16px] px-[16px] py-[12px] rounded-[12px] bg-black text-white shadow-lg min-w-[280px]`,children:[y(`div`,{className:`flex items-center gap-[10px]`,children:[v(`div`,{className:`w-[24px] h-[24px] rounded-full bg-white flex items-center justify-center`,children:v(te,{className:`w-[14px] h-[14px]`})}),y(`div`,{className:`flex items-center gap-[6px]`,children:[v(`span`,{className:`text-[14px] leading-[20px]`,children:j(`detailOperate.collectAdded`)}),v(`span`,{className:`text-[14px] leading-[20px] font-semibold`,children:t})]})]}),v(`button`,{type:`button`,className:`text-[14px] text-theme5 font-semibold`,onClick:()=>{f.dismiss(e),Q()},children:j(`detailOperate.modifyCollection`)})]}))},[Q,j]),le=p(async()=>{if(L)return;if(!H){o.getState().open();return}let e=Date.now();if(e-B.current<300)return;B.current=e,r(`page_video_detail`,`详情页`,null,`detail_collect`,{object_id:E.id});let t=E.collect||!1,n=!t,i=T(E),a=Math.max(0,i+(n?1:-1));R(!0),Y({collect:n,collect_count:a}),n&&M.trigger(c.likeShakeAnimation),window.sensors?.track?.(`detail_fav_click`,{object_id:E.id,action:t?`取消收藏`:`收藏`});try{let e=await q({currentCollect:t,onUpdate:({isCollect:e})=>{Y({collect:e})}});if(!e?.success){Y({collect:t,collect_count:i}),f.error(e?.message||j(`detailOperate.collectFailed`));return}Y({collect:e.isCollect??n,collect_count:a}),W(),window.sensors?.track?.(`detail_fav_click`,{object_id:E.id,action:e.isCollect?`收藏`:`取消收藏`}),!t&&e.isCollect&&$(e.collectionTitle),t&&e.isCollect===!1&&f.success(j(`detailOperate.uncollectSuccess`))}catch(e){Y({collect:t,collect_count:i}),console.error(`收藏操作失败:`,e),f.error(e?.message||j(`detailOperate.collectFailed`))}finally{R(!1)}},[M,q,E,W,L,H,$,j,Y]);return y(i,{className:`mt-[16px] flex h-[52px] w-full items-center justify-between px-[48px] ${O?`pointer-events-none`:``}`,children:[y(i,{className:`flex h-full w-[43px] flex-col items-center justify-center gap-[2px] ${F?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:X,children:[E.like?v(oe,{className:`size-[28px] text-[#FF5D8F] ${G.animationClass}`}):v(ae,{className:`size-[28px] text-white`}),v(a,{className:`text-center text-[14px] leading-[22px] ${E.like?`text-[#FF5D8F]`:`text-white`}`,children:N>0?e(N):j(`detailOperate.like`)})]}),y(i,{className:`flex h-full w-[43px] flex-col items-center justify-center gap-[2px] ${L?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:le,children:[E.collect?v(b,{className:`size-[28px] text-[#FFC039] ${M.animationClass}`}):v(se,{className:`size-[28px] text-white`}),v(a,{className:`text-center text-[14px] leading-[22px] ${E.collect?`text-[#FFC039]`:`text-white`}`,children:P>0?e(P):j(`detailOperate.collection`)})]}),y(i,{className:`flex h-full w-[43px] flex-col items-center justify-center gap-[2px] cursor-pointer`,onClick:ce,children:[v(x,{className:`size-[28px] text-white`}),v(a,{className:`text-center text-[14px] leading-[22px] text-white`,children:j(`detailOperate.share`)})]})]})}function C(e){if(e==null)return 0;if(typeof e==`number`)return e;let t=Number(e);return Number.isNaN(t)?0:t}function w(e){return C(e.like_count)}function T(e){return C(e.collect_count)}export{S as DetailOperate};
2
+ "use client";import{formatCompactCount as e}from"../../../../../utils/common.mjs";import{useUserStore as t}from"../../../../../store/modules/user-store.mjs";import{pCommunityMoveCollectionContent as n}from"../../../../../service/generated/client.mjs";import{trackPageClick as r}from"../../../../../utils/tracking.mjs";import{Box as i}from"../../../../ui/box.mjs";import{Text as a}from"../../../../ui/text.mjs";import{useLoginModalStore as o}from"../../../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as s}from"../../../../../hooks/query/use-query.mjs";import c from"../../../../common/interaction-animations.module.mjs";import l from"../../../../common/collection-popup/index.mjs";import u from"../../../../common/share-popup/share-popup.mjs";import{useInteractionAnimation as ee}from"../../../../../hooks/use-interaction-animation.mjs";import{useContentOperate as d}from"../../../../../hooks/use-content-operate.mjs";import te from"../../../../../assets/icons/detail/check-ok.mjs";import{toast as f}from"sonner";import{usePathname as ne,useSearchParams as re}from"next/navigation";import{useCallback as p,useEffect 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 ie}from"next-intl";function ae({className:e}){return v(`svg`,{viewBox:`0 0 24 21`,fill:`none`,className:e,children:v(`path`,{d:`M21.2121 6.89394C21.2121 4.25805 19.0753 2.12121 16.4394 2.12121C14.8261 2.12121 13.3991 2.92114 12.5336 4.15024C12.3349 4.4321 12.0115 4.59976 11.6667 4.59976C11.3218 4.59976 10.9984 4.4321 10.7997 4.15024C9.93421 2.92114 8.50725 2.12121 6.89394 2.12121C4.25804 2.12121 2.12121 4.25805 2.12121 6.89394C2.12121 9.40321 3.62133 11.9321 5.72562 14.0572C7.68391 16.0348 10.0088 17.5016 11.6667 18.137C13.3246 17.5016 15.6494 16.0348 17.6077 14.0572C19.712 11.9321 21.2121 9.40321 21.2121 6.89394ZM23.3333 6.89394C23.3333 10.2178 21.3863 13.2566 19.1158 15.5497C16.8347 17.8533 14.0447 19.5915 12.0012 20.2706C11.7841 20.3428 11.5493 20.3428 11.3321 20.2706C9.28858 19.5915 6.4986 17.8533 4.21757 15.5497C1.94701 13.2566 0 10.2178 0 6.89394C0 3.08654 3.08652 0 6.89394 0C8.74758 0 10.4287 0.733771 11.6667 1.92235C12.9047 0.733771 14.5858 0 16.4394 0C20.2468 0 23.3333 3.08654 23.3333 6.89394Z`,fill:`currentColor`})})}function oe({className:e}){return v(`svg`,{viewBox:`0 0 24 21`,fill:`none`,className:e,children:v(`path`,{d:`M23.3333 6.89394C23.3333 10.2178 21.3863 13.2566 19.1158 15.5497C16.8347 17.8533 14.0447 19.5915 12.0012 20.2706C11.7841 20.3428 11.5493 20.3428 11.3321 20.2706C9.28858 19.5915 6.4986 17.8533 4.21757 15.5497C1.94701 13.2566 0 10.2178 0 6.89394C0 3.08654 3.08652 0 6.89394 0C8.74758 0 10.4287 0.733771 11.6667 1.92235C12.9047 0.733771 14.5858 0 16.4394 0C20.2468 0 23.3333 3.08654 23.3333 6.89394Z`,fill:`currentColor`})})}function se({className:e}){return v(`svg`,{viewBox:`0 0 24 23`,fill:`none`,className:e,children:v(`path`,{d:`M11.6636 2.65236e-06C12.0673 -0.000898131 12.437 0.227705 12.6165 0.589326L15.6522 6.70732L22.4258 7.69539C22.8246 7.75364 23.1564 8.03302 23.2813 8.41625C23.4062 8.79955 23.3021 9.22064 23.0141 9.50272L18.0882 14.3261L19.2585 21.0292C19.3281 21.4283 19.1639 21.8323 18.836 22.0701C18.5077 22.3079 18.072 22.3385 17.7143 22.1478L11.6657 18.9226L5.61917 22.1478C5.26131 22.3386 4.82579 22.3082 4.49748 22.0701C4.16923 21.832 4.00582 21.4276 4.07595 21.0282L5.25356 14.3271L0.319396 9.50376C0.0308898 9.2217 -0.0728394 8.79987 0.0521809 8.41625C0.177201 8.03266 0.509448 7.7533 0.90872 7.69539L7.71753 6.70732L10.7139 0.593469L10.7884 0.464005C10.9835 0.177012 11.3103 0.000910321 11.6636 2.65236e-06ZM9.37675 8.14386C9.22265 8.45841 8.92279 8.6767 8.57614 8.72697L3.33644 9.48615L7.1365 13.2013C7.38683 13.446 7.50059 13.799 7.43996 14.1438L6.54096 19.2509L11.1675 16.7859L11.2866 16.731C11.5714 16.6219 11.8921 16.6405 12.1649 16.7859L16.7946 19.253L15.9028 14.1427C15.8428 13.7988 15.9559 13.4467 16.2052 13.2023L20.0001 9.48511L14.7967 8.72697C14.4525 8.67672 14.155 8.46057 14.0002 8.14904L11.6719 3.45827L9.37675 8.14386Z`,fill:`currentColor`})})}function b({className:e}){return v(`svg`,{viewBox:`0 0 24 23`,fill:`none`,className:e,children:v(`path`,{d:`M11.6636 2.65236e-06C12.0673 -0.000898131 12.437 0.227705 12.6165 0.589326L15.6522 6.70732L22.4258 7.69539C22.8246 7.75364 23.1564 8.03302 23.2813 8.41625C23.4062 8.79955 23.3021 9.22064 23.0141 9.50272L18.0882 14.3261L19.2585 21.0292C19.3281 21.4283 19.1639 21.8323 18.836 22.0701C18.5077 22.3079 18.072 22.3385 17.7143 22.1478L11.6657 18.9226L5.61917 22.1478C5.26131 22.3386 4.82579 22.3082 4.49748 22.0701C4.16923 21.832 4.00582 21.4276 4.07595 21.0282L5.25356 14.3271L0.319396 9.50376C0.0308898 9.2217 -0.0728394 8.79987 0.0521809 8.41625C0.177201 8.03266 0.509448 7.7533 0.90872 7.69539L7.71753 6.70732L10.7139 0.593469L10.7884 0.464005C10.9835 0.177012 11.3103 0.000910321 11.6636 2.65236e-06Z`,fill:`currentColor`})})}function x({className:e}){return v(`svg`,{viewBox:`0 0 24 24`,fill:`none`,className:e,children:v(`path`,{d:`M11.7968 0.0846035C12.212 -0.0873746 12.69 0.00771373 13.0078 0.325488L23.0077 10.3254C23.22 10.5377 23.3375 10.8271 23.3332 11.1273C23.3288 11.4272 23.2029 11.7123 22.9849 11.9183L12.985 21.3627C12.6625 21.6673 12.1901 21.7509 11.7827 21.5754C11.3753 21.3998 11.1111 20.9991 11.1111 20.5554V15.6216C8.22953 15.9648 6.08879 17.6095 4.58982 19.3391C3.74967 20.3085 3.13167 21.2821 2.7246 22.0148C2.52173 22.38 2.37311 22.6823 2.27646 22.8894C2.22828 22.9927 2.19344 23.0722 2.17121 23.1238C2.16011 23.1495 2.15201 23.169 2.14734 23.1802C2.1451 23.1856 2.14372 23.1893 2.143 23.191C1.94502 23.6852 1.42342 23.9699 0.900603 23.8692C0.377728 23.7684 0 23.3102 0 22.7776C0 17.9877 0.696606 13.8374 2.60632 10.8582C4.41013 8.04448 7.21019 6.40446 11.1111 6.14686V1.11107C11.1111 0.661725 11.3817 0.256615 11.7968 0.0846035ZM13.3333 7.22216C13.3333 7.8358 12.8358 8.33326 12.2222 8.33326C8.37436 8.33326 5.97849 9.71592 4.47697 12.0583C3.44269 13.6719 2.79177 15.8074 2.46852 18.4168C2.60946 18.2401 2.75584 18.061 2.91014 17.8829C4.8356 15.6613 7.89407 13.3332 12.2222 13.3332C12.8358 13.3332 13.3333 13.8307 13.3333 14.4443V17.9773L20.6282 11.0882L13.3333 3.79335V7.22216Z`,fill:`currentColor`})})}function S({mode:S=`renderer`,information:E,onUpdate:D}){let O=S===`editor`||!E?.id||E.id.startsWith(`preview-`),k=`${ne()}?${re()?.toString()||``}`,A=g(k),j=ie(`components.biz.business.detail`),M=ee(),N=h(()=>w(E),[E]),P=h(()=>T(E),[E]),[F,I]=_(!1),[L,R]=_(!1),z=g(0),B=g(0),V=t(e=>e.userId),H=t(e=>e.isLogin),U=s();m(()=>{A.current!==k&&(u.clear(),A.current=k)},[k]),m(()=>()=>{u.clear()},[]);let W=p(()=>{V&&(U([`user-profile`,`mine`,V,`user-like-video`]),U([`user-profile`,`mine`,V,`user-like-post`]),U([`user-profile`,`mine`,V,`user-collect-video`,V]),U([`user-profile`,`mine`,V,`user-collect-post`,V]))},[U,V]),{likeAnimation:G,handleLikeOperate:K,handleDefaultCollectionOperate:q,handleShareOperate:J}=d({id:E.id,isLike:E.like||!1,isDislike:E.dislike||!1,isCollect:!!E.collect||!1,likeCnt:w(E),dislikeCnt:C(E.static?.dislike_cnt),contentType:1,prefetchDefaultCollection:!O,animationClasses:{like:c.likeShakeAnimation,dislike:c.dislikeShakeAnimation}}),Y=p(e=>{D?.({...e})},[D]),X=p(async()=>{if(F)return;if(!H){o.getState().open();return}let e=Date.now();if(e-z.current<300)return;z.current=e,r(`page_video_detail`,`详情页`,null,`detail_like`,{object_id:E.id}),I(!0);let t=E.like||!1,n=E.dislike||!1,i=w(E),a=C(E.static?.dislike_cnt),s=!t,c=Math.max(0,i+(s?1:-1)),l=s?!1:n,u=s&&n?Math.max(0,a-1):a;Y({like:s,dislike:l,like_count:c,static:{...E.static,dislike_cnt:u}});try{let e=await K();if(!e){Y({like:t,dislike:n,like_count:i,static:{...E.static,dislike_cnt:a}});return}Y({like:e.isLike,dislike:e.isDislike??l,like_count:e.likeCnt,static:{...E.static,dislike_cnt:e.dislikeCnt??u}}),W(),f.success(e.isLike?j(`detailOperate.likeSuccess`):j(`detailOperate.unlikeSuccess`)),window.sensors?.track?.(`detail_like_click`,{object_id:E.id,action:e.isLike?`点赞`:`取消点赞`,like_count:e.likeCnt})}catch(e){console.error(`点赞操作失败:`,e),f.error(j(`detailOperate.likeFailed`))}finally{I(!1)}},[K,E,W,F,H,j,Y]),Z=h(()=>E.id,[E.id]),ce=p(()=>{r(`page_video_detail`,`详情页`,null,`detail_share`,{object_id:E.id}),J(({isCollect:e})=>{Y({collect:e})},Z)},[J,Z,Y,E.id]),Q=p(()=>{l.show({mode:`select`,onCollect:async e=>{try{let t=await n({new_collection_id:e,content_id:E.id});if(t.code!==0)throw Error(t.message||j(`detailOperate.collectFailed`));Y({collect:!0}),W(),f.success(j(`detailOperate.modifyCollectionSuccess`))}catch(e){console.error(`修改收藏夹失败:`,e),f.error(j(`detailOperate.collectFailed`))}}})},[E.id,W,j,Y]),$=p(e=>{let t=e||j(`detailOperate.defaultCollection`);f.custom(e=>y(`div`,{className:`flex items-center justify-between gap-[16px] px-[16px] py-[12px] rounded-[12px] bg-black text-white shadow-lg min-w-[280px]`,children:[y(`div`,{className:`flex items-center gap-[10px]`,children:[v(`div`,{className:`w-[14px] h-[14px] rounded-full bg-white flex items-center justify-center`,children:v(te,{className:`w-[14px] h-[14px]`})}),y(`div`,{className:`flex items-center gap-[6px]`,children:[v(`span`,{className:`text-[14px] leading-[20px]`,children:j(`detailOperate.collectAdded`)}),v(`span`,{className:`text-[14px] leading-[20px] font-semibold`,children:t})]})]}),v(`button`,{type:`button`,className:`text-[14px] text-theme5 font-semibold`,onClick:()=>{f.dismiss(e),Q()},children:j(`detailOperate.modifyCollection`)})]}))},[Q,j]),le=p(async()=>{if(L)return;if(!H){o.getState().open();return}let e=Date.now();if(e-B.current<300)return;B.current=e,r(`page_video_detail`,`详情页`,null,`detail_collect`,{object_id:E.id});let t=E.collect||!1,n=!t,i=T(E),a=Math.max(0,i+(n?1:-1));R(!0),Y({collect:n,collect_count:a}),n&&M.trigger(c.likeShakeAnimation),window.sensors?.track?.(`detail_fav_click`,{object_id:E.id,action:t?`取消收藏`:`收藏`});try{let e=await q({currentCollect:t,onUpdate:({isCollect:e})=>{Y({collect:e})}});if(!e?.success){Y({collect:t,collect_count:i}),f.error(e?.message||j(`detailOperate.collectFailed`));return}Y({collect:e.isCollect??n,collect_count:a}),W(),window.sensors?.track?.(`detail_fav_click`,{object_id:E.id,action:e.isCollect?`收藏`:`取消收藏`}),!t&&e.isCollect&&$(e.collectionTitle),t&&e.isCollect===!1&&f.success(j(`detailOperate.uncollectSuccess`))}catch(e){Y({collect:t,collect_count:i}),console.error(`收藏操作失败:`,e),f.error(e?.message||j(`detailOperate.collectFailed`))}finally{R(!1)}},[M,q,E,W,L,H,$,j,Y]);return y(i,{className:`mt-[16px] flex h-[52px] w-full items-center justify-between px-[48px] ${O?`pointer-events-none`:``}`,children:[y(i,{className:`flex h-full w-[43px] flex-col items-center justify-center gap-[2px] ${F?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:X,children:[E.like?v(oe,{className:`size-[28px] text-[#FF5D8F] ${G.animationClass}`}):v(ae,{className:`size-[28px] text-white`}),v(a,{className:`text-center text-[14px] leading-[22px] ${E.like?`text-[#FF5D8F]`:`text-white`}`,children:N>0?e(N):j(`detailOperate.like`)})]}),y(i,{className:`flex h-full w-[43px] flex-col items-center justify-center gap-[2px] ${L?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:le,children:[E.collect?v(b,{className:`size-[28px] text-[#FFC039] ${M.animationClass}`}):v(se,{className:`size-[28px] text-white`}),v(a,{className:`text-center text-[14px] leading-[22px] ${E.collect?`text-[#FFC039]`:`text-white`}`,children:P>0?e(P):j(`detailOperate.collection`)})]}),y(i,{className:`flex h-full w-[43px] flex-col items-center justify-center gap-[2px] cursor-pointer`,onClick:ce,children:[v(x,{className:`size-[28px] text-white`}),v(a,{className:`text-center text-[14px] leading-[22px] text-white`,children:j(`detailOperate.share`)})]})]})}function C(e){if(e==null)return 0;if(typeof e==`number`)return e;let t=Number(e);return Number.isNaN(t)?0:t}function w(e){return C(e.like_count)}function T(e){return C(e.collect_count)}export{S as DetailOperate};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import e from"../../../../../assets/icons/common/right_arrow_thin.mjs";import{DetailStyleOneActiveBorderLayer as t,SeriesEpisodes as n}from"../../../../common/series-episodes/index.mjs";import{useCardDecoration as r}from"../../../../../hooks/use-card-decoration.mjs";import{editorPreviewInformation as i}from"../shared/editor-preview.mjs";import{useVideoDetailMaterialRuntimeContext as a}from"../shared/runtime-context-provider.mjs";import{useEffect as o,useMemo as s,useRef as c,useState as l}from"react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";import{useTranslations as p}from"next-intl";function m(e,t,n){let r=Number.parseInt(e.id||``,10);return Number.isNaN(r)?e.name?.trim()||n(t):n(r)}function h({text:e}){let t=p(`components.biz.business.detail.detailIntroduction`),[n,r]=l(!1),[i,a]=l(!1),s=c(null);return o(()=>{r(!1)},[e]),o(()=>{if(n){a(!0);return}let t=s.current;if(!e||!t){a(!1);return}let r=()=>{a(t.scrollHeight>t.clientHeight+1)};r();let i=new ResizeObserver(r);return i.observe(t),()=>{i.disconnect()}},[n,e]),e?f(`div`,{className:`relative w-full`,children:[d(`p`,{ref:s,className:`w-full font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/50 ${n?``:`line-clamp-3`}`,children:e}),i&&d(`button`,{type:`button`,className:`font-['PingFang_SC'] text-[14px] font-medium not-italic leading-normal text-[#9054E5] ${n?`mt-[8px] ml-auto block`:`absolute right-0 bottom-0 flex h-[24px] w-[40px] items-center justify-end bg-gradient-to-r from-transparent via-[#161616] to-[#161616]`}`,onClick:()=>r(e=>!e),children:t(n?`collapse`:`expand`)})]}):null}function g({information:r,currentSeriesNum:i,onEpisodeChange:a}){let o=p(`components.common.seriesEpisodes`);function s(e){return o(`episodeLabel`,{episode:e})}let[c,h]=l(!1),[g,_]=l(!1),v=r.links?.length??0,y=r.links?.[i-1]?.id||r.links?.[0]?.id||``;return v<=1?null:f(u,{children:[f(`div`,{className:`mt-[16px] flex w-full flex-col gap-[16px]`,children:[f(`button`,{type:`button`,className:`flex w-full items-center justify-between`,onClick:()=>h(!0),children:[d(`span`,{className:`font-['PingFang_SC'] text-[18px] font-medium not-italic leading-[24px] text-text1`,children:o(`selectorTitle`)}),d(`span`,{className:`flex items-center opacity-60`,children:d(`span`,{className:`flex h-[24px] w-[24px] items-center justify-center p-[2px]`,children:d(e,{className:`h-[20px] w-[20px] text-text1`})})})]}),d(`div`,{className:`flex gap-[8px] overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:(r.links||[]).map((e,n)=>{let o=n+1,c=o===i,l=m(e,o,s);return f(`button`,{type:`button`,className:g?`relative flex h-[40px] min-w-[88px] shrink-0 items-center justify-center overflow-hidden rounded-[8px] px-[16px] transition-colors ${c?``:`bg-white/10`}`:`relative flex h-[56px] w-[56px] shrink-0 items-center justify-center overflow-hidden rounded-[8px] transition-colors ${c?``:`bg-white/10`}`,onClick:()=>a(o),children:[c&&d(t,{}),d(`span`,{className:`relative z-10 leading-[16px] ${c?`text-[#CA3FE9]`:`text-text1`} ${g?`text-[14px] whitespace-nowrap`:`text-[16px]`}`,children:g?l:o})]},e.id||`${r.id}-episode-${o}`)})})]}),d(n,{mode:`selector`,open:c,variant:`popup`,title:o(`selectorTitle`),videoTitle:r.name,updateStatus:r.update_status,seriesList:(r.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:y,showEpisodeTitle:g,onToggleTitle:e=>_(!!e),onClose:()=>h(!1),onSelectEpisode:(e,t)=>{h(!1),a(t)},popupStylePreset:`detail-style-one`})]})}function _({showTags:e=!0,showEpisodes:t=!0,mode:n=`renderer`}){let o=a(),c=o?.information,l=o?.currentSeriesNum??1,u=o?.onEpisodeChange,p=o?.isShow??!0,m=n===`editor`,{getTitleText:_}=r(),y=m,b=y?i:c,x=s(()=>b?_(b):``,[_,b]),S=s(()=>b?.description?.trim()||``,[b?.description]),C=s(()=>v(b?.score),[b?.score]);if(!b)return null;let w=Math.max(1,Number(l||1)),T=y?e=>{}:u??(()=>{}),E=e&&(b.tags?.length??0)>0,D=p&&!!S,O=(m||t)&&b.is_more_link===`y`&&(b.links?.length??0)>1;return!x&&!C&&!E&&!D&&!O?null:d(`div`,{className:y?`pointer-events-none`:void 0,children:f(`div`,{className:`w-full px-[12px] pt-[16px]`,children:[f(`div`,{className:`flex w-full flex-col gap-[12px]`,children:[(x||C)&&f(`div`,{className:`flex w-full items-center justify-between gap-[12px]`,children:[d(`p`,{className:`min-w-0 flex-1 truncate font-['PingFang_SC'] text-[18px] font-medium not-italic leading-normal text-text1`,children:x}),C&&d(`span`,{className:`shrink-0 font-['DIN'] text-[18px] font-bold not-italic leading-[20px] text-[#FFC039]`,children:C})]}),E&&d(`div`,{className:`flex items-center gap-[6px] overflow-x-auto overflow-y-hidden [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:(b.tags||[]).map((e,t)=>d(`div`,{className:`flex h-[24px] shrink-0 items-center justify-center rounded-[4px] bg-[rgba(217,217,217,0.2)] px-[4px] py-[2px]`,children:d(`span`,{className:`font-['PingFang_SC'] text-[12px] font-normal not-italic leading-[14px] text-text1`,children:e.name})},`${e.id||e.name}-${t}`))}),D&&d(h,{text:S})]}),O&&d(g,{information:b,currentSeriesNum:w,onEpisodeChange:T})]})})}function v(e){let t=Number(e||`0`);return!Number.isFinite(t)||t<=0?``:(t>10?t/10:t).toFixed(1)}export{_ as VideoDetailInfoClient};
2
+ "use client";import e from"../../../../../assets/icons/common/right_arrow_thin.mjs";import{DetailStyleOneActiveBorderLayer as t,SeriesEpisodes as n}from"../../../../common/series-episodes/index.mjs";import{useCardDecoration as r}from"../../../../../hooks/use-card-decoration.mjs";import{editorPreviewInformation as i}from"../shared/editor-preview.mjs";import{useVideoDetailMaterialRuntimeContext as a}from"../shared/runtime-context-provider.mjs";import{useEffect as o,useMemo as s,useRef as c,useState as l}from"react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";import{useTranslations as p}from"next-intl";function m(e,t,n){let r=Number.parseInt(e.id||``,10);return Number.isNaN(r)?e.name?.trim()||n(t):n(r)}function h({text:e}){let t=p(`components.biz.business.detail.detailIntroduction`),[n,r]=l(!1),[i,a]=l(!1),s=c(null);return o(()=>{r(!1)},[e]),o(()=>{if(n){a(!0);return}let t=s.current;if(!e||!t){a(!1);return}let r=()=>{a(t.scrollHeight>t.clientHeight+1)};r();let i=new ResizeObserver(r);return i.observe(t),()=>{i.disconnect()}},[n,e]),e?f(`div`,{className:`relative w-full`,children:[d(`p`,{ref:s,className:`w-full font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/50 ${n?``:`line-clamp-3`}`,children:e}),i&&d(`button`,{type:`button`,className:`font-['PingFang_SC'] text-[14px] font-medium not-italic leading-normal text-[#9054E5] ${n?`mt-[8px] ml-auto block`:`absolute right-0 bottom-0 flex h-[24px] w-[40px] items-center justify-end bg-gradient-to-r from-transparent via-[#161616] to-[#161616]`}`,onClick:()=>r(e=>!e),children:t(n?`collapse`:`expand`)})]}):null}function g({information:r,currentSeriesNum:i,onEpisodeChange:a}){let o=p(`components.common.seriesEpisodes`);function s(e){return o(`episodeLabel`,{episode:e})}let[c,h]=l(!1),[g,_]=l(!1),v=r.links?.length??0,y=r.links?.[i-1]?.id||r.links?.[0]?.id||``;return v<=1?null:f(u,{children:[f(`div`,{className:`mt-[16px] flex w-full flex-col gap-[16px]`,children:[f(`button`,{type:`button`,className:`flex w-full items-center justify-between no-vw-x-16`,onClick:()=>h(!0),children:[d(`span`,{className:`font-['PingFang_SC'] text-[18px] font-medium not-italic leading-[24px] text-text1`,children:o(`selectorTitle`)}),d(`span`,{className:`flex items-center opacity-60`,children:d(`span`,{className:`flex h-[24px] w-[24px] items-center justify-center p-[2px]`,children:d(e,{className:`h-[20px] w-[20px] text-text1`})})})]}),d(`div`,{className:`flex gap-[8px] no-vw-x-16 overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:(r.links||[]).map((e,n)=>{let o=n+1,c=o===i,l=m(e,o,s);return f(`button`,{type:`button`,className:g?`relative flex h-[40px] min-w-[88px] shrink-0 items-center justify-center overflow-hidden rounded-[8px] px-[16px] transition-colors ${c?``:`bg-white/10`}`:`relative flex h-[56px] w-[56px] shrink-0 items-center justify-center overflow-hidden rounded-[8px] transition-colors ${c?``:`bg-white/10`}`,onClick:()=>a(o),children:[c&&d(t,{}),d(`span`,{className:`relative z-10 leading-[16px] ${c?`text-[#CA3FE9]`:`text-text1`} ${g?`text-[14px] whitespace-nowrap`:`text-[16px]`}`,children:g?l:o})]},e.id||`${r.id}-episode-${o}`)})})]}),d(n,{mode:`selector`,open:c,variant:`popup`,title:o(`selectorTitle`),videoTitle:r.name,updateStatus:r.update_status,seriesList:(r.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:y,showEpisodeTitle:g,onToggleTitle:e=>_(!!e),onClose:()=>h(!1),onSelectEpisode:(e,t)=>{h(!1),a(t)},popupStylePreset:`detail-style-one`})]})}function _({showTags:e=!0,showEpisodes:t=!0,mode:n=`renderer`}){let o=a(),c=o?.information,l=o?.currentSeriesNum??1,u=o?.onEpisodeChange,p=o?.isShow??!0,m=n===`editor`,{getTitleText:_}=r(),y=m,b=y?i:c,x=s(()=>b?_(b):``,[_,b]),S=s(()=>b?.description?.trim()||``,[b?.description]),C=s(()=>v(b?.score),[b?.score]);if(!b)return null;let w=Math.max(1,Number(l||1)),T=y?e=>{}:u??(()=>{}),E=e&&(b.tags?.length??0)>0,D=p&&!!S,O=(m||t)&&b.is_more_link===`y`&&(b.links?.length??0)>1;return!x&&!C&&!E&&!D&&!O?null:d(`div`,{className:y?`pointer-events-none`:void 0,children:f(`div`,{className:`w-full pt-[16px]`,children:[f(`div`,{className:`flex w-full flex-col gap-[12px] no-vw-x-16`,children:[(x||C)&&f(`div`,{className:`flex w-full items-center justify-between gap-[12px]`,children:[d(`p`,{className:`min-w-0 flex-1 truncate font-['PingFang_SC'] text-[18px] font-medium not-italic leading-normal text-text1`,children:x}),C&&d(`span`,{className:`shrink-0 font-['DIN'] text-[18px] font-bold not-italic leading-[20px] text-[#FFC039]`,children:C})]}),E&&d(`div`,{className:`flex items-center gap-[6px] overflow-x-auto overflow-y-hidden [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:(b.tags||[]).map((e,t)=>d(`div`,{className:`flex h-[24px] shrink-0 items-center justify-center rounded-[4px] bg-[rgba(217,217,217,0.2)] px-[4px] py-[2px]`,children:d(`span`,{className:`font-['PingFang_SC'] text-[12px] font-normal not-italic leading-[14px] text-text1`,children:e.name})},`${e.id||e.name}-${t}`))}),D&&d(h,{text:S})]}),O&&d(g,{information:b,currentSeriesNum:w,onEpisodeChange:T})]})})}function v(e){let t=Number(e||`0`);return!Number.isFinite(t)||t<=0?``:(t>10?t/10:t).toFixed(1)}export{_ as VideoDetailInfoClient};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../../../ui/box.mjs";import t from"../../../../ui/loading.mjs";import{WaterfallRecommend as n}from"../../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{useVideoDetailRecommendData as r}from"./shared.mjs";import{useCallback as i,useMemo as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";function c(e){let t=[],n=[],r=0,i=0;return e.forEach(e=>{let a=(e.cardKind===`short`?142:216)+16;r<=i?(t.push(e),r+=a):(n.push(e),i+=a)}),{left:t,right:n}}function l(l){let{uiItems:u,shouldShowLoading:d,isPreview:f,resolvedModuleTitle:p,triggerIndex:m,triggerMarker:h}=r(l),g=a(()=>u.map((e,t)=>({key:e.info.id?`detail-recommend-${e.info.id}-${t}`:`detail-recommend-${t}`,sourceIndex:e.sourceIndex,href:e.detailPath||`#`,cardKind:e.cardKind,coverUrl:e.coverUrl,title:e.title,badgeImageUrl:e.badgeImageUrl,episodeText:e.showEpisode?e.videoInfoText:``,metaPrimaryText:e.showEpisode?e.videoInfoText:``,heatText:e.showPlayCount?e.playCountText:``,score:e.score})),[u]),_=a(()=>c(g),[g]),v=!!p,y=i(({item:e})=>{if(!(e.sourceIndex!==m||!h))return e=>{e&&e.setAttribute(`data-detail-recommend-trigger`,h)}},[m,h]);return g.length?s(e,{className:f?`mt-[16px] w-full pointer-events-none`:`mt-[16px] w-full`,children:[o(n,{title:p,columns:_,sectionClassName:`w-full`,headerClassName:v?`mb-[8px] flex items-center justify-between px-[12px]`:`hidden`,titleClassName:`flex-1 min-w-0 text-[18px] leading-[26px] font-bold line-clamp-1 text-text1`,containerClassName:`relative flex w-full gap-[15px] px-[12px]`,getItemRef:y}),d&&o(e,{className:`w-full flex justify-center py-[12px]`,children:o(t,{size:`medium`,showLabel:!1,className:`text-theme5`})})]}):null}export{l as VideoDetailRecommendClient};
2
+ "use client";import{Box as e}from"../../../../ui/box.mjs";import t from"../../../../ui/loading.mjs";import{WaterfallRecommend as n}from"../../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{useVideoDetailRecommendData as r}from"./shared.mjs";import{useCallback as i,useMemo as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";function c(e){let t=[],n=[],r=0,i=0;return e.forEach(e=>{let a=(e.cardKind===`short`?142:216)+16;r<=i?(t.push(e),r+=a):(n.push(e),i+=a)}),{left:t,right:n}}function l(l){let{uiItems:u,shouldShowLoading:d,isPreview:f,resolvedModuleTitle:p,triggerIndex:m,triggerMarker:h}=r(l),g=a(()=>u.map((e,t)=>({key:e.info.id?`detail-recommend-${e.info.id}-${t}`:`detail-recommend-${t}`,sourceIndex:e.sourceIndex,href:e.detailPath||`#`,cardKind:e.cardKind,coverUrl:e.coverUrl,title:e.title,badgeImageUrl:e.badgeImageUrl,episodeText:e.showEpisode?e.videoInfoText:``,metaPrimaryText:e.showEpisode?e.videoInfoText:``,heatText:e.showPlayCount?e.playCountText:``,score:e.score})),[u]),_=a(()=>c(g),[g]),v=!!p,y=i(({item:e})=>{if(!(e.sourceIndex!==m||!h))return e=>{e&&e.setAttribute(`data-detail-recommend-trigger`,h)}},[m,h]);return g.length?s(e,{className:f?`mt-[16px] w-full pointer-events-none`:`mt-[16px] w-full`,children:[o(n,{title:p,columns:_,sectionClassName:`w-full`,headerClassName:v?`mb-[8px] flex items-center justify-between no-vw-x-16`:`hidden`,titleClassName:`flex-1 min-w-0 text-[18px] leading-[26px] font-bold line-clamp-1 text-text1`,containerClassName:`relative flex w-full gap-[8px] no-vw-x-16`,getItemRef:y}),d&&o(e,{className:`w-full flex justify-center py-[12px]`,children:o(t,{size:`medium`,showLabel:!1,className:`text-theme5`})})]}):null}export{l as VideoDetailRecommendClient};
@@ -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-medium)`},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-[16px]`,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-[16px] 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%-16px)/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-medium)`},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-[16px]`,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};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{formatCompactCount as e}from"../../../../utils/common.mjs";import t from"../../../../utils/get-res-url.mjs";import{pContentBatchGetVideoDetail as n,pContentGetNewstVideoList as r,pContentGetPopularVideoList as i}from"../../../../service/generated/client.mjs";import{pContentBatchGetVideoDetailKey as a,pContentGetNewstVideoListKey as o,pContentGetPopularVideoListKey as s}from"../../../../service/generated/tanstack.mjs";import{Image as c}from"../../../ui/image.mjs";import{Box as l}from"../../../ui/box.mjs";import{Text as u}from"../../../ui/text.mjs";import{IMAGE_TEXT_RECOMMEND_FIXED_BATCH_SIZE as d,buildImageTextRecommendRemoteMap as f,getImageTextRecommendFixedIds as ee,resolveImageTextRecommendVideoId as te}from"../../../../hooks/image-text-recommend.mjs";import{useRequest as p}from"../../../../hooks/query/use-query.mjs";import{normalizeHomeRecommendSmartLayout as ne}from"../home-recommend/shared/home-recommend-smart-layout.mjs";import re from"../../../../assets/images/frame.mjs";import ie from"../../../../assets/images/subscript.mjs";import{buildImageTextSmartListBody as m,resolveImageTextSmartListKind as ae}from"./shared/query.mjs";import{useCallback as h,useEffect as g,useMemo as _,useRef as oe,useState as v}from"react";import{Fragment as se,jsx as y,jsxs as b}from"react/jsx-runtime";import{useTranslations as ce}from"next-intl";import le from"next/link";const x=[];function S(e){return typeof e==`string`?e:e.src}function ue(e,n){if(!e||!e.trim())return S(n);if(e.startsWith(`http`)||e.startsWith(`//`)||e.startsWith(`data:`))return e;let r=t();return r?`${r}${e.startsWith(`/`)?e:`/${e}`}`:e}function C(e){if(e==null)return``;let t=e;return t.img_y||t.media?.img_y||``}function w(e){return e==null?``:e.name||``}function T(e,t=!1){let n=e,r=t?n.type:n.content_type;return typeof r==`number`?r:n.is_more_link===!0||Number(n.episode_cnt||n.episode_count||n.episodes?.length||n.links?.length||0)>1?2:1}function E(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 D(e,t){let n=e,r=n?.links?.length??0;if(!Number.isFinite(r)||r<=0)return``;let i=n.update_status;return t(r,i===0||i===`0`)}function de(e,t,n){return e?T(e,n)===2&&t?D(e,t):E(Number(e.duration??e.detail?.duration??0)):``}function fe(e,t){if(!(e??``).trim())return``;let n=encodeURIComponent((t??``).trim()||``);return`/video/${e.trim()}/${n}/episode/1`}function pe(t,n){if(!t)return``;let r=t,i=n?Number(r.static?.browse_count??0):Number(r.browse_count??0);return!Number.isFinite(i)||i<=0?``:e(i)}function me(){let e=new Date,t=new Date(e);return t.setHours(24,0,0,0),t.getTime()-e.getTime()}function O(e){let{title:t,items:T=x,commonPlayCount:E,commonEpisodes:D,layout:O,mode:k=`renderer`}=e,A=ce(`components.biz.business.imageTextRecommend`),j=k===`renderer`,M=k===`editor`,[N,P]=v({}),[F,I]=v([]),[L,R]=v(0),[z,B]=v(void 0),V=oe(null),H=_(()=>ne(O),[O]),U=H?.enabled===!0,W=_(()=>ae(H?.sortRule),[H?.sortRule]),G=T?.length??0,K=_(()=>ee(T,U),[U,T]),q=_(()=>K.slice(0,d),[K]),J=_(()=>{if(H?.enabled)return m(H,{targetCount:G})},[H,G]),{data:Y}=p(_(()=>!J||!U?[`image-text-recommend`,`smart-idle`]:W===`newest`?o(J):s(J),[J,U,W]),async()=>!J||!U?{data:{videos:[],cursor:``}}:W===`newest`?r(J):i(J),{enabled:j&&!M&&U&&T.length>0&&!!J,staleTime:1/0}),{data:X}=p(a({ids:q}),()=>n({ids:q}),{enabled:j&&!M&&!U&&q.length>0,staleTime:1/0}),Z=_(()=>U&&G>d?Math.ceil(G/d):K.length>0?Math.ceil(K.length/d):0,[U,G,K.length]),Q=h((e,t)=>A(t?`updatedTo`:`allEpisodes`,{count:e}),[A]),he=h(async(e,t)=>{if(e.length===0)return;let r=f((await n({ids:e})).data?.videos??[]);P(e=>t?{...e,...r}:r)},[]);g(()=>{if(M)return;if(U){let e=Y?.data?.videos??[];G>d?(I(e.slice(0,d)),B(Y?.data?.cursor),R(e.length>0?1:0)):(I(e.slice(0,G)),R(0)),P({});return}if(q.length===0){P({}),I([]),R(0),B(void 0);return}let e=X?.data?.videos??[];P(f(e)),I([]),B(void 0),R(e.length>0?1:0)},[M,U,Y,X,q,G]),g(()=>{if(M||Z<1||L<1||L>=Z)return;let e=V.current;if(!e)return;let t=new IntersectionObserver(e=>{let[t]=e;if(!t?.isIntersecting)return;let n=L;if(U&&H){let e=m(H,{targetCount:G,cursor:z,pageSize:d});(W===`newest`?r:i)(e).then(e=>{let t=e.data?.videos??[];I(e=>[...e,...t.slice(0,d)]),B(e.data?.cursor),R(n+1)}).catch(()=>{})}else{let e=n*d,t=K.slice(e,e+d);t.length>0&&(he(t,!0),R(n+1))}},{root:null,rootMargin:`0px`,threshold:0});return t.observe(e),()=>t.disconnect()},[M,U,H,W,K,L,Z,G,z,he]),g(()=>{if(M||!U||!H||G<=0)return;let e=H,t,n=!1;function a(){t=window.setTimeout(()=>{let t=m(e,{targetCount:G,pageSize:Math.max(20,G*10)});(W===`newest`?r:i)(t).then(e=>{n||I((e.data?.videos??[]).slice(0,G))}).catch(()=>{n||I([])}).finally(()=>{n||a()})},me())}return a(),()=>{n=!0,t!==void 0&&window.clearTimeout(t)}},[M,U,H,W,G]);let $=_(()=>!T||T.length===0?x:M?T:U&&G>d?T.slice(0,F.length):T,[T,M,U,G,F.length]),ge=_(()=>$.length?$.map((e,t)=>{let n=String(e?.contentId??``).trim(),r=U?F[t]:n?N[n]:void 0,i=U?r?w(r):(e?.title??``).trim():(e?.title??``).trim()||(r?w(r):``),a=(e?.cover??``).trim(),o=U?C(r)||a:a||(e?.useVideoPoster?C(r):``),s=U&&String(r?.description??r?.content_description??``).trim()||(e?.contentDescription??``).trim(),c=de(r,Q,U),l=pe(r,U);return{...e,contentId:n||(r?te(r):``),title:i,cover:o,contentDescription:s,episodeOrDurationText:c,playCountText:l}}):x,[Q,U,$,N,F]);if(!T||T.length===0)return null;let _e=L>=1&&L<Z?U?F.length-2:L*d-2:-1;return b(l,{className:M?`bg-bg1 px-3 py-3 pointer-events-none`:`bg-bg1 px-3 py-3`,children:[t&&y(l,{className:`mb-3 flex items-center justify-between`,children:y(u,{className:`text-[18px] font-bold text-text1 leading-[26px]`,children:t})}),y(l,{className:`flex overflow-x-auto pb-2 scrollbar-hide space-x-2`,children:ge.map((e,t)=>{let n=E||(e.showPlayCount??!1),r=(e.playCountText??``).trim(),i=r!==``,a=D||(e.showEpisodes??!1),o=(e.episodeOrDurationText??``).trim(),s=a&&o!==``,d=k===`renderer`?fe(e.contentId??``,e.title??``):``,f=b(se,{children:[b(l,{className:`relative rounded-lg overflow-hidden bg-bg2 w-[116px] h-[134px]`,children:[M||e.cover?y(c,{src:ue(e.cover,re),alt:e.title??``,fill:!0,className:`object-cover`}):y(l,{className:`w-full h-full flex items-center justify-center`,children:y(u,{className:`text-text3 text-xs`,children:A(`noCover`)})}),!U&&(e.badge??``).trim()?y(l,{className:`absolute top-0 right-0 w-8 h-8`,children:y(c,{src:(e.badge??``).trim()||S(ie),alt:``,fill:!0,sizes:`32px`,className:`object-contain object-right-top`,unoptimized:!0})}):null,b(l,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent pb-1 pt-3 px-1 flex justify-between items-center gap-1`,children:[y(l,{className:`flex items-center min-w-0 shrink`,children:n&&i?b(l,{className:`flex items-center gap-1 rounded bg-overlay px-1 py-0`,children:[y(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`10`,viewBox:`0 0 12 10`,fill:`none`,className:`shrink-0`,"aria-hidden":!0,children:y(`path`,{d:`M7.56 5.18437L5.013 6.56737C4.893 6.63337 4.761 6.66937 4.638 6.66937C4.269 6.66937 4.002 6.38737 4.002 5.99737V3.28237C4.002 2.89237 4.269 2.61037 4.638 2.61037C4.764 2.61037 4.893 2.64637 5.013 2.70937L7.572 4.09237C7.803 4.21837 7.938 4.41637 7.938 4.63237C7.938 4.85137 7.8 5.05537 7.56 5.18437ZM9.807 9.27637L2.133 8.52937C0.954 8.52937 0 7.57537 0 6.39637V2.79937C0 1.62037 0.954 0.666368 2.133 0.666368L9.81 0.000367165C10.989 0.000367165 11.943 0.954367 11.943 2.13337V7.14337C11.9422 7.70935 11.7168 8.25188 11.3163 8.65181C10.9158 9.05174 10.373 9.27637 9.807 9.27637ZM10.875 2.13337C10.875 1.99351 10.8475 1.85502 10.7939 1.72581C10.7404 1.5966 10.662 1.47919 10.5631 1.3803C10.4642 1.2814 10.3468 1.20296 10.2176 1.14944C10.0883 1.09591 9.94986 1.06837 9.81 1.06837L2.133 1.73437C1.99314 1.73437 1.85465 1.76191 1.72544 1.81544C1.59623 1.86896 1.47883 1.9474 1.37993 2.0463C1.28104 2.14519 1.20259 2.2626 1.14907 2.39181C1.09555 2.52102 1.068 2.65951 1.068 2.79937V6.39637C1.068 6.67882 1.1802 6.94971 1.37993 7.14944C1.57966 7.34916 1.85054 7.46137 2.133 7.46137L9.807 8.20837C9.94686 8.20837 10.0853 8.18082 10.2146 8.1273C10.3438 8.07378 10.4612 7.99533 10.5601 7.89644C10.659 7.79754 10.7374 7.68014 10.7909 7.55093C10.8445 7.42171 10.872 7.28323 10.872 7.14337V2.13337H10.875Z`,fill:`white`})}),y(u,{className:`text-white text-[12px] leading-[20px]`,children:r})]}):null}),y(l,{className:`flex items-center shrink-0`,children:s?y(u,{className:`text-white text-[12px] leading-[20px]`,children:o}):null})]})]}),y(l,{className:`mt-2 py-2`,children:y(u,{className:`text-[16px] text-text1 font-bold leading-[24px] line-clamp-1`,children:e.title})})]});return y(l,{ref:t===_e?V:void 0,className:`flex-shrink-0 w-[116px]`,children:d?y(le,{href:d,className:`block`,children:f}):f},t)})})]})}export{O as ImageTextRecommendClient};
2
+ "use client";import{formatCompactCount as e}from"../../../../utils/common.mjs";import t from"../../../../utils/get-res-url.mjs";import{pContentBatchGetVideoDetail as n,pContentGetNewstVideoList as r,pContentGetPopularVideoList as i}from"../../../../service/generated/client.mjs";import{pContentBatchGetVideoDetailKey as a,pContentGetNewstVideoListKey as o,pContentGetPopularVideoListKey as s}from"../../../../service/generated/tanstack.mjs";import{Image as c}from"../../../ui/image.mjs";import{Box as l}from"../../../ui/box.mjs";import{Text as u}from"../../../ui/text.mjs";import{IMAGE_TEXT_RECOMMEND_FIXED_BATCH_SIZE as d,buildImageTextRecommendRemoteMap as f,getImageTextRecommendFixedIds as ee,resolveImageTextRecommendVideoId as te}from"../../../../hooks/image-text-recommend.mjs";import{useRequest as p}from"../../../../hooks/query/use-query.mjs";import{normalizeHomeRecommendSmartLayout as ne}from"../home-recommend/shared/home-recommend-smart-layout.mjs";import re from"../../../../assets/images/frame.mjs";import ie from"../../../../assets/images/subscript.mjs";import{buildImageTextSmartListBody as m,resolveImageTextSmartListKind as ae}from"./shared/query.mjs";import{useCallback as h,useEffect as g,useMemo as _,useRef as oe,useState as v}from"react";import{Fragment as se,jsx as y,jsxs as b}from"react/jsx-runtime";import{useTranslations as ce}from"next-intl";import le from"next/link";const x=[];function S(e){return typeof e==`string`?e:e.src}function ue(e,n){if(!e||!e.trim())return S(n);if(e.startsWith(`http`)||e.startsWith(`//`)||e.startsWith(`data:`))return e;let r=t();return r?`${r}${e.startsWith(`/`)?e:`/${e}`}`:e}function C(e){if(e==null)return``;let t=e;return t.img_y||t.media?.img_y||``}function w(e){return e==null?``:e.name||``}function T(e,t=!1){let n=e,r=t?n.type:n.content_type;return typeof r==`number`?r:n.is_more_link===!0||Number(n.episode_cnt||n.episode_count||n.episodes?.length||n.links?.length||0)>1?2:1}function E(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 D(e,t){let n=e,r=n?.links?.length??0;if(!Number.isFinite(r)||r<=0)return``;let i=n.update_status;return t(r,i===0||i===`0`)}function de(e,t,n){return e?T(e,n)===2&&t?D(e,t):E(Number(e.duration??e.detail?.duration??0)):``}function fe(e,t){if(!(e??``).trim())return``;let n=encodeURIComponent((t??``).trim()||``);return`/video/${e.trim()}/${n}/episode/1`}function pe(t,n){if(!t)return``;let r=t,i=n?Number(r.static?.browse_count??0):Number(r.browse_count??0);return!Number.isFinite(i)||i<=0?``:e(i)}function me(){let e=new Date,t=new Date(e);return t.setHours(24,0,0,0),t.getTime()-e.getTime()}function O(e){let{title:t,items:T=x,commonPlayCount:E,commonEpisodes:D,layout:O,mode:k=`renderer`}=e,A=ce(`components.biz.business.imageTextRecommend`),j=k===`renderer`,M=k===`editor`,[N,P]=v({}),[F,I]=v([]),[L,R]=v(0),[z,B]=v(void 0),V=oe(null),H=_(()=>ne(O),[O]),U=H?.enabled===!0,W=_(()=>ae(H?.sortRule),[H?.sortRule]),G=T?.length??0,K=_(()=>ee(T,U),[U,T]),q=_(()=>K.slice(0,d),[K]),J=_(()=>{if(H?.enabled)return m(H,{targetCount:G})},[H,G]),{data:Y}=p(_(()=>!J||!U?[`image-text-recommend`,`smart-idle`]:W===`newest`?o(J):s(J),[J,U,W]),async()=>!J||!U?{data:{videos:[],cursor:``}}:W===`newest`?r(J):i(J),{enabled:j&&!M&&U&&T.length>0&&!!J,staleTime:1/0}),{data:X}=p(a({ids:q}),()=>n({ids:q}),{enabled:j&&!M&&!U&&q.length>0,staleTime:1/0}),Z=_(()=>U&&G>d?Math.ceil(G/d):K.length>0?Math.ceil(K.length/d):0,[U,G,K.length]),Q=h((e,t)=>A(t?`updatedTo`:`allEpisodes`,{count:e}),[A]),he=h(async(e,t)=>{if(e.length===0)return;let r=f((await n({ids:e})).data?.videos??[]);P(e=>t?{...e,...r}:r)},[]);g(()=>{if(M)return;if(U){let e=Y?.data?.videos??[];G>d?(I(e.slice(0,d)),B(Y?.data?.cursor),R(e.length>0?1:0)):(I(e.slice(0,G)),R(0)),P({});return}if(q.length===0){P({}),I([]),R(0),B(void 0);return}let e=X?.data?.videos??[];P(f(e)),I([]),B(void 0),R(e.length>0?1:0)},[M,U,Y,X,q,G]),g(()=>{if(M||Z<1||L<1||L>=Z)return;let e=V.current;if(!e)return;let t=new IntersectionObserver(e=>{let[t]=e;if(!t?.isIntersecting)return;let n=L;if(U&&H){let e=m(H,{targetCount:G,cursor:z,pageSize:d});(W===`newest`?r:i)(e).then(e=>{let t=e.data?.videos??[];I(e=>[...e,...t.slice(0,d)]),B(e.data?.cursor),R(n+1)}).catch(()=>{})}else{let e=n*d,t=K.slice(e,e+d);t.length>0&&(he(t,!0),R(n+1))}},{root:null,rootMargin:`0px`,threshold:0});return t.observe(e),()=>t.disconnect()},[M,U,H,W,K,L,Z,G,z,he]),g(()=>{if(M||!U||!H||G<=0)return;let e=H,t,n=!1;function a(){t=window.setTimeout(()=>{let t=m(e,{targetCount:G,pageSize:Math.max(20,G*10)});(W===`newest`?r:i)(t).then(e=>{n||I((e.data?.videos??[]).slice(0,G))}).catch(()=>{n||I([])}).finally(()=>{n||a()})},me())}return a(),()=>{n=!0,t!==void 0&&window.clearTimeout(t)}},[M,U,H,W,G]);let $=_(()=>!T||T.length===0?x:M?T:U&&G>d?T.slice(0,F.length):T,[T,M,U,G,F.length]),ge=_(()=>$.length?$.map((e,t)=>{let n=String(e?.contentId??``).trim(),r=U?F[t]:n?N[n]:void 0,i=U?r?w(r):(e?.title??``).trim():(e?.title??``).trim()||(r?w(r):``),a=(e?.cover??``).trim(),o=U?C(r)||a:a||(e?.useVideoPoster?C(r):``),s=U&&String(r?.description??r?.content_description??``).trim()||(e?.contentDescription??``).trim(),c=de(r,Q,U),l=pe(r,U);return{...e,contentId:n||(r?te(r):``),title:i,cover:o,contentDescription:s,episodeOrDurationText:c,playCountText:l}}):x,[Q,U,$,N,F]);if(!T||T.length===0)return null;let _e=L>=1&&L<Z?U?F.length-2:L*d-2:-1;return b(l,{className:M?`bg-bg1 no-vw-x-16 py-3 pointer-events-none`:`bg-bg1 no-vw-x-16 py-3`,children:[t&&y(l,{className:`mb-3 flex items-center justify-between`,children:y(u,{className:`text-[18px] font-bold text-text1 leading-[26px]`,children:t})}),y(l,{className:`flex overflow-x-auto pb-2 scrollbar-hide space-x-2`,children:ge.map((e,t)=>{let n=E||(e.showPlayCount??!1),r=(e.playCountText??``).trim(),i=r!==``,a=D||(e.showEpisodes??!1),o=(e.episodeOrDurationText??``).trim(),s=a&&o!==``,d=k===`renderer`?fe(e.contentId??``,e.title??``):``,f=b(se,{children:[b(l,{className:`relative rounded-lg overflow-hidden bg-bg2 w-[116px] h-[134px]`,children:[M||e.cover?y(c,{src:ue(e.cover,re),alt:e.title??``,fill:!0,className:`object-cover`}):y(l,{className:`w-full h-full flex items-center justify-center`,children:y(u,{className:`text-text3 text-xs`,children:A(`noCover`)})}),!U&&(e.badge??``).trim()?y(l,{className:`absolute top-0 right-0 w-8 h-8`,children:y(c,{src:(e.badge??``).trim()||S(ie),alt:``,fill:!0,sizes:`32px`,className:`object-contain object-right-top`,unoptimized:!0})}):null,b(l,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent pb-1 pt-3 px-1 flex justify-between items-center gap-1`,children:[y(l,{className:`flex items-center min-w-0 shrink`,children:n&&i?b(l,{className:`flex items-center gap-1 rounded bg-overlay px-1 py-0`,children:[y(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`10`,viewBox:`0 0 12 10`,fill:`none`,className:`shrink-0`,"aria-hidden":!0,children:y(`path`,{d:`M7.56 5.18437L5.013 6.56737C4.893 6.63337 4.761 6.66937 4.638 6.66937C4.269 6.66937 4.002 6.38737 4.002 5.99737V3.28237C4.002 2.89237 4.269 2.61037 4.638 2.61037C4.764 2.61037 4.893 2.64637 5.013 2.70937L7.572 4.09237C7.803 4.21837 7.938 4.41637 7.938 4.63237C7.938 4.85137 7.8 5.05537 7.56 5.18437ZM9.807 9.27637L2.133 8.52937C0.954 8.52937 0 7.57537 0 6.39637V2.79937C0 1.62037 0.954 0.666368 2.133 0.666368L9.81 0.000367165C10.989 0.000367165 11.943 0.954367 11.943 2.13337V7.14337C11.9422 7.70935 11.7168 8.25188 11.3163 8.65181C10.9158 9.05174 10.373 9.27637 9.807 9.27637ZM10.875 2.13337C10.875 1.99351 10.8475 1.85502 10.7939 1.72581C10.7404 1.5966 10.662 1.47919 10.5631 1.3803C10.4642 1.2814 10.3468 1.20296 10.2176 1.14944C10.0883 1.09591 9.94986 1.06837 9.81 1.06837L2.133 1.73437C1.99314 1.73437 1.85465 1.76191 1.72544 1.81544C1.59623 1.86896 1.47883 1.9474 1.37993 2.0463C1.28104 2.14519 1.20259 2.2626 1.14907 2.39181C1.09555 2.52102 1.068 2.65951 1.068 2.79937V6.39637C1.068 6.67882 1.1802 6.94971 1.37993 7.14944C1.57966 7.34916 1.85054 7.46137 2.133 7.46137L9.807 8.20837C9.94686 8.20837 10.0853 8.18082 10.2146 8.1273C10.3438 8.07378 10.4612 7.99533 10.5601 7.89644C10.659 7.79754 10.7374 7.68014 10.7909 7.55093C10.8445 7.42171 10.872 7.28323 10.872 7.14337V2.13337H10.875Z`,fill:`white`})}),y(u,{className:`text-white text-[12px] leading-[20px]`,children:r})]}):null}),y(l,{className:`flex items-center shrink-0`,children:s?y(u,{className:`text-white text-[12px] leading-[20px]`,children:o}):null})]})]}),y(l,{className:`mt-2 py-2`,children:y(u,{className:`text-[16px] text-text1 font-bold leading-[24px] line-clamp-1`,children:e.title})})]});return y(l,{ref:t===_e?V:void 0,className:`flex-shrink-0 w-[116px]`,children:d?y(le,{href:d,className:`block`,children:f}):f},t)})})]})}export{O as ImageTextRecommendClient};
@@ -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 o from"../../../../assets/icons/view.mjs";import{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";function u(t){let n=Number(t||0);return Number.isNaN(n)||n<=0?``:e(n)}function d({data:e}){return e?c(r,{className:`flex flex-col gap-[12px]`,children:(Array.isArray(e)?e:[e]).map((e,d)=>{if(!e||typeof e!=`object`)return null;let{id:f,title:p,desc:m,cover:h,tagImageUrl:g,showEpisode:_,episodeText:v,showPlayCount:y,play_count:b}=e,x=p||``,S=f?`/video/${f}/${x?encodeURIComponent(x):``}`:`#`,C=v==null?``:String(v).trim(),w=(_??!0)&&C!==``,T=y??!0,E=u(b)||`0`;return c(r,{children:c(a,{href:S,className:`block`,onClick:()=>t({page_key:`home`,page_name:`首页`,recommend_id:f,recommend_trace_info:x}),children:l(r,{className:`relative h-[204px] w-full overflow-hidden rounded-[8px] bg-[rgba(6,3,20,0.5)]`,children:[l(r,{className:`relative h-[134px] w-full overflow-hidden rounded-t-[8px]`,children:[h&&c(n,{src:h,alt:x||`封面`,fill:!0,objectFit:`cover`}),g&&String(g).trim()&&c(r,{className:`absolute left-[16px] top-[12px]`,children:c(r,{className:`inline-flex items-center justify-center rounded-[4px] px-[4px] py-[4px]`,style:{background:`linear-gradient(90deg, #CA3FE9 0%, #9756E3 100%)`},children:c(n,{src:String(g),alt:``,width:75,height:14,className:`h-[14px] w-auto object-contain`})})}),l(r,{className:`absolute bottom-[12px] left-[16px] right-[16px] flex items-center justify-between`,children:[c(r,{className:`flex items-center gap-[4px]`,children:T&&l(s,{children:[c(o,{className:`size-[22px] text-white opacity-80`}),c(i,{className:`text-[14px] leading-[20px] text-white`,children:E})]})}),w&&c(i,{className:`text-[14px] leading-[20px] text-white`,children:C})]})]}),c(r,{className:`px-[16px] pt-[12px]`,children:l(r,{className:`flex flex-col gap-[2px]`,children:[c(i,{className:`line-clamp-1 text-[16px] font-medium leading-[22px] text-white`,children:x}),m&&c(i,{className:`line-clamp-1 text-[14px] leading-[20px] text-white/50`,children:m})]})})]})})},f||x||`large-grid-item-${d}`)})}):null}export{d 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(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};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{isClient as e}from"../../../../utils/common.mjs";import{pContentBatchGetVideoDetail as t}from"../../../../service/generated/client.mjs";import{trackAppPageView as n}from"../../../../utils/tracking.mjs";import{Box as r}from"../../../ui/box.mjs";import{Text as i}from"../../../ui/text.mjs";import a from"../../../ui/loading.mjs";import o from"../../../ui/link.mjs";import{useSingleFirstRowHeight as s}from"../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as c}from"../../../../hooks/use-min-duration-loading.mjs";import l from"../../../../assets/icons/common/right_arrow.mjs";import{isFeedAdItem as u}from"../advertisement/feed-ad/index.mjs";import{LargeGridItemClient as d}from"./card-item.mjs";import{largeFeatureGridInspectorDefaultProps as f}from"./schema.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=[],b=f.data??[];function x(e){return e==null}function S(e,t){return x(e)?t:e}function C(e){return typeof e==`string`?e.trim():``}function w(e){return C(e)}function T(e){let t=Number(e);if(!(!Number.isFinite(t)||t<0))return t}function E(e){let t=e,n=C(e.update_status)===`0`,r=(Array.isArray(t.episodes)?t.episodes.length:0)||(Array.isArray(e.video_episodes)?e.video_episodes.length:0)||(Array.isArray(e.links)?e.links.length:0)||(T(e.episode_cnt)??0);return!Number.isFinite(r)||r<=0?``:`${n?`更新至`:`全`}${Math.floor(r)}集`}function D(e,t){return t?{...e,...t,id:S(t.id,e.id),cover:S(t.cover,e.cover),title:S(t.title,e.title),desc:S(t.desc,e.desc),play_count:S(t.play_count,e.play_count),showPlayCount:t.showPlayCount??e.showPlayCount,episodeText:S(t.episodeText,e.episodeText),showEpisode:t.showEpisode??e.showEpisode,useContentCover:t.useContentCover??e.useContentCover,tagImageUrl:S(t.tagImageUrl,e.tagImageUrl)}:e}function O(e,t){if(!t)return e;let n=e.items;return{...e,...t,title:S(t.title,e.title),moreUrl:S(t.moreUrl,e.moreUrl),moreLinkType:t.moreLinkType??e.moreLinkType,items:n?D(n,t.items):t.items}}function k({mode:f=`renderer`,data:x=y}){let S=f===`editor`,D=x??y,k=Array.isArray(D)&&D.length>0,A=m(()=>k?[O(b[0],D[0])]:b,[k,D]),[j,M]=g(A),N=h(``),P=h(null),F=h(null),I=h(!1),{isLoading:L,show:R,hide:z,cancel:B}=c(500);p(()=>{M(A)},[A]);let V=s({enabled:!S,containerRef:P,itemRef:P,deps:[j.length]}),H=m(()=>{if(S||!k)return``;let e=A.map(e=>w(e?.items?.id)).filter(Boolean);return Array.from(new Set(e)).join(`,`)},[k,S,A]);if(p(()=>{if(S||!e()||!H||N.current===H)return;N.current=H;let n=!1;async function r(){try{R();let e=await t({ids:H.split(`,`).filter(Boolean)},{cache:`no-store`}),r=Array.isArray(e.data?.videos)?e.data.videos:[],i=new Map;if(r.forEach(e=>{let t=w(e.video_id||e.id||e.mid);t&&i.set(t,e)}),n)return;M(e=>e.map(e=>{let t=e.items;if(!t||u(t))return e;let n=w(t.id),r=n?i.get(n):void 0;if(!r)return e;let a=T(r.play_count)??T(r.browse_count)??T(r.view_count),o=E(r),s=C(r.name),c=C(r.description||r.content_description),l=t.useContentCover?C(r.img_x||r.img_y):``;return{...e,items:{...t,title:s||t.title,desc:c||t.desc,...l?{cover:l}:{},play_count:a??t.play_count,episodeText:o||t.episodeText}}}))}catch(e){console.error(`大图推荐刷新首屏失败(client)`,e)}finally{n||z()}}return r(),()=>{n=!0,B()}},[B,H,z,S,R]),p(()=>{if(S)return;let e=F.current;if(!e)return;let t=new IntersectionObserver(e=>{if(e[0]?.isIntersecting&&!I.current){I.current=!0;let e=j[0]?.title||``;n({page_key:`home`,page_name:`首页`,current_page_key:e,current_page_name:e}),t.disconnect()}},{threshold:.5});return t.observe(e),()=>{t.disconnect()}},[S,j]),!j||j.length===0)return null;let U=j[0],W=U?.title,G=U?.moreUrl,K=V>0?V/2:160,q=!S&&L;return v(r,{ref:F,className:`py-4 no-vw-x-16`,children:[v(r,{className:`flex items-center justify-between mb-[10px] h-[24px]`,children:[W&&_(i,{as:`h2`,className:`text-[18px] font-bold text-text1 line-clamp-1 flex-1 min-w-0 mr-[12px]`,children:W}),G&&v(o,{href:G,className:`flex items-center text-[14px] text-text2 ml-auto`,children:[`更多`,_(l,{className:`ml-[2px] h-[12px] w-[12px] text-text2`})]})]}),v(r,{className:`relative`,children:[j.map((e,t)=>{let{items:n}=e;return n?_(r,{ref:t===0?P:void 0,className:t>0?`mt-3`:``,children:_(d,{data:n})},`large-feature-grid-items-${t}`):null}),q&&_(r,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),q&&_(r,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:K},"aria-hidden":!0,children:_(a,{size:`large`,showLabel:!1,className:`text-theme5`})})]})]})}export{k as LargeFeatureGridClient};
2
+ "use client";import{isClient as e}from"../../../../utils/common.mjs";import{pContentBatchGetVideoDetail as t}from"../../../../service/generated/client.mjs";import{trackAppPageView as n}from"../../../../utils/tracking.mjs";import{Box as r}from"../../../ui/box.mjs";import{Text as i}from"../../../ui/text.mjs";import a from"../../../ui/loading.mjs";import o from"../../../ui/link.mjs";import{useSingleFirstRowHeight as s}from"../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as c}from"../../../../hooks/use-min-duration-loading.mjs";import l from"../../../../assets/icons/common/right_arrow.mjs";import{isFeedAdItem as u}from"../advertisement/feed-ad/index.mjs";import{normalizeRecommendBadgeUrl as d}from"../../../common/list/waterfall-recommend/recommend-badge-style.mjs";import{LargeGridItemClient as f}from"./card-item.mjs";import{largeFeatureGridInspectorDefaultProps as p}from"./schema.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=[],x=p.data??[];function S(e){return e==null}function C(e,t){return S(e)?t:e}function w(e){return typeof e==`string`?e.trim():``}function T(e){return w(e)}function E(e){let t=Number(e);if(!(!Number.isFinite(t)||t<0))return t}function D(e){let t=e,n=w(e.update_status)===`0`,r=(Array.isArray(t.episodes)?t.episodes.length:0)||(Array.isArray(e.video_episodes)?e.video_episodes.length:0)||(Array.isArray(e.links)?e.links.length:0)||(E(e.episode_cnt)??0);return!Number.isFinite(r)||r<=0?``:`${n?`更新至`:`全`}${Math.floor(r)}集`}function O(e,t){return t?{...e,...t,id:C(t.id,e.id),cover:C(t.cover,e.cover),title:C(t.title,e.title),desc:C(t.desc,e.desc),play_count:C(t.play_count,e.play_count),showPlayCount:t.showPlayCount??e.showPlayCount,episodeText:C(t.episodeText,e.episodeText),showEpisode:t.showEpisode??e.showEpisode,score:C(t.score,e.score),useContentCover:t.useContentCover??e.useContentCover,tagImageUrl:C(t.tagImageUrl,e.tagImageUrl)}:e}function k(e,t){if(!t)return e;let n=e.items;return{...e,...t,title:C(t.title,e.title),moreUrl:C(t.moreUrl,e.moreUrl),moreLinkType:t.moreLinkType??e.moreLinkType,items:n?O(n,t.items):t.items}}function A({mode:p=`renderer`,data:S=b}){let C=p===`editor`,O=S??b,A=Array.isArray(O)&&O.length>0,j=h(()=>A?[k(x[0],O[0])]:x,[A,O]),[M,N]=_(j),P=g(``),F=g(null),I=g(null),L=g(!1),{isLoading:R,show:z,hide:B,cancel:V}=c(500);m(()=>{N(j)},[j]);let H=s({enabled:!C,containerRef:F,itemRef:F,deps:[M.length]}),U=h(()=>{if(C||!A)return``;let e=j.map(e=>T(e?.items?.id)).filter(Boolean);return Array.from(new Set(e)).join(`,`)},[A,C,j]);if(m(()=>{if(C||!e()||!U||P.current===U)return;P.current=U;let n=!1;async function r(){try{z();let e=await t({ids:U.split(`,`).filter(Boolean)},{cache:`no-store`}),r=Array.isArray(e.data?.videos)?e.data.videos:[],i=new Map;if(r.forEach(e=>{let t=T(e.video_id||e.id||e.mid);t&&i.set(t,e)}),n)return;N(e=>e.map(e=>{let t=e.items;if(!t||u(t))return e;let n=T(t.id),r=n?i.get(n):void 0;if(!r)return e;let a=r,o=E(a.play_count)??E(r.browse_count)??E(r.view_count),s=D(r),c=w(r.name),l=w(r.description||r.content_description),f=t.useContentCover?w(r.img_x||r.img_y):``,p=d(a.badge_url),m=r.score==null?``:String(r.score).trim();return{...e,items:{...t,title:c||t.title,desc:l||t.desc,...f?{cover:f}:{},play_count:o??t.play_count,episodeText:s||t.episodeText,score:m||t.score,tagImageUrl:p||t.tagImageUrl}}}))}catch(e){console.error(`大图推荐刷新首屏失败(client)`,e)}finally{n||B()}}return r(),()=>{n=!0,V()}},[V,U,B,C,z]),m(()=>{if(C)return;let e=I.current;if(!e)return;let t=new IntersectionObserver(e=>{if(e[0]?.isIntersecting&&!L.current){L.current=!0;let e=M[0]?.title||``;n({page_key:`home`,page_name:`首页`,current_page_key:e,current_page_name:e}),t.disconnect()}},{threshold:.5});return t.observe(e),()=>{t.disconnect()}},[C,M]),!M||M.length===0)return null;let W=M[0],G=W?.title,K=W?.moreUrl,q=H>0?H/2:160,J=!C&&R;return y(r,{ref:I,className:`py-4 no-vw-x-16`,children:[y(r,{className:`flex items-center justify-between mb-[10px] h-[24px]`,children:[G&&v(i,{as:`h2`,className:`text-[18px] font-bold text-text1 line-clamp-1 flex-1 min-w-0 mr-[12px]`,children:G}),K&&y(o,{href:K,className:`flex items-center text-[14px] text-text2 ml-auto`,children:[`更多`,v(l,{className:`ml-[2px] h-[12px] w-[12px] text-text2`})]})]}),y(r,{className:`relative`,children:[M.map((e,t)=>{let{items:n}=e;return n?v(r,{ref:t===0?F:void 0,className:t>0?`mt-3`:``,children:v(f,{data:n})},`large-feature-grid-items-${t}`):null}),J&&v(r,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),J&&v(r,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:q},"aria-hidden":!0,children:v(a,{size:`large`,showLabel:!1,className:`text-theme5`})})]})]})}export{A as LargeFeatureGridClient};
@@ -1,2 +1,2 @@
1
1
 
2
- import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../utils/schema/schema.mjs";import n from"zod";const r=e(e=>({data:e.array(n.object({title:e.string(void 0,{label:`推荐位名称`,required:!1}),moreUrl:e.string(void 0,{label:`更多链接`,required:!1}),moreLinkType:e.string(`content-list`,{label:`更多链接类型`,required:!1}),items:e.object({id:e.string(void 0,{label:`内容ID`}),is_ad:e.boolean(!1,{fieldType:`switch`,label:`是否广告`,required:!1}),ad:e.object({ad_code:e.string(void 0,{label:`广告业务编码`,required:!1}),ad_advertise_url:e.string(void 0,{label:`广告跳转链接`,required:!1}),ad_advertise_icon:e.string(void 0,{label:`广告素材地址`,required:!1}),ad_advertise_type:e.number(void 0,{label:`广告类型`,required:!1}),ad_advertise_desc:e.string(void 0,{label:`广告文案描述`,required:!1}),ad_ext_data:e.string(void 0,{label:`广告扩展信息`,required:!1})},{label:`广告对象`,required:!1}),ad_advertise_url:e.string(void 0,{label:`广告跳转链接`,required:!1}),ad_advertise_icon:e.string(void 0,{label:`广告素材地址`,required:!1}),cover:e.string(void 0,{label:`封面`}),play_count:e.string(void 0,{label:`播放量`,required:!1}),showPlayCount:e.boolean(!0,{fieldType:`switch`,label:`展示播放量`,required:!1}),episodeText:e.string(void 0,{label:`集数文案`,required:!1}),showEpisode:e.boolean(!0,{fieldType:`switch`,label:`展示集数`,required:!1}),useContentCover:e.boolean(!0,{fieldType:`switch`,label:`沿用内容海报`,required:!1}),title:e.string(void 0,{label:`内容标题`}),desc:e.string(void 0,{label:`内容简介`,required:!1}),tagImageUrl:e.string(void 0,{label:`角标图`,required:!1})})}),{label:`大图推荐数据`,required:!1,defaultValue:[{title:`推荐位名称`,moreUrl:`/channel`,moreLinkType:`content-list`,items:{id:`22edc8693ebbdaf1`,cover:`https://base-resources.guadd.fun/md-204/dcc-file/f7/f70a9f9f0c17aa9aff6c3a3e03a822db-small.jpg`,play_count:`11111`,showPlayCount:!0,episodeText:`连载中`,showEpisode:!0,useContentCover:!0,title:`穷小伙一睁眼穿越古代,娶个老婆就能得到奖励,后宫3000宠都宠不过来!谁料女帝主动送上门来,征服女帝可以直接开终极宝箱,不用选择全都可以!`,desc:`穷小伙一睁眼穿越古代,娶个老婆就能得到奖励,后宫3000宠都宠不过来!谁料女帝主动送上门来,征服女帝可以直接开终极宝箱,不用选择全都可以!`}}]})})),i=t(r);export{i as largeFeatureGridInspectorDefaultProps,r as largeFeatureGridInspectorPropsSchema};
2
+ import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../utils/schema/schema.mjs";import n from"zod";const r=e(e=>({data:e.array(n.object({title:e.string(void 0,{label:`推荐位名称`,required:!1}),moreUrl:e.string(void 0,{label:`更多链接`,required:!1}),moreLinkType:e.string(`content-list`,{label:`更多链接类型`,required:!1}),items:e.object({id:e.string(void 0,{label:`内容ID`}),is_ad:e.boolean(!1,{fieldType:`switch`,label:`是否广告`,required:!1}),ad:e.object({ad_code:e.string(void 0,{label:`广告业务编码`,required:!1}),ad_advertise_url:e.string(void 0,{label:`广告跳转链接`,required:!1}),ad_advertise_icon:e.string(void 0,{label:`广告素材地址`,required:!1}),ad_advertise_type:e.number(void 0,{label:`广告类型`,required:!1}),ad_advertise_desc:e.string(void 0,{label:`广告文案描述`,required:!1}),ad_ext_data:e.string(void 0,{label:`广告扩展信息`,required:!1})},{label:`广告对象`,required:!1}),ad_advertise_url:e.string(void 0,{label:`广告跳转链接`,required:!1}),ad_advertise_icon:e.string(void 0,{label:`广告素材地址`,required:!1}),cover:e.string(void 0,{label:`封面`}),play_count:e.string(void 0,{label:`播放量`,required:!1}),showPlayCount:e.boolean(!0,{fieldType:`switch`,label:`展示播放量`,required:!1}),episodeText:e.string(void 0,{label:`集数文案`,required:!1}),showEpisode:e.boolean(!0,{fieldType:`switch`,label:`展示集数`,required:!1}),score:e.string(void 0,{label:`评分`,required:!1}),useContentCover:e.boolean(!0,{fieldType:`switch`,label:`沿用内容海报`,required:!1}),title:e.string(void 0,{label:`内容标题`}),desc:e.string(void 0,{label:`内容简介`,required:!1}),tagImageUrl:e.string(void 0,{label:`角标图`,required:!1})})}),{label:`大图推荐数据`,required:!1,defaultValue:[{title:`推荐位名称`,moreUrl:`/channel`,moreLinkType:`content-list`,items:{id:`22edc8693ebbdaf1`,cover:`https://base-resources.guadd.fun/md-204/dcc-file/f7/f70a9f9f0c17aa9aff6c3a3e03a822db-small.jpg`,play_count:`11111`,showPlayCount:!0,episodeText:`连载中`,showEpisode:!0,score:`93`,useContentCover:!0,title:`穷小伙一睁眼穿越古代,娶个老婆就能得到奖励,后宫3000宠都宠不过来!谁料女帝主动送上门来,征服女帝可以直接开终极宝箱,不用选择全都可以!`,desc:`穷小伙一睁眼穿越古代,娶个老婆就能得到奖励,后宫3000宠都宠不过来!谁料女帝主动送上门来,征服女帝可以直接开终极宝箱,不用选择全都可以!`}}]})})),i=t(r);export{i as largeFeatureGridInspectorDefaultProps,r as largeFeatureGridInspectorPropsSchema};
@@ -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{gUserGetUserEditInfo as n,pUserEditUserInfo as r}from"../../../../../service/generated/client.mjs";import{uploadFile as i}from"../../../../../utils/upload-file.mjs";import{Button as a}from"../../../../ui/button.mjs";import{Avatar as o,AvatarFallback as s,AvatarImage as c}from"../../../../ui/avatar.mjs";import{Box as l}from"../../../../ui/box.mjs";import{Input as u}from"../../../../ui/input.mjs";import{Dialog as d,DialogContent as f}from"../../../../ui/dialog.mjs";import{Text as p}from"../../../../ui/text.mjs";import{useDeleteRequest as m}from"../../../../../hooks/query/use-query.mjs";import{trackProfilePageClick as h}from"../tracking.mjs";import{ImageCropModal as g}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{toast as _}from"sonner";import{useRef as v,useState as y}from"react";import{Fragment as b,jsx as x,jsxs as S}from"react/jsx-runtime";import{useTranslations as C}from"next-intl";const w=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,T=[`image/jpeg`,`image/png`];function E(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return T.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function D({isMine:T,src:D,alt:O,onUnauthorizedClick:k}){let A=C(`components.pages.profile`),j=v(null),{userId:M,setUserInfo:N,userInfo:P}=t(),F=m(),[I,L]=y(!1),[R,z]=y(!1),[B,V]=y(``),[H,U]=y(!1);function W(e){if(h(e,`avatar`),!H){if(T){L(!0);return}k?.()}}function G(){B&&(URL.revokeObjectURL(B),V(``))}function K(){L(!1)}function q(){H||j.current?.click()}async function J(e){let t=(await n({user_id:String(M)})).data;return{user_id:String(M),nick_name:t?.nick_name??P?.nick_name??void 0,avatar:e||void 0,signature:t?.signature??P?.signature??void 0,gender:t?.gender??P?.gender??void 0}}function Y(e){let t=e.target.files?.[0];if(t){if(!E(t)){_.error(A(`client.imageTypeInvalid`)),e.target&&(e.target.value=``);return}if(t.size>5242880){_.error(A(`client.imageTooLarge`)),e.target&&(e.target.value=``);return}V(URL.createObjectURL(t)),z(!0),e.target&&(e.target.value=``)}}async function X(e){if(!M){_.error(A(`client.loginRequiredForUpload`));return}try{U(!0);let t=await i(new File([e],`avatar.jpg`,{type:`image/jpeg`}),1),n=await J(t.objectKey);await r(n),N({...P,nick_name:n.nick_name,avatar:t.objectKey,signature:n.signature,gender:n.gender}),F([`user-profile`,`mine`]),F([`user-profile`,`profile`,String(M)]),F([`user-edit-info`,String(M)]),L(!1),z(!1),_.success(A(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传头像失败`,e),_.error(A(`client.uploadFailed`))}finally{G(),U(!1)}}function Z(){z(!1),G()}return S(b,{children:[T||k?x(a,{variant:`ghost`,size:`icon`,className:`h-[72px] w-[72px] rounded-full p-0 hover:bg-transparent`,onClick:W,"aria-label":`打开头像预览`,children:x(l,{className:`flex h-[72px] w-[72px] items-center justify-center rounded-full bg-[var(--color-surface-white20)]`,children:S(o,{className:`h-[60px] w-[60px] border-[3px] border-[var(--color-surface-white20)]`,children:[x(c,{src:D||w,alt:O||`avatar`}),x(s,{})]})})}):x(l,{className:`flex h-[72px] w-[72px] items-center justify-center rounded-full bg-[var(--color-surface-white20)]`,children:S(o,{className:`h-[60px] w-[60px] border-[3px] border-[var(--color-surface-white20)]`,children:[x(c,{src:D||w,alt:O||`avatar`}),x(s,{})]})}),x(d,{open:I,onOpenChange:K,children:x(f,{showCloseButton:!1,className:`bg-transparent !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto `,children:S(l,{className:`fixed top-0 left-0 right-0 bottom-0 z-50 bg-black flex h-full w-full flex-col items-center justify-center`,children:[x(a,{variant:`ghost`,size:`icon`,className:`absolute left-0 top-0 h-14 w-14 text-text1 hover:bg-transparent hover:text-[var(--color-text-secondary)]`,onClick:K,"aria-label":`关闭头像预览`,children:x(`svg`,{className:`w-4 h-4`,xmlns:`http://www.w3.org/2000/svg`,fill:`currentColor`,viewBox:`0 0 16 16`,children:x(`path`,{d:`M14.55.2a.889.889 0 0 1 1.25 1.25l-.06.067L9.255 8l6.483 6.482.06.069a.888.888 0 0 1-1.25 1.25l-.067-.062L8 9.256l-6.482 6.483A.888.888 0 1 1 .26 14.482L6.742 8 .26 1.517.2 1.45A.888.888 0 0 1 1.45.2l.067.062 6.482 6.482L14.482.261l.068-.062Z`})})}),S(o,{className:`w-50 h-50`,children:[x(c,{src:D||w,alt:O||`avatar`}),x(s,{})]}),S(a,{variant:`ghost`,className:e(`absolute bottom-8 left-0 right-0 mx-auto flex w-[366px] max-w-[90%] items-center justify-between rounded-3xl bg-[var(--color-surface-white10)] px-3 py-3 transition-colors hover:bg-[var(--color-surface-white20)]`,`active:scale-95 h-auto`),onClick:q,disabled:H,children:[x(p,{as:`span`,className:`text-base font-medium text-text1`,children:H?`上传中...`:`更换头像`}),S(`svg`,{className:`w-6 h-6 text-text1`,xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:[x(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z`}),x(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15 13a3 3 0 11-6 0 3 3 0 016 0z`})]})]})]})})}),x(u,{ref:j,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:Y}),x(g,{open:R,onClose:Z,imageSrc:B,onConfirm:X})]})}export{D as UserProfileAvatar};
2
+ "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{useUserStore as t}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserEditInfo as n,pUserEditUserInfo as r}from"../../../../../service/generated/client.mjs";import{uploadFile as i}from"../../../../../utils/upload-file.mjs";import{Button as a}from"../../../../ui/button.mjs";import{Avatar as o,AvatarFallback as s,AvatarImage as c}from"../../../../ui/avatar.mjs";import{Box as l}from"../../../../ui/box.mjs";import{Input as u}from"../../../../ui/input.mjs";import{Dialog as d,DialogContent as f}from"../../../../ui/dialog.mjs";import{Text as p}from"../../../../ui/text.mjs";import{useDeleteRequest as m}from"../../../../../hooks/query/use-query.mjs";import{trackProfilePageClick as h}from"../tracking.mjs";import{ImageCropModal as g}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{toast as _}from"sonner";import{useRef as v,useState as y}from"react";import{Fragment as b,jsx as x,jsxs as S}from"react/jsx-runtime";import{useTranslations as C}from"next-intl";const w=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,T=[`image/jpeg`,`image/png`];function E(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return T.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function D({isMine:T,src:D,alt:O,onUnauthorizedClick:k}){let A=C(`components.pages.profile`),j=v(null),{userId:M,setUserInfo:N,userInfo:P}=t(),F=m(),[I,L]=y(!1),[R,z]=y(!1),[B,V]=y(``),[H,U]=y(!1);function W(e){if(h(e,`avatar`),!H){if(T){L(!0);return}k?.()}}function G(){B&&(URL.revokeObjectURL(B),V(``))}function K(){L(!1)}function q(){H||j.current?.click()}async function J(e){let t=(await n({user_id:String(M)})).data;return{user_id:String(M),nick_name:t?.nick_name??P?.nick_name??void 0,avatar:e||void 0,signature:t?.signature??P?.signature??void 0,gender:t?.gender??P?.gender??void 0}}function Y(e){let t=e.target.files?.[0];if(t){if(!E(t)){_.error(A(`client.imageTypeInvalid`)),e.target&&(e.target.value=``);return}if(t.size>5242880){_.error(A(`client.imageTooLarge`)),e.target&&(e.target.value=``);return}V(URL.createObjectURL(t)),z(!0),e.target&&(e.target.value=``)}}async function X(e){if(!M){_.error(A(`client.loginRequiredForUpload`));return}try{U(!0);let t=await i(new File([e],`avatar.jpg`,{type:`image/jpeg`}),1),n=await J(t.objectKey);await r(n),N({...P,nick_name:n.nick_name,avatar:t.objectKey,signature:n.signature,gender:n.gender}),F([`user-profile`,`mine`]),F([`user-profile`,`profile`,String(M)]),F([`user-edit-info`,String(M)]),L(!1),z(!1),_.success(A(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传头像失败`,e),_.error(A(`client.uploadFailed`))}finally{G(),U(!1)}}function Z(){z(!1),G()}return S(b,{children:[T||k?x(a,{variant:`ghost`,size:`icon`,className:`h-[72px] w-[72px] rounded-full p-0 hover:bg-transparent`,onClick:W,"aria-label":`打开头像预览`,children:x(l,{className:`flex h-[72px] w-[72px] items-center justify-center rounded-full bg-[var(--color-surface-white20)]`,children:S(o,{className:`h-[60px] w-[60px] border-[3px] border-[var(--color-surface-white20)]`,children:[x(c,{src:D||w,alt:O||`avatar`}),x(s,{})]})})}):x(l,{className:`flex h-[72px] w-[72px] items-center justify-center rounded-full bg-[var(--color-surface-white20)]`,children:S(o,{className:`h-[60px] w-[60px] border-[3px] border-[var(--color-surface-white20)]`,children:[x(c,{src:D||w,alt:O||`avatar`}),x(s,{})]})}),x(d,{open:I,onOpenChange:K,children:x(f,{showCloseButton:!1,className:`bg-transparent !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto `,children:S(l,{className:`fixed top-0 left-0 right-0 bottom-0 z-50 bg-black flex h-full w-full flex-col items-center justify-center`,children:[x(a,{variant:`ghost`,size:`icon`,className:`absolute left-0 top-0 h-14 w-14 text-text1 hover:bg-transparent hover:text-[var(--color-text-secondary)]`,onClick:K,"aria-label":`关闭头像预览`,children:x(`svg`,{className:`w-4 h-4`,xmlns:`http://www.w3.org/2000/svg`,fill:`currentColor`,viewBox:`0 0 16 16`,children:x(`path`,{d:`M14.55.2a.889.889 0 0 1 1.25 1.25l-.06.067L9.255 8l6.483 6.482.06.069a.888.888 0 0 1-1.25 1.25l-.067-.062L8 9.256l-6.482 6.483A.888.888 0 1 1 .26 14.482L6.742 8 .26 1.517.2 1.45A.888.888 0 0 1 1.45.2l.067.062 6.482 6.482L14.482.261l.068-.062Z`})})}),S(o,{className:`w-50 h-50`,children:[x(c,{src:D||w,alt:O||`avatar`}),x(s,{})]}),S(a,{variant:`ghost`,className:e(`absolute bottom-8 left-0 right-0 mx-auto flex w-[366px] max-w-[90%] items-center justify-between rounded-[12px] bg-[var(--color-surface-white10)] p-[12px] transition-colors hover:bg-[var(--color-surface-white20)]`,`active:scale-95 h-auto`),onClick:q,disabled:H,children:[x(p,{as:`span`,className:`text-base font-medium text-text1`,children:H?`上传中...`:`更换头像`}),S(`svg`,{className:`w-6 h-6 text-text1`,xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:[x(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z`}),x(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15 13a3 3 0 11-6 0 3 3 0 016 0z`})]})]})]})})}),x(u,{ref:j,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:Y}),x(g,{open:R,onClose:Z,imageSrc:B,onConfirm:X})]})}export{D as UserProfileAvatar};
@@ -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)] px-4 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 px-4 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}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};
@@ -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:`linear-gradient(179.56deg, rgba(8, 2, 17, 0.5) 1.27%, rgba(8, 2, 17, 0) 33.97%, rgba(8, 2, 17, 0) 63.33%, rgba(8, 2, 17, 0.5) 98.57%)`};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 gap-3`,children:[f(o,{className:`shrink-0 rounded-[8px] bg-white/8 ${h}`}),p(n,{className:`flex min-w-0 flex-1 flex-col gap-4 pt-1`,children:[f(o,{className:`h-5 w-full rounded bg-white/8`}),f(o,{className:`h-4 w-full rounded bg-white/8`})]})]},`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 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:`linear-gradient(179.56deg, rgba(8, 2, 17, 0.5) 1.27%, rgba(8, 2, 17, 0) 33.97%, rgba(8, 2, 17, 0) 63.33%, rgba(8, 2, 17, 0.5) 98.57%)`};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};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import e from"../../../../utils/event-bus.mjs";import{useUserStore as t}from"../../../../store/modules/user-store.mjs";import{trackKeywordClick as n}from"../../../../utils/tracking.mjs";import{useRouter as r}from"../../../../utils/use-compatible-router.mjs";import{Box as i}from"../../../ui/box.mjs";import{Text as a}from"../../../ui/text.mjs";import{eventKey as o}from"../../../../constants/event-key.mjs";import{useSearchHistory as s}from"../../../../hooks/use-search-history.mjs";import{DeleteConfirmDialog as c}from"../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{DeleteIcon as l}from"../../../common/icons/delete.mjs";import{usePathname as u,useSearchParams as d}from"next/navigation";import{useLayoutEffect as f,useMemo as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";function v(e,t){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function y(y){let{title:b,rows:x=2,clearText:S,confirmDescription:C,onHistoryClick:w,mode:T=`renderer`}=y,E=T===`editor`,D=b??`搜索历史`,O=S??`清空`,k=C??`确定要清除所有搜索历史吗?`,A=p(()=>[`海市蜃楼`,`迷雾追凶`,`夜行者`,`狂飙`,`三大队`,`破冰行动`],[]),[j,M]=h(!1),[N,P]=h(null),F=m(null),I=m([]),L=m(null),R=r(),z=u(),B=d(),{userInfo:V}=t(),{history:H,addHistory:U,clearHistory:W}=s({storageKey:V?.user_id||`guest`}),G=()=>{W(),M(!1),e.emit(o.SEARCH_HISTORY_UPDATE)},K=p(()=>(H.length?H:T===`editor`?A:[]).slice(0,x*10),[H,T,A,x]);if(f(()=>{if(K.length===0){P(null);return}let e=F.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),n=[];I.current.slice(0,K.length).forEach(e=>{if(!e)return;let r=e.getBoundingClientRect(),i=Math.round(r.top-t.top),a=Math.round(r.bottom-t.top),o=n.find(e=>Math.abs(e.top-i)<=1);if(o){o.bottom=Math.max(o.bottom,a);return}n.push({top:i,bottom:a})}),n.sort((e,t)=>e.top-t.top);let r=n.slice(0,x).reduce((e,t)=>Math.max(e,t.bottom),0);P(e=>e===r?e:r)},n=()=>{L.current!=null&&cancelAnimationFrame(L.current),L.current=requestAnimationFrame(()=>{L.current=null,t()})};if(n(),typeof ResizeObserver>`u`)return()=>{L.current!=null&&(cancelAnimationFrame(L.current),L.current=null)};let r=new ResizeObserver(()=>{n()});return r.observe(e),I.current.slice(0,K.length).forEach(e=>{e&&r.observe(e)}),()=>{r.disconnect(),L.current!=null&&(cancelAnimationFrame(L.current),L.current=null)}},[K,x]),K.length===0)return null;let q=(e,t)=>{if(n({keyword:e,click_item_id:``,click_item_type_key:``,click_item_type_name:``,click_position:t,search_trace_id:``}),U(e),w){w(e);return}let r=new URLSearchParams(B.toString());r.set(`q`,e);let i=z.includes(`/search-result`)?z:`/search-result`;R.push(`${i}?${r.toString()}`)};return _(i,{className:E?`mt-[24px] px-[16px] py-[16px]`:`mt-[24px] px-[16px] py-0`,children:[_(i,{className:`mb-[15px] flex items-center justify-between`,children:[g(a,{className:`font-['PingFang_SC'] text-[16px] font-medium not-italic leading-normal text-white`,children:D}),g(`button`,{type:`button`,"aria-label":O,className:`flex h-[24px] w-[24px] shrink-0 items-center justify-center text-white/50`,onClick:()=>M(!0),children:g(l,{className:`h-[24px] w-[24px]`})})]}),g(i,{ref:F,className:`flex flex-wrap content-start items-center gap-[6px] overflow-hidden`,style:N?{maxHeight:`${N}px`}:void 0,children:K.map((e,t)=>g(i,{ref:e=>{I.current[t]=e},className:`flex min-w-[56px] cursor-pointer items-center justify-center rounded-full px-[8px] py-[4px] ${E?`bg-[#1F1F1F]/10`:`bg-white/20`}`,onClick:()=>q(e,t),children:g(a,{className:`max-w-full whitespace-nowrap font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[20px] text-white`,children:v(e,8)})},t))}),g(c,{open:j,onOpenChange:M,onConfirm:G,title:``,description:k})]})}export{y as SearchHistoryClient};
2
+ "use client";import e from"../../../../utils/event-bus.mjs";import{useUserStore as t}from"../../../../store/modules/user-store.mjs";import{trackKeywordClick as n}from"../../../../utils/tracking.mjs";import{useRouter as r}from"../../../../utils/use-compatible-router.mjs";import{Box as i}from"../../../ui/box.mjs";import{Text as a}from"../../../ui/text.mjs";import{eventKey as o}from"../../../../constants/event-key.mjs";import{useSearchHistory as s}from"../../../../hooks/use-search-history.mjs";import{DeleteConfirmDialog as c}from"../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{DeleteIcon as l}from"../../../common/icons/delete.mjs";import{usePathname as u,useSearchParams as d}from"next/navigation";import{useLayoutEffect as f,useMemo as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";function v(e,t){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function y(y){let{title:b,rows:x=2,clearText:S,confirmDescription:C,onHistoryClick:w,mode:T=`renderer`}=y,E=T===`editor`,D=b??`搜索历史`,O=S??`清空`,k=C??`确定要清除所有搜索历史吗?`,A=p(()=>[`海市蜃楼`,`迷雾追凶`,`夜行者`,`狂飙`,`三大队`,`破冰行动`],[]),[j,M]=h(!1),[N,P]=h(null),F=m(null),I=m([]),L=m(null),R=r(),z=u(),B=d(),{userInfo:V}=t(),{history:H,addHistory:U,clearHistory:W}=s({storageKey:V?.user_id||`guest`}),G=()=>{W(),M(!1),e.emit(o.SEARCH_HISTORY_UPDATE)},K=p(()=>(H.length?H:T===`editor`?A:[]).slice(0,x*10),[H,T,A,x]);if(f(()=>{if(K.length===0){P(null);return}let e=F.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),n=[];I.current.slice(0,K.length).forEach(e=>{if(!e)return;let r=e.getBoundingClientRect(),i=Math.round(r.top-t.top),a=Math.round(r.bottom-t.top),o=n.find(e=>Math.abs(e.top-i)<=1);if(o){o.bottom=Math.max(o.bottom,a);return}n.push({top:i,bottom:a})}),n.sort((e,t)=>e.top-t.top);let r=n.slice(0,x).reduce((e,t)=>Math.max(e,t.bottom),0);P(e=>e===r?e:r)},n=()=>{L.current!=null&&cancelAnimationFrame(L.current),L.current=requestAnimationFrame(()=>{L.current=null,t()})};if(n(),typeof ResizeObserver>`u`)return()=>{L.current!=null&&(cancelAnimationFrame(L.current),L.current=null)};let r=new ResizeObserver(()=>{n()});return r.observe(e),I.current.slice(0,K.length).forEach(e=>{e&&r.observe(e)}),()=>{r.disconnect(),L.current!=null&&(cancelAnimationFrame(L.current),L.current=null)}},[K,x]),K.length===0)return null;let q=(e,t)=>{if(n({keyword:e,click_item_id:``,click_item_type_key:``,click_item_type_name:``,click_position:t,search_trace_id:``}),U(e),w){w(e);return}let r=new URLSearchParams(B.toString());r.set(`q`,e);let i=z.includes(`/search-result`)?z:`/search-result`;R.push(`${i}?${r.toString()}`)};return _(i,{className:E?`mt-[24px] no-vw-x-16 py-[16px]`:`mt-[24px] no-vw-x-16 py-0`,children:[_(i,{className:`mb-[15px] flex items-center justify-between`,children:[g(a,{className:`font-['PingFang_SC'] text-[16px] font-medium not-italic leading-normal text-white`,children:D}),g(`button`,{type:`button`,"aria-label":O,className:`flex h-[24px] w-[24px] shrink-0 items-center justify-center text-white/50`,onClick:()=>M(!0),children:g(l,{className:`h-[24px] w-[24px]`})})]}),g(i,{ref:F,className:`flex flex-wrap content-start items-center gap-[6px] overflow-hidden`,style:N?{maxHeight:`${N}px`}:void 0,children:K.map((e,t)=>g(i,{ref:e=>{I.current[t]=e},className:`flex min-w-[56px] cursor-pointer items-center justify-center rounded-full px-[8px] py-[4px] ${E?`bg-[#1F1F1F]/10`:`bg-white/20`}`,onClick:()=>q(e,t),children:g(a,{className:`max-w-full whitespace-nowrap font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[20px] text-white`,children:v(e,8)})},t))}),g(c,{open:j,onOpenChange:M,onConfirm:G,title:``,description:k})]})}export{y as SearchHistoryClient};
@@ -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{Input as n}from"../../../ui/input.mjs";import{LeftArrowIcon as r}from"../../../common/icons/left-arrow.mjs";import i from"../../../../assets/icons/search.mjs";import a from"../../../../assets/icons/clear.mjs";import{usePathname as o,useSearchParams as s}from"next/navigation";import{useCallback as c,useState as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";function f(e){if(!e||typeof e!=`string`)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.map(e=>e==null?``:String(e).trim()).filter(Boolean):[]}catch{return[]}}function p(p){let{placeholder:m,defaultPlaceholder:h,searchLabel:g,storageKey:_=`guest`,onSearch:v,mode:y=`renderer`}=p,b=m||(h??`请输入搜索内容`),x=g??`搜索`,S=y===`editor`,[C,w]=l(``),T=e(),E=o(),D=s(),O=`search_history_${_}`,k=c(e=>{if(S)return;let t=e.trim();if(t){try{let e=[t,...f(localStorage.getItem(O)).filter(e=>e!==t)].slice(0,20);localStorage.setItem(O,JSON.stringify(e))}catch(e){console.error(`Failed to save search history`,e)}if(v)v(t);else{let e=new URLSearchParams(D.toString());e.set(`q`,t);let n=E.includes(`/search-result`)?E:`/search-result`;T.push(`${n}?${e.toString()}`)}}},[O,S,v,E,T,D]),A=()=>{S||T.back()};return d(t,{className:`flex h-[66px] w-full items-center gap-[8px] px-[16px] py-[16px]${S?` pointer-events-none`:``}`,children:[u(`button`,{type:`button`,"aria-label":`返回`,className:`flex size-[24px] shrink-0 items-center justify-center text-white active:opacity-70`,onClick:A,children:u(r,{className:`h-[16px] w-[16px]`})}),d(t,{className:`flex h-[34px] min-w-0 flex-1 items-center overflow-hidden rounded-[100px] border border-[#E62AFF]/90 bg-black/40 backdrop-blur-[2px]`,children:[d(t,{className:`relative flex h-full min-w-0 flex-1 items-center pl-[12px] pr-[10px]`,children:[u(`span`,{className:`pointer-events-none absolute inset-y-0 left-[12px] flex items-center justify-center`,children:u(i,{className:`h-[14px] w-[14px] text-white/60`})}),u(n,{className:`!h-[20px] !w-full !rounded-none !border-0 !bg-transparent !px-0 !pl-[22px] !pr-[18px] !py-0 !text-[14px] !leading-[20px] !text-white !caret-white placeholder:!text-white/90 focus-visible:!ring-0`,placeholder:b,value:C,maxLength:128,onChange:e=>w(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),k(C))}}),C&&u(`span`,{className:`absolute inset-y-0 right-0 flex items-center justify-center`,children:u(a,{className:`h-[15px] w-[15px] shrink-0 cursor-pointer text-white/50 active:opacity-70`,onClick:()=>w(``)})})]}),u(`button`,{type:`button`,className:`mx-[2px] flex h-[30px] w-[56px] shrink-0 items-center justify-center rounded-[100px] bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-[14px] leading-[20px] text-white active:opacity-90`,onClick:()=>k(C),children:x})]})]})}export{p as SearchInputClient};
2
+ "use client";import{useRouter as e}from"../../../../utils/use-compatible-router.mjs";import{Box as t}from"../../../ui/box.mjs";import{Input as n}from"../../../ui/input.mjs";import{LeftArrowIcon as r}from"../../../common/icons/left-arrow.mjs";import i from"../../../../assets/icons/search.mjs";import a from"../../../../assets/icons/clear.mjs";import{usePathname as o,useSearchParams as s}from"next/navigation";import{useCallback as c,useState as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";function f(e){if(!e||typeof e!=`string`)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.map(e=>e==null?``:String(e).trim()).filter(Boolean):[]}catch{return[]}}function p(p){let{placeholder:m,defaultPlaceholder:h,searchLabel:g,storageKey:_=`guest`,onSearch:v,mode:y=`renderer`}=p,b=m||(h??`请输入搜索内容`),x=g??`搜索`,S=y===`editor`,[C,w]=l(``),T=e(),E=o(),D=s(),O=`search_history_${_}`,k=c(e=>{if(S)return;let t=e.trim();if(t){try{let e=[t,...f(localStorage.getItem(O)).filter(e=>e!==t)].slice(0,20);localStorage.setItem(O,JSON.stringify(e))}catch(e){console.error(`Failed to save search history`,e)}if(v)v(t);else{let e=new URLSearchParams(D.toString());e.set(`q`,t);let n=E.includes(`/search-result`)?E:`/search-result`;T.push(`${n}?${e.toString()}`)}}},[O,S,v,E,T,D]),A=()=>{S||T.back()};return d(t,{className:`flex h-[66px] w-full items-center gap-[8px] no-vw-x-16 py-[16px]${S?` pointer-events-none`:``}`,children:[u(`button`,{type:`button`,"aria-label":`返回`,className:`flex size-[24px] shrink-0 items-center justify-center text-white active:opacity-70`,onClick:A,children:u(r,{className:`h-[16px] w-[16px]`})}),d(t,{className:`flex h-[34px] min-w-0 flex-1 items-center overflow-hidden rounded-[100px] border border-[#E62AFF]/90 bg-black/40 backdrop-blur-[2px]`,children:[d(t,{className:`relative flex h-full min-w-0 flex-1 items-center pl-[12px] pr-[10px]`,children:[u(`span`,{className:`pointer-events-none absolute inset-y-0 left-[12px] flex items-center justify-center`,children:u(i,{className:`h-[14px] w-[14px] text-white/60`})}),u(n,{className:`!h-[20px] !w-full !rounded-none !border-0 !bg-transparent !px-0 !pl-[22px] !pr-[18px] !py-0 !text-[14px] !leading-[20px] !text-white !caret-white placeholder:!text-white/90 focus-visible:!ring-0`,placeholder:b,value:C,maxLength:128,onChange:e=>w(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),k(C))}}),C&&u(`span`,{className:`absolute inset-y-0 right-0 flex items-center justify-center`,children:u(a,{className:`h-[15px] w-[15px] shrink-0 cursor-pointer text-white/50 active:opacity-70`,onClick:()=>w(``)})})]}),u(`button`,{type:`button`,className:`mx-[2px] flex h-[30px] w-[56px] shrink-0 items-center justify-center rounded-[100px] bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-[14px] leading-[20px] text-white active:opacity-90`,onClick:()=>k(C),children:x})]})]})}export{p as SearchInputClient};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../utils/cn.mjs";import{Image as t}from"../../ui/image.mjs";import{Dialog as n,DialogContent as r}from"../../ui/dialog.mjs";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o({open:o,onClose:s,bgUrl:c,onUpload:l}){return i(n,{open:o,onOpenChange:s,children:i(r,{showCloseButton:!1,className:`bg-black !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto`,children:a(`div`,{className:`relative flex h-full w-full flex-col items-center justify-center`,children:[i(`button`,{type:`button`,className:`absolute left-0 focus-within:outline-none top-0 flex h-14 w-14 items-center justify-center text-white transition-colors hover:text-white/80`,onClick:s,children:i(`svg`,{className:`w-4 h-4`,xmlns:`http://www.w3.org/2000/svg`,fill:`currentColor`,viewBox:`0 0 16 16`,children:i(`path`,{d:`M14.55.2a.889.889 0 0 1 1.25 1.25l-.06.067L9.255 8l6.483 6.482.06.069a.888.888 0 0 1-1.25 1.25l-.067-.062L8 9.256l-6.482 6.483A.888.888 0 1 1 .26 14.482L6.742 8 .26 1.517.2 1.45A.888.888 0 0 1 1.45.2l.067.062 6.482 6.482L14.482.261l.068-.062Z`})})}),i(`div`,{className:`relative h-[256px] w-full overflow-hidden bg-white/10`,children:i(t,{src:c||`/images/mine/img_mine_head_bg.png`,alt:`背景图预览`,fill:!0,className:`object-cover`,style:{pointerEvents:`none`}})}),a(`button`,{type:`button`,className:e(`absolute bottom-8 left-0 right-0 mx-auto flex w-[366px] max-w-[90%] items-center justify-between rounded-3xl bg-white/10 px-3 py-3 transition-colors hover:bg-white/20`,`active:scale-95`),onClick:l,children:[i(`span`,{className:`text-base font-medium text-white`,children:`更换背景图`}),a(`svg`,{className:`w-6 h-6 text-white`,xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:[i(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z`}),i(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15 13a3 3 0 11-6 0 3 3 0 016 0z`})]})]})]})})})}export{o as BackgroundPreviewModal};
2
+ "use client";import{cn as e}from"../../../utils/cn.mjs";import{Image as t}from"../../ui/image.mjs";import{Dialog as n,DialogContent as r}from"../../ui/dialog.mjs";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o({open:o,onClose:s,bgUrl:c,onUpload:l}){return i(n,{open:o,onOpenChange:s,children:i(r,{showCloseButton:!1,className:`bg-black !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto`,children:a(`div`,{className:`relative flex h-full w-full flex-col items-center justify-center`,children:[i(`button`,{type:`button`,className:`absolute left-0 focus-within:outline-none top-0 flex h-14 w-14 items-center justify-center text-white transition-colors hover:text-white/80`,onClick:s,children:i(`svg`,{className:`w-4 h-4`,xmlns:`http://www.w3.org/2000/svg`,fill:`currentColor`,viewBox:`0 0 16 16`,children:i(`path`,{d:`M14.55.2a.889.889 0 0 1 1.25 1.25l-.06.067L9.255 8l6.483 6.482.06.069a.888.888 0 0 1-1.25 1.25l-.067-.062L8 9.256l-6.482 6.483A.888.888 0 1 1 .26 14.482L6.742 8 .26 1.517.2 1.45A.888.888 0 0 1 1.45.2l.067.062 6.482 6.482L14.482.261l.068-.062Z`})})}),i(`div`,{className:`relative h-[256px] w-full overflow-hidden bg-white/10`,children:i(t,{src:c||`/images/mine/img_mine_head_bg.png`,alt:`背景图预览`,fill:!0,className:`object-cover`,style:{pointerEvents:`none`}})}),a(`button`,{type:`button`,className:e(`absolute bottom-8 left-0 right-0 mx-auto flex w-[366px] max-w-[90%] items-center justify-between rounded-[12px] bg-white/10 p-[12px] transition-colors hover:bg-white/20`,`active:scale-95`),onClick:l,children:[i(`span`,{className:`text-base font-medium text-white`,children:`更换背景图`}),a(`svg`,{className:`w-6 h-6 text-white`,xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:[i(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z`}),i(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15 13a3 3 0 11-6 0 3 3 0 016 0z`})]})]})]})})})}export{o as BackgroundPreviewModal};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{trackPageClick as e}from"../../../utils/tracking.mjs";import{Box as t}from"../../ui/box.mjs";import{Text as n}from"../../ui/text.mjs";import{Sheet as r,SheetContent as i,SheetHeader as a,SheetTitle as o}from"../../ui/sheet.mjs";import{Switch as s}from"../../ui/switch.mjs";import{useKeepAliveState as c}from"../keep-scroll-position/index.mjs";import l from"../../../assets/icons/common/right_arrow.mjs";import u from"../../ui/popup.mjs";import{toast as d}from"sonner";import{useCallback as f,useEffect as p,useMemo as m,useRef as h,useState as g}from"react";import{Fragment as _,jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as ee}from"next-intl";const b=`funhub:detail-series-popup-query`,x=`funhub:detail-series-popup-close`;function S(e){return e.type===b&&e instanceof CustomEvent}function C({active:e}){return e?y(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`shrink-0`,"aria-hidden":!0,children:[v(`circle`,{cx:`16`,cy:`12`,r:`3`,fill:`white`}),v(`path`,{d:`M8 5H16C19.866 5 23 8.13401 23 12C23 15.866 19.866 19 16 19H8C4.13401 19 1 15.866 1 12C1 8.13401 4.13401 5 8 5ZM16 15C17.6569 15 19 13.6569 19 12C19 10.3431 17.6569 9 16 9C14.3431 9 13 10.3431 13 12C13 13.6569 14.3431 15 16 15Z`,fill:`#9054E5`})]}):y(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`shrink-0`,"aria-hidden":!0,children:[v(`path`,{d:`M1.5 12C1.5 8.68629 4.18629 6 7.5 6H16.5C19.8137 6 22.5 8.68629 22.5 12C22.5 15.3137 19.8137 18 16.5 18H7.5C4.18629 18 1.5 15.3137 1.5 12Z`,stroke:`currentColor`,strokeWidth:`1.5`,strokeOpacity:`0.6`}),v(`circle`,{cx:`9`,cy:`12`,r:`3`,fill:`rgba(255,255,255,0.6)`})]})}function te(){return v(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`block h-[20px] w-[20px]`,"aria-hidden":!0,children:v(`path`,{d:`M10 8.61116L14.8611 3.75L16.25 5.13889L11.3889 10L16.25 14.8611L14.8611 16.25L10 11.3889L5.13889 16.25L3.75 14.8611L8.61111 10L3.75 5.13889L5.13889 3.75L10 8.61116Z`,fill:`currentColor`})})}function w(e,t){let n=String(t||``).trim();if(!n)return e;let r=e.replace(/\s+/g,``);return n.replace(/\s+/g,``)===r?e:`${e} ${n}`}function T(e,t,n){return(e||[]).map((e,r)=>{let i=Number.parseInt(e?.id||``,10),a=Number.isNaN(i)?r+1:i,o=e?.name||``,s=w(n(a),o);return{id:e?.id||`${t}-${a}`,series_num:a,title:s}})}function E(e,t,n){return(e||[]).map((e,r)=>{let i=Number(e?.id),a=Number.isNaN(i)?r+1:i,o=n(a);return{id:e?.id||`${t}-${a}`,series_num:a,title:o}})}function D(e,t,n){return e<=0?n(`singleContent`):n(t===`1`?`completedSeriesTotal`:`ongoingSeriesTotal`,{total:e})}function O(){return v(`span`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 overflow-hidden rounded-[8px] p-[0.5px]`,style:{backgroundImage:`linear-gradient(90deg, rgba(255,30,172,0.7) 0%, rgba(108,67,238,0) 100%), linear-gradient(180deg, #9756E3 0%, #6C43EE 100%)`},children:v(`span`,{className:`block h-full w-full`,style:{borderRadius:`7.5px`,backgroundColor:`#000000`,backgroundImage:`linear-gradient(90deg, rgba(246,206,255,0.1) 0%, rgba(246,206,255,0.1) 100%), linear-gradient(90deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.1) 100%)`}})})}function k(e){return e.mode===`detail`?v(j,{information:e.information,series_num:e.series_num,onEpisodeChange:e.onEpisodeChange}):v(A,{open:e.open,variant:e.variant,title:e.title,videoTitle:e.videoTitle,updateStatus:e.updateStatus,summaryText:e.summaryText,seriesList:e.seriesList,activeEpisodeId:e.activeEpisodeId,showEpisodeTitle:e.showEpisodeTitle,onToggleTitle:e.onToggleTitle,onClose:e.onClose,onSelectEpisode:e.onSelectEpisode,popupBodyStyle:e.popupBodyStyle,popupStylePreset:e.popupStylePreset})}function A({open:e,variant:c,title:l,videoTitle:d,updateStatus:_,summaryText:b,seriesList:x,activeEpisodeId:S,showEpisodeTitle:E=!1,onToggleTitle:k,onClose:A,onSelectEpisode:j,popupBodyStyle:M,popupStylePreset:N=`default`}){let P=ee(`components.common.seriesEpisodes`),F=!!k,I=F&&E,L=c===`popup`&&N===`detail-style-one`,R=h(null),z=h(null),B=m(()=>T(x,`episode`,e=>P(`episodeLabel`,{episode:e})),[x,P]),V=m(()=>{if(B.length===0)return[];let e=[];return B.forEach((t,n)=>{let r=Math.floor(n/50);e[r]||(e[r]=[]),e[r].push(t)}),e},[B,50]),H=m(()=>{if(!S)return 0;let e=B.findIndex(e=>e.id===S);return e<0?0:Math.floor(e/50)},[S,B,50]),[U,W]=g(H);p(()=>{W(H)},[H]);let G=m(()=>typeof b==`string`&&b.trim()?b:D(B.length,_,P),[B.length,b,P,_]),K=l||P(`selectorTitle`),q=String(d||``).trim(),J=f(e=>w(P(`episodeLabel`,{episode:e.series_num}),q),[q,P]);function Y(){let e=R.current;if(e){z.current&&=(window.cancelAnimationFrame(z.current),null),e.scrollTop=0;try{e.scrollTo({top:0,left:0,behavior:`auto`})}catch{}z.current=window.requestAnimationFrame(()=>{z.current=null;let e=R.current;e&&(e.scrollTop=0)})}}p(()=>{e&&Y()},[e,E,U]);function X(e){k&&(k(e),Y())}function Z(e){j?.(e.id,e.series_num),A()}let Q=I?2:5,$=V.length>1?v(`div`,{className:`shrink-0 w-full flex gap-[8px] overflow-x-auto`,children:V.map((e,t)=>{if(e.length===0)return null;let n=t===U,r=t*50+1,i=Math.min((t+1)*50,B.length);return y(`div`,{className:`shrink-0 px-[16px] py-[6px] rounded-[16px] text-[14px] transition-colors cursor-pointer relative overflow-hidden ${n?`text-theme5 bg-bg2`:`text-text2 bg-bg2`}`,onClick:()=>{W(t),Y()},children:[r,`-`,i,n&&v(`div`,{className:`absolute w-full h-full top-0 left-0 opacity-20 bg-theme5`})]},`series-group-${t}`)})}):null,ne=y(`div`,{className:`pb-[8px] flex justify-between`,children:[v(`span`,{className:`text-[16px] text-text1`,children:G}),F&&y(`div`,{className:`flex items-center gap-[4px]`,children:[v(s,{size:`sm`,className:`data-checked:bg-theme5 h-[20px] w-[33px]`,checked:E,onCheckedChange:e=>{X(!!e)}}),v(`button`,{type:`button`,className:`text-[16px] text-text1`,onClick:()=>{X(!E)},children:P(`episodeTitle`)})]})]}),re=v(`div`,{className:`grid w-full gap-2 ${Q===2?`grid-cols-2`:`grid-cols-5`}`,children:(V[U]||[]).map((e,t)=>{let n=!!(S&&e.id===S);return v(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Z(e)},className:`flex items-center justify-center w-full h-[60px] rounded-[8px] border border-line1 border-solid text-[16px] cursor-pointer select-none transition-colors relative overflow-hidden ${n?`font-bold text-theme5 bg-line1`:`text-text1`} ${I?`h-[72px] px-[10px] text-[14px]`:``} ${t%Q===0?``:`border-l-0`}`,children:I?v(`span`,{className:`block w-full truncate leading-[22px]`,children:J(e)}):e.series_num},e.id)})}),ie=V.length>1?v(`div`,{className:`flex gap-[8px] overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:V.map((e,t)=>{if(e.length===0)return null;let n=t===U,r=t*50+1,i=Math.min((t+1)*50,B.length);return v(`button`,{type:`button`,className:`flex h-[28px] w-[72px] shrink-0 items-center justify-center rounded-[100px] px-[4px] transition-colors ${n?`bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-white`:`bg-white/20 text-white`}`,onClick:()=>{W(t),Y()},children:y(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[20px]`,children:[r,`-`,i]})},`series-popup-group-${t}`)})}):null,ae=y(`div`,{className:`flex items-center justify-between`,children:[v(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/60`,children:G}),F&&y(`button`,{type:`button`,className:`flex items-center gap-[3px] text-white/60`,onClick:()=>{X(!E)},children:[v(C,{active:E}),v(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/60`,children:P(`episodeTitle`)})]})]}),oe=I?v(`div`,{className:`flex w-full flex-col gap-[12px]`,children:(V[U]||[]).map(e=>{let t=!!(S&&e.id===S);return y(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Z(e)},className:`relative flex w-full items-start overflow-hidden rounded-[8px] px-[16px] py-[18px] text-left transition-colors ${t?L?``:`border border-[#FF1EFF] bg-[linear-gradient(90deg,rgba(246,206,255,0.1)_0%,rgba(246,206,255,0.1)_100%),linear-gradient(90deg,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0.1)_100%)]`:`bg-white/10`}`,children:[t&&L&&v(O,{}),v(`span`,{className:`relative z-[1] block w-full truncate font-['PingFang_SC'] text-[14px] ${t?`font-medium leading-[16px] text-[#CA3FE9]`:`font-normal leading-[16px] text-white/80`}`,children:J(e)})]},`popup-${e.id}`)})}):v(`div`,{className:`grid w-full grid-cols-[repeat(6,52px)] justify-between gap-y-[8px]`,children:(V[U]||[]).map(e=>{let t=!!(S&&e.id===S);return y(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Z(e)},className:`relative flex h-[52px] w-[52px] items-center justify-center overflow-hidden rounded-[8px] transition-colors ${t?L?`text-[#9756E3]`:`border border-[#E62AFF]/90 bg-[linear-gradient(90deg,rgba(246,206,255,0.1)_0%,rgba(246,206,255,0.1)_100%),linear-gradient(90deg,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0.1)_100%)] text-[#9756E3]`:`bg-white/10 text-white/80`}`,children:[t&&L&&v(O,{}),v(`span`,{className:`relative z-[1] font-['PingFang_SC'] text-[16px] font-medium not-italic leading-[16px]`,children:e.series_num})]},`popup-${e.id}`)})});return c===`sheet`?v(r,{open:e,onOpenChange:e=>!e&&A(),children:y(i,{side:`bottom`,showCloseButton:!0,className:`min-h-[50vh] bg-bg1 text-text1 rounded-t-2xl border-t border-white/10`,children:[v(a,{className:`pt-3 pb-0`,children:v(o,{className:`flex items-center justify-between text-lg text-text1`,children:K})}),y(`div`,{className:`px-4 pb-2 flex flex-col gap-3`,children:[$,ne]}),v(`div`,{ref:R,className:`flex-1 h-0 pt-[4px] pb-[12px] overflow-y-auto px-4`,children:re})]})}):v(u,{open:e,onOpenChange:e=>{e||A()},showCloseButton:!1,className:`!gap-0 !border-0 !bg-transparent !p-0 !shadow-none`,overlayClassName:`bg-black/50 backdrop-blur-0`,children:y(t,{className:`flex h-full w-full flex-col overflow-hidden rounded-t-[16px] bg-black text-text1`,style:{height:`70vh`,...M},children:[y(t,{className:`shrink-0 flex items-center justify-between px-[16px] pt-[32px]`,children:[v(n,{className:`font-['PingFang_SC'] text-[18px] font-medium not-italic leading-[24px] text-white`,children:K}),v(`button`,{type:`button`,"aria-label":`关闭`,className:`flex h-[24px] w-[24px] items-center justify-center text-white opacity-60`,onClick:A,children:v(`span`,{className:`flex h-[24px] w-[24px] items-center overflow-hidden p-[2px]`,children:v(te,{})})})]}),v(t,{className:`flex-1 h-0 w-full px-[16px] pb-[24px]`,children:y(t,{className:`flex h-full flex-col`,children:[ie&&v(t,{className:`mt-[16px] shrink-0`,children:ie}),v(t,{className:`mt-[16px] shrink-0`,children:ae}),v(t,{ref:R,className:`flex-1 overflow-y-auto pb-[17px] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden ${I?`mt-[12px]`:`mt-[8px]`}`,children:oe})]})})]})})}function j({information:r,series_num:i,onEpisodeChange:a}){let o=ee(`components.common`),[s,u]=c(`detail-series-popup-${r.id}`,!1),[C,te]=c(`detail-series-title-toggle-${r.id}`,!1),[w,T]=c(`detail-series-scroll-left-${r.id}`,null),[D,k]=g(i);p(()=>{k(i)},[r.id,i]),p(()=>{if(typeof window>`u`)return;let e=()=>{u(!1)};return window.addEventListener(x,e),()=>{window.removeEventListener(x,e)}},[u]),p(()=>{if(typeof window>`u`)return;let e=e=>{if(!S(e))return;let t=e.detail||{};t.open=!!t.open||!!s};return window.addEventListener(b,e),()=>{window.removeEventListener(b,e)}},[s]),p(()=>{s&&e(`page_video_detail`,`详情页`,null,`detail_select_episode_popup`)},[s]);let j=m(()=>E((r.links||[]).map(e=>({id:e.id,name:e.name})),r.id||`episode`,e=>o(`seriesEpisodes.episodeLabel`,{episode:e})),[r.id,r.links,o]),M=r.update_status===`1`?o(`seriesEpisodes.completedSeriesTotal`,{total:r.links.length}):o(`seriesEpisodes.ongoingSeriesUpdatedTo`,{total:r.links.length}),N=m(()=>r.links[D-1]?.id||r.links[0]?.id||``,[r.links,D]),P=h(null),F=h(null),I=h(null),L=h(!1),R=h(null),z=h(null),B=h(null),[V,H]=g(!1),U=f((e,t=`smooth`)=>{let n=P.current?.querySelector(`[data-content-id="${e}"]`);if(n&&P.current){let e=P.current,r=Math.max(0,n.offsetLeft-10);e.scrollTo({left:r,behavior:t})}},[]),W=f(()=>{z.current!==null&&(window.clearTimeout(z.current),z.current=null)},[]),G=f(()=>{B.current!==null&&(window.clearTimeout(B.current),B.current=null)},[]),K=f(()=>{R.current!==null&&(d.dismiss(R.current),R.current=null),W(),G()},[G,W]),q=f(()=>{F.current=null,I.current=null,K(),H(!1)},[K]),J=f((e,t)=>{G(),B.current=window.setTimeout(()=>{B.current=null,F.current===e&&q()},Math.max(0,t))},[G,q]);p(()=>{L.current=!1},[r.id]),p(()=>{if(L.current||!N)return;let e=window.requestAnimationFrame(()=>{let e=P.current;e&&(typeof w==`number`?e.scrollTo({left:Math.max(0,w),behavior:`auto`}):(U(N,`auto`),T(Math.max(0,Math.round(e.scrollLeft)))),L.current=!0)});return()=>{window.cancelAnimationFrame(e)}},[N,w,U,T]),p(()=>{let e=F.current;!e||e!==i||J(e,1e3)},[J,i]),p(()=>()=>{q()},[q]);let Y=f((e,t,n)=>{let r=P.current;if(!r||!e)return t;let i=r.querySelector(`[data-content-id="${e}"]`);if(!i)return t;let a=r.getBoundingClientRect();if(a.width<=0||typeof n!=`number`||(n-a.left)/a.width<.5)return t;let o=i.offsetLeft+i.offsetWidth/2,s=r.clientWidth/2,c=Math.max(0,r.scrollWidth-r.clientWidth),l=Math.min(c,Math.max(0,o-s));return r.scrollTo({left:l,behavior:`smooth`}),Math.round(l)},[]),X=f((e,t=`inline`,n,s)=>{if(e!==D){if(!r.links[e-1]){d.error(o(`seriesEpisodes.episodeNotFound`));return}if(typeof window<`u`&&window.isWebView===!0){try{k(e);let c=n||r.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),T(Math.max(0,Math.round(P.current?.scrollLeft||0)))):T(Y(c,l,s)),H(!0),K(),R.current=d.loading(o(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(k(i),q(),d.error(o(`seriesEpisodes.episodeSwitchFailed`)))},3e3),a(e)}catch(e){k(i),q(),console.error(`切换剧集失败`,e),d.error(o(`seriesEpisodes.episodeSwitchFailed`))}return}try{k(e);let c=n||r.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),T(Math.max(0,Math.round(P.current?.scrollLeft||0)))):T(Y(c,l,s)),H(!0),K(),R.current=d.loading(o(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(k(i),q(),d.error(o(`seriesEpisodes.episodeSwitchFailed`)))},8e3),a(e)}catch(e){k(i),q(),console.error(`切换剧集失败`,e),d.error(o(`seriesEpisodes.episodeSwitchFailed`))}}},[q,K,r.links,a,D,i,Y,U,T,o]),[Z,Q]=g(`70vh`),$=f(()=>{if(typeof window>`u`)return;if(window.isWebView===!0){Q(`100vh`);return}let e=document.getElementById(`selectPopupPosition`),t=window.visualViewport?.height||window.innerHeight;if(!e){Q(`70vh`);return}let n=Math.max(0,t-e.offsetTop);if(n<=0){Q(`70vh`);return}Q(`${n}px`)},[]);return p(()=>{if(!s)return;$();let e=()=>{$()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[$,s]),j.length<=1?null:y(_,{children:[y(t,{className:`w-full mt-[16px] flex flex-col items-end mb-[4px]`,children:[y(t,{className:`w-fit flex items-center px-[12px] h-[28px]`,onClick:()=>{e(`page_video_detail`,`详情页`,null,`detail_select_episode_btn`),u(!0)},children:[v(n,{className:`text-[14px] text-text2 leading-[20px]`,children:M}),v(l,{className:`w-[11px] h-[18px] ml-[4px] text-text2`})]}),v(`div`,{ref:P,className:`w-full mt-[12px] overflow-x-auto px-[12px] flex gap-x-[8px] ${C?`h-[76px]`:`h-[60px]`} ${V?`touch-none`:``}`,children:j.map((t,r)=>y(`div`,{"data-content-id":t.id,className:`relative shrink-0 h-[full] overflow-hidden px-[18px] rounded-[8px] border border-line1 flex items-center ${C?`w-[162px]`:`w-[60px] !px-[0] justify-center`} ${t.id===N?`border-transparent bg-transparent`:``}`,onClick:n=>{e(`page_video_detail`,`详情页`,n,`detail_episode_click`,{episode_num:r+1,episode_id:t.id}),X(r+1,`inline`,t.id,n.clientX)},children:[t.id===N&&v(O,{}),v(n,{className:`relative z-[1] text-[16px] text-text1 leading-[22px] line-clamp-2 ${t.id===N?`font-bold !text-[#CA3FE9]`:``}`,children:C?t.title:t.series_num})]},t.id))})]}),v(A,{title:o(`seriesEpisodes.selectorTitle`),videoTitle:r.name,variant:`popup`,open:s,updateStatus:r.update_status,summaryText:M,seriesList:(r.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:N,showEpisodeTitle:C,onToggleTitle:e=>{te(e)},onClose:()=>u(!1),onSelectEpisode:(e,t)=>{u(!1),X(t,`popup`,e)},popupBodyStyle:{height:Z},popupStylePreset:`default`})]})}export{O as DetailStyleOneActiveBorderLayer,k as SeriesEpisodes};
2
+ "use client";import{trackPageClick as e}from"../../../utils/tracking.mjs";import{Box as t}from"../../ui/box.mjs";import{Text as n}from"../../ui/text.mjs";import{Sheet as r,SheetContent as i,SheetHeader as a,SheetTitle as o}from"../../ui/sheet.mjs";import{Switch as s}from"../../ui/switch.mjs";import{useKeepAliveState as c}from"../keep-scroll-position/index.mjs";import l from"../../../assets/icons/common/right_arrow.mjs";import u from"../../ui/popup.mjs";import{toast as d}from"sonner";import{useCallback as f,useEffect as p,useMemo as m,useRef as h,useState as g}from"react";import{Fragment as _,jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as ee}from"next-intl";const b=`funhub:detail-series-popup-query`,x=`funhub:detail-series-popup-close`;function S(e){return e.type===b&&e instanceof CustomEvent}function C({active:e}){return e?y(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`shrink-0`,"aria-hidden":!0,children:[v(`circle`,{cx:`16`,cy:`12`,r:`3`,fill:`white`}),v(`path`,{d:`M8 5H16C19.866 5 23 8.13401 23 12C23 15.866 19.866 19 16 19H8C4.13401 19 1 15.866 1 12C1 8.13401 4.13401 5 8 5ZM16 15C17.6569 15 19 13.6569 19 12C19 10.3431 17.6569 9 16 9C14.3431 9 13 10.3431 13 12C13 13.6569 14.3431 15 16 15Z`,fill:`#9054E5`})]}):y(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`shrink-0`,"aria-hidden":!0,children:[v(`path`,{d:`M1.5 12C1.5 8.68629 4.18629 6 7.5 6H16.5C19.8137 6 22.5 8.68629 22.5 12C22.5 15.3137 19.8137 18 16.5 18H7.5C4.18629 18 1.5 15.3137 1.5 12Z`,stroke:`currentColor`,strokeWidth:`1.5`,strokeOpacity:`0.6`}),v(`circle`,{cx:`9`,cy:`12`,r:`3`,fill:`rgba(255,255,255,0.6)`})]})}function te(){return v(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`block h-[20px] w-[20px]`,"aria-hidden":!0,children:v(`path`,{d:`M10 8.61116L14.8611 3.75L16.25 5.13889L11.3889 10L16.25 14.8611L14.8611 16.25L10 11.3889L5.13889 16.25L3.75 14.8611L8.61111 10L3.75 5.13889L5.13889 3.75L10 8.61116Z`,fill:`currentColor`})})}function w(e,t){let n=String(t||``).trim();if(!n)return e;let r=e.replace(/\s+/g,``);return n.replace(/\s+/g,``)===r?e:`${e} ${n}`}function T(e,t,n){return(e||[]).map((e,r)=>{let i=Number.parseInt(e?.id||``,10),a=Number.isNaN(i)?r+1:i,o=e?.name||``,s=w(n(a),o);return{id:e?.id||`${t}-${a}`,series_num:a,title:s}})}function E(e,t,n){return(e||[]).map((e,r)=>{let i=Number(e?.id),a=Number.isNaN(i)?r+1:i,o=n(a);return{id:e?.id||`${t}-${a}`,series_num:a,title:o}})}function D(e,t,n){return e<=0?n(`singleContent`):n(t===`1`?`completedSeriesTotal`:`ongoingSeriesTotal`,{total:e})}function O(){return v(`span`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 overflow-hidden rounded-[8px] p-[0.5px]`,style:{backgroundImage:`linear-gradient(90deg, rgba(255,30,172,0.7) 0%, rgba(108,67,238,0) 100%), linear-gradient(180deg, #9756E3 0%, #6C43EE 100%)`},children:v(`span`,{className:`block h-full w-full`,style:{borderRadius:`7.5px`,backgroundColor:`#000000`,backgroundImage:`linear-gradient(90deg, rgba(246,206,255,0.1) 0%, rgba(246,206,255,0.1) 100%), linear-gradient(90deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.1) 100%)`}})})}function k(e){return e.mode===`detail`?v(j,{information:e.information,series_num:e.series_num,onEpisodeChange:e.onEpisodeChange}):v(A,{open:e.open,variant:e.variant,title:e.title,videoTitle:e.videoTitle,updateStatus:e.updateStatus,summaryText:e.summaryText,seriesList:e.seriesList,activeEpisodeId:e.activeEpisodeId,showEpisodeTitle:e.showEpisodeTitle,onToggleTitle:e.onToggleTitle,onClose:e.onClose,onSelectEpisode:e.onSelectEpisode,popupBodyStyle:e.popupBodyStyle,popupStylePreset:e.popupStylePreset})}function A({open:e,variant:c,title:l,videoTitle:d,updateStatus:_,summaryText:b,seriesList:x,activeEpisodeId:S,showEpisodeTitle:E=!1,onToggleTitle:k,onClose:A,onSelectEpisode:j,popupBodyStyle:M,popupStylePreset:N=`default`}){let P=ee(`components.common.seriesEpisodes`),F=!!k,I=F&&E,L=c===`popup`&&N===`detail-style-one`,R=h(null),z=h(null),B=m(()=>T(x,`episode`,e=>P(`episodeLabel`,{episode:e})),[x,P]),V=m(()=>{if(B.length===0)return[];let e=[];return B.forEach((t,n)=>{let r=Math.floor(n/50);e[r]||(e[r]=[]),e[r].push(t)}),e},[B,50]),H=m(()=>{if(!S)return 0;let e=B.findIndex(e=>e.id===S);return e<0?0:Math.floor(e/50)},[S,B,50]),[U,W]=g(H);p(()=>{W(H)},[H]);let G=m(()=>typeof b==`string`&&b.trim()?b:D(B.length,_,P),[B.length,b,P,_]),K=l||P(`selectorTitle`),q=String(d||``).trim(),J=f(e=>w(P(`episodeLabel`,{episode:e.series_num}),q),[q,P]);function Y(){let e=R.current;if(e){z.current&&=(window.cancelAnimationFrame(z.current),null),e.scrollTop=0;try{e.scrollTo({top:0,left:0,behavior:`auto`})}catch{}z.current=window.requestAnimationFrame(()=>{z.current=null;let e=R.current;e&&(e.scrollTop=0)})}}p(()=>{e&&Y()},[e,E,U]);function X(e){k&&(k(e),Y())}function Z(e){j?.(e.id,e.series_num),A()}let Q=I?2:5,$=V.length>1?v(`div`,{className:`shrink-0 w-full flex gap-[8px] overflow-x-auto`,children:V.map((e,t)=>{if(e.length===0)return null;let n=t===U,r=t*50+1,i=Math.min((t+1)*50,B.length);return y(`div`,{className:`shrink-0 px-[16px] py-[6px] rounded-[16px] text-[14px] transition-colors cursor-pointer relative overflow-hidden ${n?`text-theme5 bg-bg2`:`text-text2 bg-bg2`}`,onClick:()=>{W(t),Y()},children:[r,`-`,i,n&&v(`div`,{className:`absolute w-full h-full top-0 left-0 opacity-20 bg-theme5`})]},`series-group-${t}`)})}):null,ne=y(`div`,{className:`pb-[8px] flex justify-between`,children:[v(`span`,{className:`text-[16px] text-text1`,children:G}),F&&y(`div`,{className:`flex items-center gap-[4px]`,children:[v(s,{size:`sm`,className:`data-checked:bg-theme5 h-[20px] w-[33px]`,checked:E,onCheckedChange:e=>{X(!!e)}}),v(`button`,{type:`button`,className:`text-[16px] text-text1`,onClick:()=>{X(!E)},children:P(`episodeTitle`)})]})]}),re=v(`div`,{className:`grid w-full gap-2 ${Q===2?`grid-cols-2`:`grid-cols-5`}`,children:(V[U]||[]).map((e,t)=>{let n=!!(S&&e.id===S);return v(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Z(e)},className:`flex items-center justify-center w-full h-[56px] rounded-[8px] transition-colors ${n?``:`bg-white/10`} cursor-pointer select-none transition-colors relative overflow-hidden ${I?`h-[72px] px-[10px] text-[14px]`:``} ${t%Q===0?``:`border-l-0`}`,children:I?v(`span`,{className:`block w-full truncate leading-[22px]`,children:J(e)}):e.series_num},e.id)})}),ie=V.length>1?v(`div`,{className:`flex gap-[8px] overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:V.map((e,t)=>{if(e.length===0)return null;let n=t===U,r=t*50+1,i=Math.min((t+1)*50,B.length);return v(`button`,{type:`button`,className:`flex h-[28px] w-[72px] shrink-0 items-center justify-center rounded-[100px] px-[4px] transition-colors ${n?`bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-white`:`bg-white/20 text-white`}`,onClick:()=>{W(t),Y()},children:y(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[20px]`,children:[r,`-`,i]})},`series-popup-group-${t}`)})}):null,ae=y(`div`,{className:`flex items-center justify-between`,children:[v(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/60`,children:G}),F&&y(`button`,{type:`button`,className:`flex items-center gap-[3px] text-white/60`,onClick:()=>{X(!E)},children:[v(C,{active:E}),v(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/60`,children:P(`episodeTitle`)})]})]}),oe=I?v(`div`,{className:`flex w-full flex-col gap-[12px]`,children:(V[U]||[]).map(e=>{let t=!!(S&&e.id===S);return y(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Z(e)},className:`relative flex w-full items-start overflow-hidden rounded-[8px] px-[16px] py-[18px] text-left transition-colors ${t?L?``:`border border-[#FF1EFF] bg-[linear-gradient(90deg,rgba(246,206,255,0.1)_0%,rgba(246,206,255,0.1)_100%),linear-gradient(90deg,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0.1)_100%)]`:`bg-white/10`}`,children:[t&&L&&v(O,{}),v(`span`,{className:`relative z-[1] block w-full truncate font-['PingFang_SC'] text-[14px] ${t?`font-medium leading-[16px] text-[#CA3FE9]`:`font-normal leading-[16px] text-white/80`}`,children:J(e)})]},`popup-${e.id}`)})}):v(`div`,{className:`grid w-full grid-cols-[repeat(6,52px)] justify-between gap-y-[8px]`,children:(V[U]||[]).map(e=>{let t=!!(S&&e.id===S);return y(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Z(e)},className:`relative flex h-[52px] w-[52px] items-center justify-center overflow-hidden rounded-[8px] transition-colors ${t?L?`text-[#9756E3]`:`border border-[#E62AFF]/90 bg-[linear-gradient(90deg,rgba(246,206,255,0.1)_0%,rgba(246,206,255,0.1)_100%),linear-gradient(90deg,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0.1)_100%)] text-[#9756E3]`:`bg-white/10 text-white/80`}`,children:[t&&L&&v(O,{}),v(`span`,{className:`relative z-[1] font-['PingFang_SC'] text-[16px] font-medium not-italic leading-[16px]`,children:e.series_num})]},`popup-${e.id}`)})});return c===`sheet`?v(r,{open:e,onOpenChange:e=>!e&&A(),children:y(i,{side:`bottom`,showCloseButton:!0,className:`min-h-[50vh] bg-bg1 text-text1 rounded-t-2xl border-t border-white/10`,children:[v(a,{className:`pt-3 pb-0`,children:v(o,{className:`flex items-center justify-between text-lg text-text1`,children:K})}),y(`div`,{className:`px-4 pb-2 flex flex-col gap-3`,children:[$,ne]}),v(`div`,{ref:R,className:`flex-1 h-0 pt-[4px] pb-[12px] overflow-y-auto px-4`,children:re})]})}):v(u,{open:e,onOpenChange:e=>{e||A()},showCloseButton:!1,className:`!gap-0 !border-0 !bg-transparent !p-0 !shadow-none`,overlayClassName:`bg-black/50 backdrop-blur-0`,children:y(t,{className:`flex h-full w-full flex-col overflow-hidden rounded-t-[16px] bg-black text-text1`,style:{height:`70vh`,...M},children:[y(t,{className:`shrink-0 flex items-center justify-between px-[16px] pt-[32px]`,children:[v(n,{className:`font-['PingFang_SC'] text-[18px] font-medium not-italic leading-[24px] text-white`,children:K}),v(`button`,{type:`button`,"aria-label":`关闭`,className:`flex h-[24px] w-[24px] items-center justify-center text-white opacity-60`,onClick:A,children:v(`span`,{className:`flex h-[24px] w-[24px] items-center overflow-hidden p-[2px]`,children:v(te,{})})})]}),v(t,{className:`flex-1 h-0 w-full px-[16px] pb-[24px]`,children:y(t,{className:`flex h-full flex-col`,children:[ie&&v(t,{className:`mt-[16px] shrink-0`,children:ie}),v(t,{className:`mt-[16px] shrink-0`,children:ae}),v(t,{ref:R,className:`flex-1 overflow-y-auto pb-[17px] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden ${I?`mt-[12px]`:`mt-[8px]`}`,children:oe})]})})]})})}function j({information:r,series_num:i,onEpisodeChange:a}){let o=ee(`components.common`),[s,u]=c(`detail-series-popup-${r.id}`,!1),[C,te]=c(`detail-series-title-toggle-${r.id}`,!1),[w,T]=c(`detail-series-scroll-left-${r.id}`,null),[D,k]=g(i);p(()=>{k(i)},[r.id,i]),p(()=>{if(typeof window>`u`)return;let e=()=>{u(!1)};return window.addEventListener(x,e),()=>{window.removeEventListener(x,e)}},[u]),p(()=>{if(typeof window>`u`)return;let e=e=>{if(!S(e))return;let t=e.detail||{};t.open=!!t.open||!!s};return window.addEventListener(b,e),()=>{window.removeEventListener(b,e)}},[s]),p(()=>{s&&e(`page_video_detail`,`详情页`,null,`detail_select_episode_popup`)},[s]);let j=m(()=>E((r.links||[]).map(e=>({id:e.id,name:e.name})),r.id||`episode`,e=>o(`seriesEpisodes.episodeLabel`,{episode:e})),[r.id,r.links,o]),M=r.update_status===`1`?o(`seriesEpisodes.completedSeriesTotal`,{total:r.links.length}):o(`seriesEpisodes.ongoingSeriesUpdatedTo`,{total:r.links.length}),N=m(()=>r.links[D-1]?.id||r.links[0]?.id||``,[r.links,D]),P=h(null),F=h(null),I=h(null),L=h(!1),R=h(null),z=h(null),B=h(null),[V,H]=g(!1),U=f((e,t=`smooth`)=>{let n=P.current?.querySelector(`[data-content-id="${e}"]`);if(n&&P.current){let e=P.current,r=Math.max(0,n.offsetLeft-10);e.scrollTo({left:r,behavior:t})}},[]),W=f(()=>{z.current!==null&&(window.clearTimeout(z.current),z.current=null)},[]),G=f(()=>{B.current!==null&&(window.clearTimeout(B.current),B.current=null)},[]),K=f(()=>{R.current!==null&&(d.dismiss(R.current),R.current=null),W(),G()},[G,W]),q=f(()=>{F.current=null,I.current=null,K(),H(!1)},[K]),J=f((e,t)=>{G(),B.current=window.setTimeout(()=>{B.current=null,F.current===e&&q()},Math.max(0,t))},[G,q]);p(()=>{L.current=!1},[r.id]),p(()=>{if(L.current||!N)return;let e=window.requestAnimationFrame(()=>{let e=P.current;e&&(typeof w==`number`?e.scrollTo({left:Math.max(0,w),behavior:`auto`}):(U(N,`auto`),T(Math.max(0,Math.round(e.scrollLeft)))),L.current=!0)});return()=>{window.cancelAnimationFrame(e)}},[N,w,U,T]),p(()=>{let e=F.current;!e||e!==i||J(e,1e3)},[J,i]),p(()=>()=>{q()},[q]);let Y=f((e,t,n)=>{let r=P.current;if(!r||!e)return t;let i=r.querySelector(`[data-content-id="${e}"]`);if(!i)return t;let a=r.getBoundingClientRect();if(a.width<=0||typeof n!=`number`||(n-a.left)/a.width<.5)return t;let o=i.offsetLeft+i.offsetWidth/2,s=r.clientWidth/2,c=Math.max(0,r.scrollWidth-r.clientWidth),l=Math.min(c,Math.max(0,o-s));return r.scrollTo({left:l,behavior:`smooth`}),Math.round(l)},[]),X=f((e,t=`inline`,n,s)=>{if(e!==D){if(!r.links[e-1]){d.error(o(`seriesEpisodes.episodeNotFound`));return}if(typeof window<`u`&&window.isWebView===!0){try{k(e);let c=n||r.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),T(Math.max(0,Math.round(P.current?.scrollLeft||0)))):T(Y(c,l,s)),H(!0),K(),R.current=d.loading(o(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(k(i),q(),d.error(o(`seriesEpisodes.episodeSwitchFailed`)))},3e3),a(e)}catch(e){k(i),q(),console.error(`切换剧集失败`,e),d.error(o(`seriesEpisodes.episodeSwitchFailed`))}return}try{k(e);let c=n||r.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),T(Math.max(0,Math.round(P.current?.scrollLeft||0)))):T(Y(c,l,s)),H(!0),K(),R.current=d.loading(o(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(k(i),q(),d.error(o(`seriesEpisodes.episodeSwitchFailed`)))},8e3),a(e)}catch(e){k(i),q(),console.error(`切换剧集失败`,e),d.error(o(`seriesEpisodes.episodeSwitchFailed`))}}},[q,K,r.links,a,D,i,Y,U,T,o]),[Z,Q]=g(`70vh`),$=f(()=>{if(typeof window>`u`)return;if(window.isWebView===!0){Q(`100vh`);return}let e=document.getElementById(`selectPopupPosition`),t=window.visualViewport?.height||window.innerHeight;if(!e){Q(`70vh`);return}let n=Math.max(0,t-e.offsetTop);if(n<=0){Q(`70vh`);return}Q(`${n}px`)},[]);return p(()=>{if(!s)return;$();let e=()=>{$()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[$,s]),j.length<=1?null:y(_,{children:[y(t,{className:`w-full mt-[16px] flex flex-col items-end mb-[4px]`,children:[y(t,{className:`w-fit flex items-center px-[12px] h-[28px]`,onClick:()=>{e(`page_video_detail`,`详情页`,null,`detail_select_episode_btn`),u(!0)},children:[v(n,{className:`text-[14px] text-text2 leading-[20px]`,children:M}),v(l,{className:`w-[11px] h-[18px] ml-[4px] text-text2`})]}),v(`div`,{ref:P,className:`w-full mt-[12px] overflow-x-auto px-[12px] flex gap-x-[8px] h-[56px] ${V?`touch-none`:``}`,children:j.map((t,r)=>y(`div`,{"data-content-id":t.id,className:`relative shrink-0 h-[full] overflow-hidden px-[18px] rounded-[8px] flex items-center justify-center ${C?`min-w-[88px] h-[40px]`:`w-[56px] !px-[0] justify-center`} ${t.id===N?`bg-transparent`:`bg-white/10`}`,onClick:n=>{e(`page_video_detail`,`详情页`,n,`detail_episode_click`,{episode_num:r+1,episode_id:t.id}),X(r+1,`inline`,t.id,n.clientX)},children:[t.id===N&&v(O,{}),v(n,{className:`relative z-[1] text-[14px] text-text1 leading-[22px] line-clamp-2 ${t.id===N?`!text-[#CA3FE9]`:``}`,children:C?t.title:t.series_num})]},t.id))})]}),v(A,{title:o(`seriesEpisodes.selectorTitle`),videoTitle:r.name,variant:`popup`,open:s,updateStatus:r.update_status,summaryText:M,seriesList:(r.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:N,showEpisodeTitle:C,onToggleTitle:e=>{te(e)},onClose:()=>u(!1),onSelectEpisode:(e,t)=>{u(!1),X(t,`popup`,e)},popupBodyStyle:{height:Z},popupStylePreset:`default`})]})}export{O as DetailStyleOneActiveBorderLayer,k as SeriesEpisodes};
@@ -136,6 +136,10 @@ import e from"../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-
136
136
  display: none !important;
137
137
  }
138
138
 
139
+ .style-module_videoBox__4Gmdw .xgplayer-volume.slide-show .xgplayer-slider {
140
+ display: none !important;
141
+ }
142
+
139
143
  .style-module_videoBox__4Gmdw .xgplayer.xgplayer-mobile.xgplayer-is-fullscreen .xg-inner-controls,
140
144
  .style-module_videoBox__4Gmdw .xgplayer.xgplayer-mobile.xgplayer-is-fullscreen .xgplayer-replay,
141
145
  .style-module_videoBox__4Gmdw .xgplayer.xgplayer-mobile.xgplayer-is-fullscreen .xgplayer-loading,
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gCommunityGetHotContentList as t,gContentGetHotVideoList as n}from"../../../service/generated/client.mjs";import{Image as r}from"../../ui/image.mjs";import{Box as i}from"../../ui/box.mjs";import{Text as a}from"../../ui/text.mjs";import{Skeleton as o}from"../../ui/skeleton.mjs";import{useRequest as s}from"../../../hooks/query/use-query.mjs";import{getPostDetailPagePath as c}from"../../../utils/tools.mjs";import l from"../../common/at-element/index.mjs";import{useCardDecoration as u}from"../../../hooks/use-card-decoration.mjs";import d from"../../ui/rate.mjs";import f from"./style.module.mjs";import{trackSearchMediaRecommendClick as p}from"./tracking.mjs";import{memo as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{useTranslations as _}from"next-intl";import v from"next/link";const y=m(({list:e})=>{let t=_(`components.pages.search`),{getCalculationScore:n}=u();return e.length===0?h(i,{className:`w-[324px] h-auto border rounded-[12px] shrink-0 p-[12px]`,style:{background:`linear-gradient( 156deg, rgba(254,201,207,0.5) 0%, rgba(254,201,207,0.1) 100%)`,borderColor:`rgba(255,119,131,0.2)`},children:g(i,{children:[h(a,{className:`leading-[26px] block text-theme5 text-[18px] font-bold`,children:t(`hotRecommend.hotVideosTitle`)}),g(`div`,{className:`flex flex-col gap-[8px]`,children:[h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`})]})]})}):g(i,{className:`w-[324px] h-auto border rounded-[12px] shrink-0 p-[12px]`,style:{background:`linear-gradient( 156deg, rgba(254,201,207,0.5) 0%, rgba(254,201,207,0.1) 100%)`,borderColor:`rgba(255,119,131,0.2)`},children:[h(a,{className:`leading-[26px] block text-theme5 text-[18px] font-bold`,children:t(`hotRecommend.hotVideosTitle`)}),e.map((e,t)=>g(v,{className:`w-full flex items-center justify-between mt-[12px] shrink-0`,href:c({id:e.video_id,contentType:0}),onClick:()=>{p(String(e.video_id??``))},children:[g(i,{className:`w-[76px] h-[102px] rounded-[8px] overflow-hidden relative bg-bg2`,children:[h(r,{src:e.cover||``,fill:!0,alt:e.name||``,objectFit:`cover`}),h(i,{className:`w-[18px] h-[18px] rounded-tl-[8px] rounded-br-[8px] flex items-center justify-center overflow-hidden absolute left-0 top-0 z-[1]`,style:{background:t>2?`linear-gradient( 218deg, #909BB7 0%, #5D7198 100%)`:`linear-gradient( 175deg, #FD4C5E 0%, #F05D19 100%)`},children:h(a,{className:`text-[12px] leading-[12px] text-white`,children:t+1})})]}),g(i,{className:`flex-1 flex flex-col ml-[12px]`,children:[h(a,{className:`leading-[26px] text-text1 text-[18px] font-bold max-w-[200px] line-clamp-1 mb-[4px]`,children:e.name}),g(i,{className:`flex items-center`,style:{transform:`scale(0.6)`,transformOrigin:`left center`},children:[h(d,{allowHalf:!0,value:n({score:String(e.score??0)})}),h(a,{className:`ml-[8px] text-[24px] text-[#F59E0B] font-bold leading-[24px]`,children:e.score?(Number(e.score)/10).toFixed(1):0})]}),h(i,{className:`w-fit mt-[4px] h-[20px] leading-[20px] px-[6px] text-text2 text-[12px] bg-line1 rounded-[4px]`,children:e.cat_name})]})]},String(e.video_id??t)))]})}),b=m(({list:e})=>{let t=_(`components.pages.search`);return e.length===0?g(i,{className:`w-[324px] h-auto border rounded-[12px] shrink-0 p-[12px]`,style:{background:`linear-gradient( 156deg, rgba(153,215,255,0.5) 0%, rgba(153,215,255,0.1) 100%)`,borderColor:`rgba(31,167,255,0.2)`},children:[h(a,{className:`leading-[26px] block text-theme1 text-[18px] font-bold mb-[4px]`,children:t(`hotRecommend.hotPostsTitle`)}),g(`div`,{className:`flex flex-col gap-[8px]`,children:[h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`})]})]}):g(i,{className:`w-[324px] h-auto border rounded-[12px] shrink-0 p-[12px]`,style:{background:`linear-gradient( 156deg, rgba(153,215,255,0.5) 0%, rgba(153,215,255,0.1) 100%)`,borderColor:`rgba(31,167,255,0.2)`},children:[h(a,{className:`leading-[26px] block text-theme1 text-[18px] font-bold mb-[4px]`,children:t(`hotRecommend.hotPostsTitle`)}),e.map((e,t)=>g(v,{className:`w-full h-[48px] mt-[8px] flex items-center`,href:c({id:e.content_id,contentType:1}),onClick:()=>{p(String(e.content_id??``))},children:[g(a,{className:`text-[16px] leading-[24px] font-bold ${t<3?`text-theme1`:`text-text3`}`,children:[t+1,`.`]}),h(a,{className:`ml-[8px] text-[16px] text-text1 leading-[24px] line-clamp-1 max-w-[260px] ${f.hotInfoTitle}`,children:h(l,{text:e.title??``,atUsers:[]})})]},String(e.content_id??t)))]})});function x({isShow:r}){let{userInfo:a}=e(),{data:o}=s([`hotVideo`],()=>n({user_id:a.user_id})),c=o?.data?.hot_video_list??[],{data:l}=s([`hotContent`],()=>t({user_id:a.user_id})),u=l?.data?.hot_content_list??[];return r?g(i,{className:`w-full px-[12px] flex gap-x-[12px] flex-nowrap pb-[24px] ${f.gScrollBoxX}`,children:[h(y,{list:c}),h(b,{list:u})]}):null}export{x as default};
2
+ "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gCommunityGetHotContentList as t,gContentGetHotVideoList as n}from"../../../service/generated/client.mjs";import{Image as r}from"../../ui/image.mjs";import{Box as i}from"../../ui/box.mjs";import{Text as a}from"../../ui/text.mjs";import{Skeleton as o}from"../../ui/skeleton.mjs";import{useRequest as s}from"../../../hooks/query/use-query.mjs";import{getPostDetailPagePath as c}from"../../../utils/tools.mjs";import l from"../../common/at-element/index.mjs";import{useCardDecoration as u}from"../../../hooks/use-card-decoration.mjs";import d from"../../ui/rate.mjs";import f from"./style.module.mjs";import{trackSearchMediaRecommendClick as p}from"./tracking.mjs";import{memo as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{useTranslations as _}from"next-intl";import v from"next/link";const y=m(({list:e})=>{let t=_(`components.pages.search`),{getCalculationScore:n}=u();return e.length===0?h(i,{className:`w-[324px] h-auto border rounded-[12px] shrink-0 p-[12px]`,style:{background:`linear-gradient( 156deg, rgba(254,201,207,0.5) 0%, rgba(254,201,207,0.1) 100%)`,borderColor:`rgba(255,119,131,0.2)`},children:g(i,{children:[h(a,{className:`leading-[26px] block text-theme5 text-[18px] font-bold`,children:t(`hotRecommend.hotVideosTitle`)}),g(`div`,{className:`flex flex-col gap-[8px]`,children:[h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`})]})]})}):g(i,{className:`w-[324px] h-auto border rounded-[12px] shrink-0 p-[12px]`,style:{background:`linear-gradient( 156deg, rgba(254,201,207,0.5) 0%, rgba(254,201,207,0.1) 100%)`,borderColor:`rgba(255,119,131,0.2)`},children:[h(a,{className:`leading-[26px] block text-theme5 text-[18px] font-bold`,children:t(`hotRecommend.hotVideosTitle`)}),e.map((e,t)=>g(v,{className:`w-full flex items-center justify-between mt-[12px] shrink-0`,href:c({id:e.video_id,contentType:0}),onClick:()=>{p(String(e.video_id??``))},children:[g(i,{className:`w-[76px] h-[102px] rounded-[8px] overflow-hidden relative bg-bg2`,children:[h(r,{src:e.cover||``,fill:!0,alt:e.name||``,objectFit:`cover`}),h(i,{className:`w-[18px] h-[18px] rounded-tl-[8px] rounded-br-[8px] flex items-center justify-center overflow-hidden absolute left-0 top-0 z-[1]`,style:{background:t>2?`linear-gradient( 218deg, #909BB7 0%, #5D7198 100%)`:`linear-gradient( 175deg, #FD4C5E 0%, #F05D19 100%)`},children:h(a,{className:`text-[12px] leading-[12px] text-white`,children:t+1})})]}),g(i,{className:`flex-1 flex flex-col ml-[12px]`,children:[h(a,{className:`leading-[26px] text-text1 text-[18px] font-bold max-w-[200px] line-clamp-1 mb-[4px]`,children:e.name}),g(i,{className:`flex items-center`,style:{transform:`scale(0.6)`,transformOrigin:`left center`},children:[h(d,{allowHalf:!0,value:n({score:String(e.score??0)})}),h(a,{className:`ml-[8px] text-[24px] text-[#F59E0B] font-bold leading-[24px]`,children:e.score?(Number(e.score)/10).toFixed(1):0})]}),h(i,{className:`w-fit mt-[4px] h-[20px] leading-[20px] px-[6px] text-text2 text-[12px] bg-line1 rounded-[4px]`,children:e.cat_name})]})]},String(e.video_id??t)))]})}),b=m(({list:e})=>{let t=_(`components.pages.search`);return e.length===0?g(i,{className:`w-[324px] h-auto border rounded-[12px] shrink-0 p-[12px]`,style:{background:`linear-gradient( 156deg, rgba(153,215,255,0.5) 0%, rgba(153,215,255,0.1) 100%)`,borderColor:`rgba(31,167,255,0.2)`},children:[h(a,{className:`leading-[26px] block text-theme1 text-[18px] font-bold mb-[4px]`,children:t(`hotRecommend.hotPostsTitle`)}),g(`div`,{className:`flex flex-col gap-[8px]`,children:[h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`}),h(o,{className:`w-full h-[28px] mt-[8px]`})]})]}):g(i,{className:`w-[324px] h-auto border rounded-[12px] shrink-0 p-[12px]`,style:{background:`linear-gradient( 156deg, rgba(153,215,255,0.5) 0%, rgba(153,215,255,0.1) 100%)`,borderColor:`rgba(31,167,255,0.2)`},children:[h(a,{className:`leading-[26px] block text-theme1 text-[18px] font-bold mb-[4px]`,children:t(`hotRecommend.hotPostsTitle`)}),e.map((e,t)=>g(v,{className:`w-full h-[48px] mt-[8px] flex items-center`,href:c({id:e.content_id,contentType:1}),onClick:()=>{p(String(e.content_id??``))},children:[g(a,{className:`text-[16px] leading-[24px] font-bold ${t<3?`text-theme1`:`text-text3`}`,children:[t+1,`.`]}),h(a,{className:`ml-[8px] text-[16px] text-text1 leading-[24px] line-clamp-1 max-w-[260px] ${f.hotInfoTitle}`,children:h(l,{text:e.title??``,atUsers:[]})})]},String(e.content_id??t)))]})});function x({isShow:r}){let{userInfo:a}=e(),{data:o}=s([`hotVideo`],()=>n({user_id:a.user_id})),c=o?.data?.hot_video_list??[],{data:l}=s([`hotContent`],()=>t({user_id:a.user_id})),u=l?.data?.hot_content_list??[];return r?g(i,{className:`w-full no-vw-x-16 flex gap-x-[12px] flex-nowrap pb-[24px] ${f.gScrollBoxX}`,children:[h(y,{list:c}),h(b,{list:u})]}):null}export{x as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Skeleton as e}from"../../ui/skeleton.mjs";import t from"../../../assets/icons/refresh.mjs";import{useCallback as n,useEffect as r,useMemo as i,useReducer as a,useState as o}from"react";import{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";import{useTranslations as u}from"next-intl";function d(){return c(s,{children:Array.from({length:6}).map((t,n)=>c(`div`,{className:`w-[50%] ${n%2==0?`pr-[4px]`:`pl-[4px]`}`,children:c(e,{className:`w-[70%] h-[22px]`})},`hot-search-skeleton-${n}`))})}function f(e,t){return t}function p({initHotSearchKeywordList:e,onClick:s,onRefreshHotKey:p}){let m=u(`components.pages.search`),[h,g]=a(f,e),[_,v]=o(!1),y=n(async()=>{v(!0),g((await p?.())?.data?.recommend_list??[]),v(!1)},[p]),b=i(()=>_||h.length===0,[_,h]);return r(()=>{g(e)},[e]),l(`div`,{className:`w-full mb-[24px] pt-[8px]`,children:[l(`div`,{className:`w-full pl-[12px] h-[24px] mb-[12px] flex items-center justify-between`,children:[c(`span`,{className:`leading-[24px] text-[16px] text-text1 font-semibold`,children:m(`hotSearch.recommendedSearches`)}),c(`div`,{className:`h-full px-[12px] flex items-center`,onClick:y,children:c(t,{className:`w-[16px] h-[16px] text-text2`})})]}),c(`div`,{className:`w-full px-[12px] flex gap-y-[16px] flex-wrap`,children:b?c(d,{}):h.map((e,t)=>c(`div`,{className:`w-[50%] ${t%2==0?`pr-[4px]`:`pl-[4px]`}`,onClick:()=>s?.(e),children:c(`span`,{className:`text-text1 text-[14px] leading-[22px] max-w-[90%] line-clamp-1`,children:e.title})},String(e.title??t)))})]})}export{p as default};
2
+ "use client";import{Skeleton as e}from"../../ui/skeleton.mjs";import t from"../../../assets/icons/refresh.mjs";import{useCallback as n,useEffect as r,useMemo as i,useReducer as a,useState as o}from"react";import{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";import{useTranslations as u}from"next-intl";function d(){return c(s,{children:Array.from({length:6}).map((t,n)=>c(`div`,{className:`w-[50%] ${n%2==0?`pr-[4px]`:`pl-[4px]`}`,children:c(e,{className:`w-[70%] h-[22px]`})},`hot-search-skeleton-${n}`))})}function f(e,t){return t}function p({initHotSearchKeywordList:e,onClick:s,onRefreshHotKey:p}){let m=u(`components.pages.search`),[h,g]=a(f,e),[_,v]=o(!1),y=n(async()=>{v(!0),g((await p?.())?.data?.recommend_list??[]),v(!1)},[p]),b=i(()=>_||h.length===0,[_,h]);return r(()=>{g(e)},[e]),l(`div`,{className:`w-full mb-[24px] pt-[8px]`,children:[l(`div`,{className:`w-full no-vw-pl-16 h-[24px] mb-[12px] flex items-center justify-between`,children:[c(`span`,{className:`leading-[24px] text-[16px] text-text1 font-semibold`,children:m(`hotSearch.recommendedSearches`)}),c(`div`,{className:`h-full px-[12px] flex items-center`,onClick:y,children:c(t,{className:`w-[16px] h-[16px] text-text2`})})]}),c(`div`,{className:`w-full no-vw-x-16 flex gap-y-[16px] flex-wrap`,children:b?c(d,{}):h.map((e,t)=>c(`div`,{className:`w-[50%] ${t%2==0?`pr-[4px]`:`pl-[4px]`}`,onClick:()=>s?.(e),children:c(`span`,{className:`text-text1 text-[14px] leading-[22px] max-w-[90%] line-clamp-1`,children:e.title})},String(e.title??t)))})]})}export{p as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{updateUrlParams as e}from"../../../utils/common.mjs";import t from"../../../utils/event-bus.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{gContentGetRecommendSearchList as r}from"../../../service/generated/client.mjs";import{useRouter as i}from"../../../utils/use-compatible-router.mjs";import{Box as a}from"../../ui/box.mjs";import{Popover as o,PopoverContent as s,PopoverTrigger as c}from"../../ui/popover.mjs";import{useRequest as l}from"../../../hooks/query/use-query.mjs";import{eventKey as u}from"../../../constants/event-key.mjs";import{useSearchHistory as d}from"../../../hooks/use-search-history.mjs";import{SearchHistoryClient as f}from"../../biz/business/search-history/client.mjs";import p from"../../../assets/icons/search/filter.mjs";import{trackSearchResultPageView as m}from"../search-result/tracking.mjs";import{trackSearchPageView as h,trackSearchTextRecommendClick as g}from"./tracking.mjs";import ee from"./hot-recommend.mjs";import _ from"./hot-search.mjs";import{SEARCH_RESULT_SORT_OPTIONS as v}from"./search-result/shared.mjs";import te from"./search-result/index.mjs";import ne from"./top-header.mjs";import{usePathname as y,useSearchParams as b}from"next/navigation";import{memo as x,useEffect as S,useMemo as C,useRef as w,useState as T}from"react";import{jsx as E,jsxs as D}from"react/jsx-runtime";import{useTranslations as O}from"next-intl";const k=[{labelKey:`tabs.all`,value:`all`},{labelKey:`tabs.video`,value:`video`},{labelKey:`tabs.user`,value:`user`}],A=x(({searchType:e,sort:t,tabList:n,onChange:r,onSortChange:i})=>{let[l,u]=T(!1);return D(a,{as:`nav`,className:`sticky top-[66px] z-40 flex items-center justify-between bg-[linear-gradient(180deg,rgba(6,3,21,0.98)_0%,rgba(6,3,21,0.88)_100%)] px-[16px] pb-[24px] pt-[23px] backdrop-blur-[16px]`,children:[E(a,{className:`flex items-center gap-[10px]`,children:n.map(t=>E(`button`,{type:`button`,className:`text-[16px] leading-[22px] transition-colors ${e===t.value?`font-medium text-white`:`font-normal text-white/80`}`,onClick:()=>{e!==t.value&&r(t.value)},children:t.label},t.value))}),D(o,{open:l,onOpenChange:u,children:[E(c,{"aria-label":`排序筛选`,className:`flex size-[24px] items-center justify-center text-white/70`,children:E(p,{className:`size-[20px]`})}),E(s,{side:`bottom`,align:`end`,sideOffset:8,className:`w-[132px] border border-white/10 bg-[#10071E]/95 p-[8px] backdrop-blur-[18px]`,children:E(a,{className:`flex flex-col gap-[4px]`,children:v.map(e=>E(`button`,{type:`button`,className:`rounded-[8px] px-[12px] py-[8px] text-left text-[14px] leading-[20px] ${e.value===t?`bg-white/10 text-white`:`text-white/70`}`,onClick:()=>{i(e.value),u(!1)},children:e.label},e.value))})})]})]})});A.displayName=`SearchResultTabs`;function j(){let o=O(`components.pages.search.pageClient`),{userInfo:s}=n(),c=s?.user_id||`guest`,p=b(),x=y(),j=i(),M=p.get(`q`)?.toString()||``,{data:N,refetch:P}=l([`hotSearchKey`],()=>r({user_id:c})),F=C(()=>N?.data?.recommend_list??[],[N]),[I,L]=T(M),[R,z]=T(M),[B,V]=T(0),[H,U]=T(k[0].value),[W,G]=T(v[0].value),[K,q]=T(0),{history:J,addHistory:Y}=d({storageKey:c}),X=C(()=>k.map(e=>({value:e.value,label:o(e.labelKey)})),[o]),Z=C(()=>I.trim()===``?F.length>0||J.length>0||I.trim()===``:!1,[J.length,F.length,I]),Q=C(()=>I.trim()!==``&&!Z,[I,Z]);S(()=>(t.on(u.EXCHANGE_SEARCH_TYPE,U),()=>{t.off(u.EXCHANGE_SEARCH_TYPE,U)}),[]),S(()=>{h()},[]);let $=w(I);return $.current=I,S(()=>{Q&&m(H,$.current)},[Q,H]),D(a,{className:`min-h-screen w-full bg-[radial-gradient(79.9%_42.18%_at_50%_0%,rgba(71,20,126,0.95)_0%,rgba(14,6,32,0.98)_42%,#05010F_100%)] pb-[24px]`,children:[E(ne,{setSearchInputVal:t=>{t!==I&&(L(t),e({q:t}))},initInputVal:R,initInputVersion:B,addSearchHistory:Y}),Z&&D(a,{className:`w-full pt-[8px]`,children:[J.length>0&&E(f,{title:o(`searchHistory`),rows:2,storageKey:c,onHistoryClick:e=>{z(e),V(e=>e+1);let t=new URLSearchParams(p.toString());t.set(`q`,e),j.push(`${x}?${t.toString()}`)}}),E(_,{initHotSearchKeywordList:F,onRefreshHotKey:async()=>(await P()).data??{code:0,message:``,data:{recommend_list:[]}},onClick:e=>{g(e.title||``,e.trace_id||``,e.trace_info||``),z(e.title||``),V(e=>e+1),Y(e.title)}})]}),E(ee,{isShow:I.trim()===``}),Q&&D(a,{className:`relative mt-[8px] min-h-[calc(100vh-74px)] overflow-hidden rounded-t-[16px] bg-[linear-gradient(180deg,rgba(6,3,21,0.9)_19.905%,rgba(6,3,21,0)_100%)] backdrop-blur-[2px]`,children:[E(A,{searchType:H,sort:W,tabList:X,onChange:e=>{U(e)},onSortChange:e=>{G(e),q(e=>e+1)}}),E(te,{inputVal:I,searchType:H,sort:W,refreshVersion:K},`${H}-${I}-${W}-${K}`)]})]})}export{j as default};
2
+ "use client";import{updateUrlParams as e}from"../../../utils/common.mjs";import t from"../../../utils/event-bus.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{gContentGetRecommendSearchList as r}from"../../../service/generated/client.mjs";import{useRouter as i}from"../../../utils/use-compatible-router.mjs";import{Box as a}from"../../ui/box.mjs";import{Popover as o,PopoverContent as s,PopoverTrigger as c}from"../../ui/popover.mjs";import{useRequest as l}from"../../../hooks/query/use-query.mjs";import{eventKey as u}from"../../../constants/event-key.mjs";import{useSearchHistory as d}from"../../../hooks/use-search-history.mjs";import{SearchHistoryClient as f}from"../../biz/business/search-history/client.mjs";import p from"../../../assets/icons/search/filter.mjs";import{trackSearchResultPageView as m}from"../search-result/tracking.mjs";import{trackSearchPageView as h,trackSearchTextRecommendClick as g}from"./tracking.mjs";import ee from"./hot-recommend.mjs";import _ from"./hot-search.mjs";import{SEARCH_RESULT_SORT_OPTIONS as v}from"./search-result/shared.mjs";import te from"./search-result/index.mjs";import ne from"./top-header.mjs";import{usePathname as y,useSearchParams as b}from"next/navigation";import{memo as x,useEffect as S,useMemo as C,useRef as w,useState as T}from"react";import{jsx as E,jsxs as D}from"react/jsx-runtime";import{useTranslations as O}from"next-intl";const k=[{labelKey:`tabs.all`,value:`all`},{labelKey:`tabs.video`,value:`video`},{labelKey:`tabs.user`,value:`user`}],A=x(({searchType:e,sort:t,tabList:n,onChange:r,onSortChange:i})=>{let[l,u]=T(!1);return D(a,{as:`nav`,className:`sticky top-[66px] z-40 flex items-center justify-between bg-[linear-gradient(180deg,rgba(6,3,21,0.98)_0%,rgba(6,3,21,0.88)_100%)] no-vw-x-16 pb-[24px] pt-[23px] backdrop-blur-[16px]`,children:[E(a,{className:`flex items-center gap-[10px]`,children:n.map(t=>E(`button`,{type:`button`,className:`text-[16px] leading-[22px] transition-colors ${e===t.value?`font-medium text-white`:`font-normal text-white/80`}`,onClick:()=>{e!==t.value&&r(t.value)},children:t.label},t.value))}),D(o,{open:l,onOpenChange:u,children:[E(c,{"aria-label":`排序筛选`,className:`flex size-[24px] items-center justify-center text-white/70`,children:E(p,{className:`size-[20px]`})}),E(s,{side:`bottom`,align:`end`,sideOffset:8,className:`w-[132px] border border-white/10 bg-[#10071E]/95 p-[8px] backdrop-blur-[18px]`,children:E(a,{className:`flex flex-col gap-[4px]`,children:v.map(e=>E(`button`,{type:`button`,className:`rounded-[8px] px-[12px] py-[8px] text-left text-[14px] leading-[20px] ${e.value===t?`bg-white/10 text-white`:`text-white/70`}`,onClick:()=>{i(e.value),u(!1)},children:e.label},e.value))})})]})]})});A.displayName=`SearchResultTabs`;function j(){let o=O(`components.pages.search.pageClient`),{userInfo:s}=n(),c=s?.user_id||`guest`,p=b(),x=y(),j=i(),M=p.get(`q`)?.toString()||``,{data:N,refetch:P}=l([`hotSearchKey`],()=>r({user_id:c})),F=C(()=>N?.data?.recommend_list??[],[N]),[I,L]=T(M),[R,z]=T(M),[B,V]=T(0),[H,U]=T(k[0].value),[W,G]=T(v[0].value),[K,q]=T(0),{history:J,addHistory:Y}=d({storageKey:c}),X=C(()=>k.map(e=>({value:e.value,label:o(e.labelKey)})),[o]),Z=C(()=>I.trim()===``?F.length>0||J.length>0||I.trim()===``:!1,[J.length,F.length,I]),Q=C(()=>I.trim()!==``&&!Z,[I,Z]);S(()=>(t.on(u.EXCHANGE_SEARCH_TYPE,U),()=>{t.off(u.EXCHANGE_SEARCH_TYPE,U)}),[]),S(()=>{h()},[]);let $=w(I);return $.current=I,S(()=>{Q&&m(H,$.current)},[Q,H]),D(a,{className:`min-h-screen w-full bg-[radial-gradient(79.9%_42.18%_at_50%_0%,rgba(71,20,126,0.95)_0%,rgba(14,6,32,0.98)_42%,#05010F_100%)] pb-[24px]`,children:[E(ne,{setSearchInputVal:t=>{t!==I&&(L(t),e({q:t}))},initInputVal:R,initInputVersion:B,addSearchHistory:Y}),Z&&D(a,{className:`w-full pt-[8px]`,children:[J.length>0&&E(f,{title:o(`searchHistory`),rows:2,storageKey:c,onHistoryClick:e=>{z(e),V(e=>e+1);let t=new URLSearchParams(p.toString());t.set(`q`,e),j.push(`${x}?${t.toString()}`)}}),E(_,{initHotSearchKeywordList:F,onRefreshHotKey:async()=>(await P()).data??{code:0,message:``,data:{recommend_list:[]}},onClick:e=>{g(e.title||``,e.trace_id||``,e.trace_info||``),z(e.title||``),V(e=>e+1),Y(e.title)}})]}),E(ee,{isShow:I.trim()===``}),Q&&D(a,{className:`relative mt-[8px] min-h-[calc(100vh-74px)] overflow-hidden rounded-t-[16px] bg-[linear-gradient(180deg,rgba(6,3,21,0.9)_19.905%,rgba(6,3,21,0)_100%)] backdrop-blur-[2px]`,children:[E(A,{searchType:H,sort:W,tabList:X,onChange:e=>{U(e)},onSortChange:e=>{G(e),q(e=>e+1)}}),E(te,{inputVal:I,searchType:H,sort:W,refreshVersion:K},`${H}-${I}-${W}-${K}`)]})]})}export{j as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import e from"../../../../utils/event-bus.mjs";import{gContentGetRecommendVideoList as t}from"../../../../service/generated/client.mjs";import{gContentGetRecommendVideoListKey as n}from"../../../../service/generated/tanstack.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{Skeleton as o}from"../../../ui/skeleton.mjs";import{useRequest as s}from"../../../../hooks/query/use-query.mjs";import{eventKey as c}from"../../../../constants/event-key.mjs";import{SearchUserRowCard as l}from"./search-user.mjs";import{SearchVideoWaterfall as u}from"./search-video-info.mjs";import{useEffect as d,useMemo as f,useState as p}from"react";import{ChevronDown as m}from"lucide-react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{useTranslations as _}from"next-intl";function v(e,t){return JSON.stringify({type:1,keywords:e,sort:t})}function y(){return g(r,{className:`w-full`,children:[h(r,{className:`px-[16px]`,children:h(r,{className:`flex flex-col gap-[12px]`,children:Array.from({length:2}).map((e,t)=>g(r,{className:`flex h-[88px] items-center gap-[8px] rounded-[8px] bg-white/8 px-[12px] py-[8px]`,children:[h(o,{className:`size-[56px] rounded-full bg-white/10`}),g(r,{className:`min-w-0 flex-1`,children:[h(o,{className:`h-[20px] w-[96px] rounded-[4px] bg-white/10`}),h(o,{className:`mt-[6px] h-[20px] w-full rounded-[4px] bg-white/10`}),h(o,{className:`mt-[6px] h-[20px] w-[120px] rounded-[4px] bg-white/10`})]}),h(o,{className:`h-[24px] w-[64px] rounded-full bg-white/10`})]},`search-all-user-skeleton-${t}`))})}),g(r,{className:`mt-[32px] flex w-full gap-[15px] px-[16px]`,children:[g(r,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[h(o,{className:`h-[218px] w-full rounded-[8px] bg-white/8`}),h(o,{className:`h-[120px] w-full rounded-[8px] bg-white/8`})]}),g(r,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[h(o,{className:`h-[120px] w-full rounded-[8px] bg-white/8`}),h(o,{className:`h-[218px] w-full rounded-[8px] bg-white/8`})]})]})]})}function b({searchInputVal:o,sort:b,refreshVersion:x}){let S=_(`components.pages.search.searchResult`),[C,w]=p(!1),[T,E]=p({});d(()=>{w(!1),E({})},[x,o,b]);let D=f(()=>v(o,b),[o,b]),{data:O,isFetching:k,isLoading:A}=s(f(()=>[...n({data_type:2,extra_params:D,page:1,page_size:10}),x],[x,D]),async()=>(await t({data_type:2,extra_params:D,page:1,page_size:10})).data??{}),j=f(()=>O?.users?.list??[],[O]),M=f(()=>j.map(e=>{let t=String(e.user_id||``).trim();return!t||T[t]===void 0?e:{...e,is_following:T[t]}}),[T,j]),N=f(()=>O?.videos?.list??[],[O]),P=f(()=>C?M:M.slice(0,2),[C,M]),F=!C&&M.length>2,I=!!((A||k)&&M.length===0&&N.length===0),L=!k&&M.length===0&&N.length===0;return I?h(y,{}):L?h(i,{type:`nodata`,text:S(`searchAll.emptyResult`),className:`!pt-[72px]`}):g(r,{className:`w-full pb-[24px]`,children:[P.length>0&&g(r,{className:`px-[16px]`,children:[h(r,{className:`flex flex-col gap-[12px]`,children:P.map((e,t)=>h(l,{item:e,onFollowChange:t=>{let n=String(e.user_id||``).trim();n&&E(e=>({...e,[n]:t?1:0}))}},String(e.user_id??t)))}),F&&g(`button`,{type:`button`,className:`mt-[12px] flex h-[48px] w-full items-center justify-center gap-[4px] rounded-[8px] bg-[linear-gradient(180deg,#15041B_8.824%,#250561_113.72%)] text-white/70 backdrop-blur-[4px]`,onClick:()=>w(!0),children:[h(a,{className:`text-[14px] leading-[20px]`,children:`展开全部`}),h(m,{className:`size-[16px]`,strokeWidth:1.5})]})]}),N.length>0&&h(u,{list:N,title:`相似推荐`,onMoreClick:()=>{e.emit(c.EXCHANGE_SEARCH_TYPE,`video`)},sectionClassName:P.length>0?`mt-[32px] w-full`:`w-full`})]})}export{b as default};
2
+ "use client";import e from"../../../../utils/event-bus.mjs";import{gContentGetRecommendVideoList as t}from"../../../../service/generated/client.mjs";import{gContentGetRecommendVideoListKey as n}from"../../../../service/generated/tanstack.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{Skeleton as o}from"../../../ui/skeleton.mjs";import{useRequest as s}from"../../../../hooks/query/use-query.mjs";import{eventKey as c}from"../../../../constants/event-key.mjs";import{SearchUserRowCard as l}from"./search-user.mjs";import{SearchVideoWaterfall as u}from"./search-video-info.mjs";import{useEffect as d,useMemo as f,useState as p}from"react";import{ChevronDown as m}from"lucide-react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{useTranslations as _}from"next-intl";function v(e,t){return JSON.stringify({type:1,keywords:e,sort:t})}function y(){return g(r,{className:`w-full`,children:[h(r,{className:`no-vw-x-16`,children:h(r,{className:`flex flex-col gap-[12px]`,children:Array.from({length:2}).map((e,t)=>g(r,{className:`flex h-[88px] items-center gap-[8px] rounded-[8px] bg-white/8 px-[12px] py-[8px]`,children:[h(o,{className:`size-[56px] rounded-full bg-white/10`}),g(r,{className:`min-w-0 flex-1`,children:[h(o,{className:`h-[20px] w-[96px] rounded-[4px] bg-white/10`}),h(o,{className:`mt-[6px] h-[20px] w-full rounded-[4px] bg-white/10`}),h(o,{className:`mt-[6px] h-[20px] w-[120px] rounded-[4px] bg-white/10`})]}),h(o,{className:`h-[24px] w-[64px] rounded-full bg-white/10`})]},`search-all-user-skeleton-${t}`))})}),g(r,{className:`mt-[32px] flex w-full gap-[15px] px-[16px]`,children:[g(r,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[h(o,{className:`h-[218px] w-full rounded-[8px] bg-white/8`}),h(o,{className:`h-[120px] w-full rounded-[8px] bg-white/8`})]}),g(r,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[h(o,{className:`h-[120px] w-full rounded-[8px] bg-white/8`}),h(o,{className:`h-[218px] w-full rounded-[8px] bg-white/8`})]})]})]})}function b({searchInputVal:o,sort:b,refreshVersion:x}){let S=_(`components.pages.search.searchResult`),[C,w]=p(!1),[T,E]=p({});d(()=>{w(!1),E({})},[x,o,b]);let D=f(()=>v(o,b),[o,b]),{data:O,isFetching:k,isLoading:A}=s(f(()=>[...n({data_type:2,extra_params:D,page:1,page_size:10}),x],[x,D]),async()=>(await t({data_type:2,extra_params:D,page:1,page_size:10})).data??{}),j=f(()=>O?.users?.list??[],[O]),M=f(()=>j.map(e=>{let t=String(e.user_id||``).trim();return!t||T[t]===void 0?e:{...e,is_following:T[t]}}),[T,j]),N=f(()=>O?.videos?.list??[],[O]),P=f(()=>C?M:M.slice(0,2),[C,M]),F=!C&&M.length>2,I=!!((A||k)&&M.length===0&&N.length===0),L=!k&&M.length===0&&N.length===0;return I?h(y,{}):L?h(i,{type:`nodata`,text:S(`searchAll.emptyResult`),className:`!pt-[72px]`}):g(r,{className:`w-full pb-[24px]`,children:[P.length>0&&g(r,{className:`no-vw-x-16`,children:[h(r,{className:`flex flex-col gap-[12px]`,children:P.map((e,t)=>h(l,{item:e,onFollowChange:t=>{let n=String(e.user_id||``).trim();n&&E(e=>({...e,[n]:t?1:0}))}},String(e.user_id??t)))}),F&&g(`button`,{type:`button`,className:`mt-[12px] flex h-[48px] w-full items-center justify-center gap-[4px] rounded-[8px] bg-[linear-gradient(180deg,#15041B_8.824%,#250561_113.72%)] text-white/70 backdrop-blur-[4px]`,onClick:()=>w(!0),children:[h(a,{className:`text-[14px] leading-[20px]`,children:`展开全部`}),h(m,{className:`size-[16px]`,strokeWidth:1.5})]})]}),N.length>0&&h(u,{list:N,title:`相似推荐`,onMoreClick:()=>{e.emit(c.EXCHANGE_SEARCH_TYPE,`video`)},sectionClassName:P.length>0?`mt-[32px] w-full`:`w-full`})]})}export{b as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useRouter as e}from"../../../utils/use-compatible-router.mjs";import{Input as t}from"../../ui/input.mjs";import{toast as n}from"../../../ui.mjs";import{useKeepAliveEffect as r,useKeepAliveState as i}from"../../common/keep-scroll-position/index.mjs";import{isPCEnv as a}from"../../../utils/tools.mjs";import{LeftArrowIcon as o}from"../../common/icons/left-arrow.mjs";import s from"../../../assets/icons/search.mjs";import c from"../../../assets/icons/clear.mjs";import{useSearchParams as l}from"next/navigation";import{memo as u,useCallback as d}from"react";import{jsx as f,jsxs as p}from"react/jsx-runtime";import{useTranslations as m}from"next-intl";function h(){}const g=u(({setSearchInputVal:u,initInputVal:g,initInputVersion:_,addSearchHistory:v,clearCallback:y=h})=>{let b=m(`components.pages.search`),x=e(),[S,C]=i(`search-input-val`,``),w=l().get(`q`),T=e=>{C(e.target.value)},E=d(e=>{u(e),v(e)},[v,u]);r(()=>{g&&(C(g),E(g))},[E,g,_,C],`search-init-input-effect`),r(()=>{w&&(C(w),E(w))},[E,C,w],`search-url-params-effect`);function D(){if(n.dismiss(),window.location.search.split(`from_code=`)[1]){x.push(`/`);return}x.back()}return f(`div`,{className:`app-top-nav relative h-[66px] w-full`,children:f(`header`,{className:`fixed left-0 right-0 top-0 z-50`,style:{willChange:`transform`,transform:`translateZ(0)`},children:p(`div`,{className:`mx-auto flex h-[66px] items-end gap-[8px] px-[16px] pb-[16px] pt-[16px]`,children:[f(`button`,{type:`button`,"aria-label":`返回`,className:`flex size-[24px] shrink-0 items-center justify-center text-white`,onClick:D,children:f(o,{className:`h-[16px] w-[16px]`})}),p(`div`,{className:`flex h-[34px] min-w-0 flex-1 items-center overflow-hidden rounded-[100px] border border-[#E62AFF]/90 bg-black/40 backdrop-blur-[2px]`,children:[p(`div`,{className:`relative flex h-full min-w-0 flex-1 items-center pl-[12px] pr-[10px]`,children:[f(`span`,{className:`pointer-events-none absolute inset-y-0 left-[12px] flex items-center justify-center`,children:f(s,{className:`h-[14px] w-[14px] text-white/60`})}),f(t,{placeholder:b(`topHeader.placeholder`),maxLength:20,value:S,className:`!h-[20px] !w-full !rounded-none !border-0 !bg-transparent !px-0 !pl-[22px] !pr-[18px] !py-0 !text-[14px] !leading-[20px] !text-white placeholder:!text-white/90`,onChange:T,onKeyDown:e=>{if(e.key===`Enter`){if(e.preventDefault(),!S.trim())return;E(S.trim())}}}),S&&f(`span`,{className:`absolute inset-y-0 right-0 flex items-center justify-center`,children:f(c,{className:`h-[15px] w-[15px] text-white/50`,onClick:()=>{a()||(C(``),u(``),y())}})})]}),f(`button`,{type:`button`,className:`mx-[2px] flex h-[30px] w-[56px] shrink-0 items-center justify-center rounded-[100px] bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-[14px] leading-[20px] text-white`,onClick:()=>{S.trim()&&E(S.trim())},children:b(`topHeader.search`)})]})]})})})});g.displayName=`SearchTopHeader`;export{g as default};
2
+ "use client";import{useRouter as e}from"../../../utils/use-compatible-router.mjs";import{Input as t}from"../../ui/input.mjs";import{toast as n}from"../../../ui.mjs";import{useKeepAliveEffect as r,useKeepAliveState as i}from"../../common/keep-scroll-position/index.mjs";import{isPCEnv as a}from"../../../utils/tools.mjs";import{LeftArrowIcon as o}from"../../common/icons/left-arrow.mjs";import s from"../../../assets/icons/search.mjs";import c from"../../../assets/icons/clear.mjs";import{useSearchParams as l}from"next/navigation";import{memo as u,useCallback as d}from"react";import{jsx as f,jsxs as p}from"react/jsx-runtime";import{useTranslations as m}from"next-intl";function h(){}const g=u(({setSearchInputVal:u,initInputVal:g,initInputVersion:_,addSearchHistory:v,clearCallback:y=h})=>{let b=m(`components.pages.search`),x=e(),[S,C]=i(`search-input-val`,``),w=l().get(`q`),T=e=>{C(e.target.value)},E=d(e=>{u(e),v(e)},[v,u]);r(()=>{g&&(C(g),E(g))},[E,g,_,C],`search-init-input-effect`),r(()=>{w&&(C(w),E(w))},[E,C,w],`search-url-params-effect`);function D(){if(n.dismiss(),window.location.search.split(`from_code=`)[1]){x.push(`/`);return}x.back()}return f(`div`,{className:`app-top-nav relative h-[66px] w-full`,children:f(`header`,{className:`fixed left-0 right-0 top-0 z-50`,style:{willChange:`transform`,transform:`translateZ(0)`},children:p(`div`,{className:`mx-auto flex h-[66px] items-center gap-[8px] no-vw-x-16 pb-[16px] pt-[16px]`,children:[f(`button`,{type:`button`,"aria-label":`返回`,className:`flex size-[24px] shrink-0 items-center justify-center text-white`,onClick:D,children:f(o,{className:`h-[16px] w-[16px]`})}),p(`div`,{className:`flex h-[34px] min-w-0 flex-1 items-center overflow-hidden rounded-[100px] border border-[#E62AFF]/90 bg-black/40 backdrop-blur-[2px]`,children:[p(`div`,{className:`relative flex h-full min-w-0 flex-1 items-center pl-[12px] pr-[10px]`,children:[f(`span`,{className:`pointer-events-none absolute inset-y-0 left-[12px] flex items-center justify-center`,children:f(s,{className:`h-[14px] w-[14px] text-white/60`})}),f(t,{placeholder:b(`topHeader.placeholder`),maxLength:20,value:S,className:`!h-[20px] !w-full !rounded-none !border-0 !bg-transparent !px-0 !pl-[22px] !pr-[18px] !py-0 !text-[14px] !leading-[20px] !text-white placeholder:!text-white/90`,onChange:T,onKeyDown:e=>{if(e.key===`Enter`){if(e.preventDefault(),!S.trim())return;E(S.trim())}}}),S&&f(`span`,{className:`absolute inset-y-0 right-0 flex items-center justify-center`,children:f(c,{className:`h-[15px] w-[15px] text-white/50`,onClick:()=>{a()||(C(``),u(``),y())}})})]}),f(`button`,{type:`button`,className:`mx-[2px] flex h-[30px] w-[56px] shrink-0 items-center justify-center rounded-[100px] bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-[14px] leading-[20px] text-white`,onClick:()=>{S.trim()&&E(S.trim())},children:b(`topHeader.search`)})]})]})})})});g.displayName=`SearchTopHeader`;export{g as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import e from"../../../utils/event-bus.mjs";import{gContentGetRecommendVideoList as t}from"../../../service/generated/client.mjs";import{gContentGetRecommendVideoListKey as n}from"../../../service/generated/tanstack.mjs";import{Box as r}from"../../ui/box.mjs";import{Text as i}from"../../ui/text.mjs";import{Skeleton as a}from"../../ui/skeleton.mjs";import{useRequest as o}from"../../../hooks/query/use-query.mjs";import{eventKey as s}from"../../../constants/event-key.mjs";import{SearchResultEmpty as c}from"./search-empty.mjs";import{SearchUserRowCard as l}from"./search-user.mjs";import{SearchVideoWaterfall as u}from"./search-video-info.mjs";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";function _({className:e}){return m(`svg`,{viewBox:`0 0 12.728 7.778`,fill:`currentColor`,"aria-hidden":!0,className:e,children:m(`path`,{d:`M6.36391 4.94972L11.3137 0L12.7279 1.41421L6.36391 7.77822L0 1.41421L1.41421 0L6.36391 4.94972Z`})})}function v(e,t){return JSON.stringify({type:1,keywords:e,sort:t})}function y(){return h(r,{className:`w-full`,children:[m(r,{className:`px-[16px]`,children:h(r,{className:`overflow-hidden rounded-[8px] bg-white/8`,children:[m(r,{className:`flex flex-col gap-[16px] px-[15px] pt-[16px]`,children:Array.from({length:3}).map((e,t)=>h(r,{className:`flex h-[66px] items-center gap-[8px]`,children:[m(a,{className:`size-[56px] rounded-full bg-white/10`}),h(r,{className:`min-w-0 flex-1`,children:[m(a,{className:`h-[20px] w-[96px] rounded-[4px] bg-white/10`}),m(a,{className:`mt-[2px] h-[20px] w-full rounded-[4px] bg-white/10`}),m(a,{className:`mt-[2px] h-[20px] w-[120px] rounded-[4px] bg-white/10`})]}),m(a,{className:`h-[24px] w-[64px] rounded-full bg-white/10`})]},`search-all-user-skeleton-${t}`))}),m(r,{className:`flex h-[48px] items-center justify-center`,children:m(a,{className:`h-[20px] w-[88px] rounded-[4px] bg-white/10`})})]})}),h(r,{className:`mt-[24px] flex w-full justify-between gap-[16px] px-[16px]`,children:[h(r,{className:`flex w-[171px] shrink-0 flex-col gap-[16px]`,children:[m(a,{className:`h-[218px] w-[171px] rounded-[8px] bg-white/8`}),m(a,{className:`h-[120px] w-[171px] rounded-[8px] bg-white/8`})]}),h(r,{className:`flex w-[171px] shrink-0 flex-col gap-[16px]`,children:[m(a,{className:`h-[120px] w-[171px] rounded-[8px] bg-white/8`}),m(a,{className:`h-[218px] w-[171px] rounded-[8px] bg-white/8`})]})]})]})}function b({searchInputVal:a,sort:b,refreshVersion:x}){let S=g(`components.pages.search.searchResult`),[C,w]=p(!1),[T,E]=p({});d(()=>{w(!1),E({})},[x,a,b]);let D=f(()=>v(a,b),[a,b]),{data:O,isFetching:k,isLoading:A}=o(f(()=>[...n({data_type:2,extra_params:D,page:1,page_size:10}),x],[x,D]),async()=>(await t({data_type:2,extra_params:D,page:1,page_size:10})).data??{}),j=f(()=>O?.users?.list??[],[O]),M=f(()=>j.map(e=>{let t=String(e.user_id||``).trim();return!t||T[t]===void 0?e:{...e,is_following:T[t]}}),[T,j]),N=f(()=>O?.videos?.list??[],[O]),P=f(()=>C?M:M.slice(0,3),[C,M]),F=!C&&M.length>3,I=!!((A||k)&&M.length===0&&N.length===0),L=!k&&M.length===0&&N.length===0;return I?m(y,{}):L?m(c,{text:S(`searchAll.emptyResult`)}):h(r,{className:`w-full pb-[24px]`,children:[P.length>0&&m(r,{className:`px-[16px]`,children:h(r,{className:`overflow-hidden rounded-[8px] bg-white/10`,children:[m(r,{className:`flex flex-col gap-[16px] px-[15px] pt-[16px] ${F?``:`pb-[16px]`}`.trim(),children:P.map((e,t)=>m(l,{item:e,onFollowChange:t=>{let n=String(e.user_id||``).trim();n&&E(e=>({...e,[n]:t?1:0}))}},String(e.user_id??t)))}),F&&h(`button`,{type:`button`,className:`flex h-[48px] w-full items-center justify-center gap-[4px] rounded-bl-[8px] rounded-br-[8px] text-[rgba(255,255,255,0.7)]`,onClick:()=>w(!0),children:[m(i,{className:`text-[14px] leading-[20px] font-normal`,children:`展开全部`}),m(r,{className:`flex size-[24px] items-center justify-center`,children:m(_,{className:`h-[7.778px] w-[12.728px] text-[rgba(255,255,255,0.7)]`})})]})]})}),N.length>0&&m(u,{list:N,title:`相似推荐`,onMoreClick:()=>{e.emit(s.EXCHANGE_SEARCH_TYPE,`video`)},sectionClassName:P.length>0?`mt-[24px] w-full`:`w-full`})]})}export{b as default};
2
+ "use client";import e from"../../../utils/event-bus.mjs";import{gContentGetRecommendVideoList as t}from"../../../service/generated/client.mjs";import{gContentGetRecommendVideoListKey as n}from"../../../service/generated/tanstack.mjs";import{Box as r}from"../../ui/box.mjs";import{Text as i}from"../../ui/text.mjs";import{Skeleton as a}from"../../ui/skeleton.mjs";import{useRequest as o}from"../../../hooks/query/use-query.mjs";import{eventKey as s}from"../../../constants/event-key.mjs";import{SearchResultEmpty as c}from"./search-empty.mjs";import{SearchUserRowCard as l}from"./search-user.mjs";import{SearchVideoWaterfall as u}from"./search-video-info.mjs";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";function _({className:e}){return m(`svg`,{viewBox:`0 0 12.728 7.778`,fill:`currentColor`,"aria-hidden":!0,className:e,children:m(`path`,{d:`M6.36391 4.94972L11.3137 0L12.7279 1.41421L6.36391 7.77822L0 1.41421L1.41421 0L6.36391 4.94972Z`})})}function v(e,t){return JSON.stringify({type:1,keywords:e,sort:t})}function y(){return h(r,{className:`w-full`,children:[m(r,{className:`px-[16px]`,children:h(r,{className:`overflow-hidden rounded-[8px] bg-white/8`,children:[m(r,{className:`flex flex-col gap-[16px] px-[15px] pt-[16px]`,children:Array.from({length:3}).map((e,t)=>h(r,{className:`flex h-[66px] items-center gap-[8px]`,children:[m(a,{className:`size-[56px] rounded-full bg-white/10`}),h(r,{className:`min-w-0 flex-1`,children:[m(a,{className:`h-[20px] w-[96px] rounded-[4px] bg-white/10`}),m(a,{className:`mt-[2px] h-[20px] w-full rounded-[4px] bg-white/10`}),m(a,{className:`mt-[2px] h-[20px] w-[120px] rounded-[4px] bg-white/10`})]}),m(a,{className:`h-[24px] w-[64px] rounded-full bg-white/10`})]},`search-all-user-skeleton-${t}`))}),m(r,{className:`flex h-[48px] items-center justify-center`,children:m(a,{className:`h-[20px] w-[88px] rounded-[4px] bg-white/10`})})]})}),h(r,{className:`mt-[24px] flex w-full justify-between gap-[16px] px-[16px]`,children:[h(r,{className:`flex w-[171px] shrink-0 flex-col gap-[16px]`,children:[m(a,{className:`h-[218px] w-[171px] rounded-[8px] bg-white/8`}),m(a,{className:`h-[120px] w-[171px] rounded-[8px] bg-white/8`})]}),h(r,{className:`flex w-[171px] shrink-0 flex-col gap-[16px]`,children:[m(a,{className:`h-[120px] w-[171px] rounded-[8px] bg-white/8`}),m(a,{className:`h-[218px] w-[171px] rounded-[8px] bg-white/8`})]})]})]})}function b({searchInputVal:a,sort:b,refreshVersion:x}){let S=g(`components.pages.search.searchResult`),[C,w]=p(!1),[T,E]=p({});d(()=>{w(!1),E({})},[x,a,b]);let D=f(()=>v(a,b),[a,b]),{data:O,isFetching:k,isLoading:A}=o(f(()=>[...n({data_type:2,extra_params:D,page:1,page_size:10}),x],[x,D]),async()=>(await t({data_type:2,extra_params:D,page:1,page_size:10})).data??{}),j=f(()=>O?.users?.list??[],[O]),M=f(()=>j.map(e=>{let t=String(e.user_id||``).trim();return!t||T[t]===void 0?e:{...e,is_following:T[t]}}),[T,j]),N=f(()=>O?.videos?.list??[],[O]),P=f(()=>C?M:M.slice(0,3),[C,M]),F=!C&&M.length>3,I=!!((A||k)&&M.length===0&&N.length===0),L=!k&&M.length===0&&N.length===0;return I?m(y,{}):L?m(c,{text:S(`searchAll.emptyResult`)}):h(r,{className:`w-full pb-[24px]`,children:[P.length>0&&m(r,{className:`no-vw-x-16`,children:h(r,{className:`overflow-hidden rounded-[8px] bg-white/10`,children:[m(r,{className:`flex flex-col gap-[16px] px-[15px] pt-[16px] ${F?``:`pb-[16px]`}`.trim(),children:P.map((e,t)=>m(l,{item:e,onFollowChange:t=>{let n=String(e.user_id||``).trim();n&&E(e=>({...e,[n]:t?1:0}))}},String(e.user_id??t)))}),F&&h(`button`,{type:`button`,className:`flex h-[48px] w-full items-center justify-center gap-[4px] rounded-bl-[8px] rounded-br-[8px] text-[rgba(255,255,255,0.7)]`,onClick:()=>w(!0),children:[m(i,{className:`text-[14px] leading-[20px] font-normal`,children:`展开全部`}),m(r,{className:`flex size-[24px] items-center justify-center`,children:m(_,{className:`h-[7.778px] w-[12.728px] text-[rgba(255,255,255,0.7)]`})})]})]})}),N.length>0&&m(u,{list:N,title:`相似推荐`,onMoreClick:()=>{e.emit(s.EXCHANGE_SEARCH_TYPE,`video`)},sectionClassName:P.length>0?`mt-[24px] w-full`:`w-full`})]})}export{b 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 px-[16px] 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:`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};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gContentGetRecommendVideoList as t,pInteractionFollow as n,pInteractionUnfollow as r}from"../../../service/generated/client.mjs";import{Image as i}from"../../ui/image.mjs";import{Box as a}from"../../ui/box.mjs";import{InfiniteScroll as o}from"../../ui/infinite-scroll.mjs";import{Text as s}from"../../ui/text.mjs";import{Skeleton as c}from"../../ui/skeleton.mjs";import{usePaginated as l}from"../../../hooks/query/use-query.mjs";import{useRequireLogin as u}from"../../../hooks/use-auth.mjs";import d from"../../../assets/images/user/default_avatar.mjs";import{SearchResultEmpty as f}from"./search-empty.mjs";import{formatSearchFollowerCount as p,resolveSearchUserDescription as m,resolveSearchUserName as h}from"./shared.mjs";import{toast as g}from"sonner";import{memo as _,useCallback as v,useEffect as y,useMemo as b,useState as x}from"react";import{Check as S,Plus as C}from"lucide-react";import{jsx as w,jsxs as T}from"react/jsx-runtime";import{useTranslations as E}from"next-intl";import D from"next/link";const O=typeof d==`string`?d:d.src;function k(e,t){return String(t||e?.user_id||e?.userId||``).trim()}function A({src:e,alt:t,variant:n}){let r=n===`row`?`size-[56px] p-[4.375px]`:`size-[40px] p-[3px]`,o=n===`row`?`border-[3px]`:`border-[2px]`;return w(a,{className:`rounded-full bg-white/20 ${r}`,children:w(a,{className:`relative size-full overflow-hidden rounded-full border-solid border-white/40 ${o}`,children:w(i,{src:e||O,fill:!0,objectFit:`cover`,alt:t})})})}function j({item:t,variant:i,onFollowChange:a}){let o=u(),{userInfo:c,userId:l}=e(),[d,f]=x(!1),p=k(c,l),m=p!==``&&p===String(t.user_id||``).trim(),h=!!t.is_following,_=v(()=>{!t.user_id||d||o(()=>{let i=k(e.getState().userInfo,e.getState().userId);if(!i){g.error(`请先登录`);return}(async()=>{f(!0);try{let e=h?await r({follower_id:i,followee_id:t.user_id}):await n({follower_id:i,followee_id:t.user_id});if(e.code!==0){g.error(e.message||(h?`取消关注失败`:`关注失败`));return}a?.(!h)}catch(e){console.error(`切换关注状态失败`,e),g.error(h?`取消关注失败`:`关注失败`)}finally{f(!1)}})()})},[h,t.user_id,a,d,o]);return m?null:i===`grid`?w(`button`,{type:`button`,"aria-label":h?`取消关注`:`关注`,className:`flex size-[24px] shrink-0 items-center justify-center rounded-full transition-opacity ${h?`bg-white/15 text-white`:`bg-black/30 text-white/75`} ${d?`opacity-50`:``}`,onClick:_,children:w(h?S:C,{className:`size-[14px]`})}):T(`button`,{type:`button`,className:`flex h-[24px] shrink-0 items-center justify-center rounded-full transition-opacity ${h?`border border-white/25 bg-white/10 px-[8px] text-white/85`:`w-[64px] border border-white/60 bg-black/20 text-white/60`} ${d?`opacity-50`:``}`,onClick:_,children:[!h&&w(C,{className:`mr-[2px] size-[16px]`}),w(s,{className:h?`text-[12px] leading-[18px]`:`text-[14px] leading-[20px]`,children:h?`已关注`:`关注`})]})}const M=_(({item:e,onFollowChange:t})=>{let n=h(e),r=m(e),i=p(e.follower_count);return T(a,{className:`flex w-full items-center gap-[8px]`,children:[T(D,{href:`/profile/${e.user_id||``}`,className:`flex min-w-0 flex-1 items-center gap-[8px]`,children:[w(A,{src:e.avatar,alt:n||`用户头像`,variant:`row`}),T(a,{className:`min-w-0 max-w-[194px] flex-1`,children:[w(s,{className:`block truncate text-[14px] leading-[20px] font-normal text-white`,children:n}),w(s,{className:`mt-[2px] block truncate text-[14px] leading-[20px] text-white/60`,children:r}),T(s,{className:`mt-[2px] block truncate text-[14px] leading-[20px] text-white/60`,children:[`粉丝:`,i]})]})]}),w(j,{item:e,variant:`row`,onFollowChange:t})]})});M.displayName=`SearchUserRowCard`;const N=_(({item:e,onFollowChange:t})=>{let n=h(e),r=m(e);return T(a,{className:`h-[170px] rounded-[8px] bg-white/10 px-[16px] py-[16px]`,children:[T(a,{className:`flex items-start justify-between`,children:[w(D,{href:`/profile/${e.user_id||``}`,className:`flex items-center`,children:w(A,{src:e.avatar,alt:n||`用户头像`,variant:`grid`})}),w(j,{item:e,variant:`grid`,onFollowChange:t})]}),T(D,{href:`/profile/${e.user_id||``}`,className:`mt-[16px] block`,children:[w(s,{className:`block truncate text-[14px] leading-[20px] font-medium text-white`,children:n}),w(s,{className:`mt-[8px] block text-[14px] leading-[20px] text-white/60 line-clamp-4`,children:r})]})]})});N.displayName=`SearchUserGridCard`;const P={background:`linear-gradient(180deg, rgba(255,30,255,0.8) 0%, rgba(108,67,238,0) 100%), linear-gradient(145deg, rgba(255,30,172,0.6) 2.9%, rgba(108,67,238,0) 100%), linear-gradient(180deg, rgba(151,86,227,1) 0%, rgba(108,67,238,1) 100%)`,WebkitMask:`linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)`,WebkitMaskComposite:`xor`,maskComposite:`exclude`,padding:`0.5px`},F=_(({item:e,isFirst:t,onFollowChange:n})=>T(a,{className:`relative flex h-[88px] items-center rounded-[8px] bg-white/10 px-[12px] py-[8px]`,children:[t&&w(a,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:P}),w(M,{item:e,onFollowChange:n})]}));F.displayName=`SearchUserCard`;function I(){return w(a,{className:`flex flex-col gap-[12px] px-[16px]`,children:Array.from({length:6}).map((e,t)=>T(a,{className:`flex h-[88px] items-center gap-[8px] rounded-[8px] bg-white/8 px-[12px] py-[8px]`,children:[w(c,{className:`size-[56px] shrink-0 rounded-full bg-white/10`}),T(a,{className:`min-w-0 flex-1`,children:[w(c,{className:`h-[20px] w-[100px] rounded-[4px] bg-white/10`}),w(c,{className:`mt-[4px] h-[20px] w-[160px] rounded-[4px] bg-white/10`}),w(c,{className:`mt-[4px] h-[20px] w-[80px] rounded-[4px] bg-white/10`})]}),w(c,{className:`h-[24px] w-[64px] shrink-0 rounded-full bg-white/10`})]},`search-user-row-skeleton-${t}`))})}const L=_(({inputVal:e,sort:n,refreshVersion:r})=>{let i=E(`components.pages.search.searchResult`),[s,c]=x({});y(()=>{c({})},[e,r,n]);let u=v(async r=>await t({data_type:2,extra_params:JSON.stringify({type:4,keywords:e,sort:n}),page:r||1,page_size:20}),[e,n]),d=l({key:b(()=>[`search-result`,`user`,e,n,r],[e,r,n]),initialPageParam:1,async queryFn(e){return(await u(e))?.data?.users??{has_more:!1,total:0,list:[]}},getNextPageParam(e,t){if(e.has_more)return t.length+1}}),p=b(()=>(d.data?.pages??[]).flatMap(e=>e.list??[]).map(e=>{let t=String(e.user_id||``).trim();return!t||s[t]===void 0?e:{...e,is_following:s[t]}}),[s,d.data?.pages]),m=!!((d.isPending||d.isFetching)&&p.length===0),h=v((e,t)=>{e&&c(n=>({...n,[e]:t?1:0}))},[]),g=v(async()=>{try{await d.fetchNextPage()}catch(e){console.error(`获取用户搜索结果失败`,e)}},[d]);return m?w(I,{}):p.length===0?w(f,{text:i(`searchUser.emptyResult`)}):T(a,{className:`w-full pb-[24px]`,children:[w(a,{className:`flex flex-col gap-[12px] px-[16px]`,children:p.map((e,t)=>w(F,{item:e,isFirst:t===0,onFollowChange:t=>{h(String(e.user_id||``),t)}},String(e.user_id??t)))}),d.hasNextPage&&w(o,{loadMore:async e=>g(),hasMore:d.hasNextPage,className:`w-full`})]})});L.displayName=`SearchUser`;export{M as SearchUserRowCard,L as default};
2
+ "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gContentGetRecommendVideoList as t,pInteractionFollow as n,pInteractionUnfollow as r}from"../../../service/generated/client.mjs";import{Image as i}from"../../ui/image.mjs";import{Box as a}from"../../ui/box.mjs";import{InfiniteScroll as o}from"../../ui/infinite-scroll.mjs";import{Text as s}from"../../ui/text.mjs";import{Skeleton as c}from"../../ui/skeleton.mjs";import{usePaginated as l}from"../../../hooks/query/use-query.mjs";import{useRequireLogin as u}from"../../../hooks/use-auth.mjs";import d from"../../../assets/images/user/default_avatar.mjs";import{SearchResultEmpty as f}from"./search-empty.mjs";import{formatSearchFollowerCount as p,resolveSearchUserDescription as m,resolveSearchUserName as h}from"./shared.mjs";import{toast as g}from"sonner";import{memo as _,useCallback as v,useEffect as y,useMemo as b,useState as x}from"react";import{Check as S,Plus as C}from"lucide-react";import{jsx as w,jsxs as T}from"react/jsx-runtime";import{useTranslations as E}from"next-intl";import D from"next/link";const O=typeof d==`string`?d:d.src;function k(e,t){return String(t||e?.user_id||e?.userId||``).trim()}function A({src:e,alt:t,variant:n}){let r=n===`row`?`size-[56px] p-[4.375px]`:`size-[40px] p-[3px]`,o=n===`row`?`border-[3px]`:`border-[2px]`;return w(a,{className:`rounded-full bg-white/20 ${r}`,children:w(a,{className:`relative size-full overflow-hidden rounded-full border-solid border-white/40 ${o}`,children:w(i,{src:e||O,fill:!0,objectFit:`cover`,alt:t})})})}function j({item:t,variant:i,onFollowChange:a}){let o=u(),{userInfo:c,userId:l}=e(),[d,f]=x(!1),p=k(c,l),m=p!==``&&p===String(t.user_id||``).trim(),h=!!t.is_following,_=v(()=>{!t.user_id||d||o(()=>{let i=k(e.getState().userInfo,e.getState().userId);if(!i){g.error(`请先登录`);return}(async()=>{f(!0);try{let e=h?await r({follower_id:i,followee_id:t.user_id}):await n({follower_id:i,followee_id:t.user_id});if(e.code!==0){g.error(e.message||(h?`取消关注失败`:`关注失败`));return}a?.(!h)}catch(e){console.error(`切换关注状态失败`,e),g.error(h?`取消关注失败`:`关注失败`)}finally{f(!1)}})()})},[h,t.user_id,a,d,o]);return m?null:i===`grid`?w(`button`,{type:`button`,"aria-label":h?`取消关注`:`关注`,className:`flex size-[24px] shrink-0 items-center justify-center rounded-full transition-opacity ${h?`bg-white/15 text-white`:`bg-black/30 text-white/75`} ${d?`opacity-50`:``}`,onClick:_,children:w(h?S:C,{className:`size-[14px]`})}):T(`button`,{type:`button`,className:`flex h-[24px] shrink-0 items-center justify-center rounded-full transition-opacity ${h?`border border-white/25 bg-white/10 px-[8px] text-white/85`:`w-[64px] border border-white/60 bg-black/20 text-white/60`} ${d?`opacity-50`:``}`,onClick:_,children:[!h&&w(C,{className:`mr-[2px] size-[16px]`}),w(s,{className:h?`text-[12px] leading-[18px]`:`text-[14px] leading-[20px]`,children:h?`已关注`:`关注`})]})}const M=_(({item:e,onFollowChange:t})=>{let n=h(e),r=m(e),i=p(e.follower_count);return T(a,{className:`flex w-full items-center gap-[8px]`,children:[T(D,{href:`/profile/${e.user_id||``}`,className:`flex min-w-0 flex-1 items-center gap-[8px]`,children:[w(A,{src:e.avatar,alt:n||`用户头像`,variant:`row`}),T(a,{className:`min-w-0 max-w-[194px] flex-1`,children:[w(s,{className:`block truncate text-[14px] leading-[20px] font-normal text-white`,children:n}),w(s,{className:`mt-[2px] block truncate text-[14px] leading-[20px] text-white/60`,children:r}),T(s,{className:`mt-[2px] block truncate text-[14px] leading-[20px] text-white/60`,children:[`粉丝:`,i]})]})]}),w(j,{item:e,variant:`row`,onFollowChange:t})]})});M.displayName=`SearchUserRowCard`;const N=_(({item:e,onFollowChange:t})=>{let n=h(e),r=m(e);return T(a,{className:`h-[170px] rounded-[8px] bg-white/10 px-[16px] py-[16px]`,children:[T(a,{className:`flex items-start justify-between`,children:[w(D,{href:`/profile/${e.user_id||``}`,className:`flex items-center`,children:w(A,{src:e.avatar,alt:n||`用户头像`,variant:`grid`})}),w(j,{item:e,variant:`grid`,onFollowChange:t})]}),T(D,{href:`/profile/${e.user_id||``}`,className:`mt-[16px] block`,children:[w(s,{className:`block truncate text-[14px] leading-[20px] font-medium text-white`,children:n}),w(s,{className:`mt-[8px] block text-[14px] leading-[20px] text-white/60 line-clamp-4`,children:r})]})]})});N.displayName=`SearchUserGridCard`;const P={background:`linear-gradient(180deg, rgba(255,30,255,0.8) 0%, rgba(108,67,238,0) 100%), linear-gradient(145deg, rgba(255,30,172,0.6) 2.9%, rgba(108,67,238,0) 100%), linear-gradient(180deg, rgba(151,86,227,1) 0%, rgba(108,67,238,1) 100%)`,WebkitMask:`linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)`,WebkitMaskComposite:`xor`,maskComposite:`exclude`,padding:`0.5px`},F=_(({item:e,isFirst:t,onFollowChange:n})=>T(a,{className:`relative flex h-[88px] items-center rounded-[8px] bg-white/10 px-[12px] py-[8px]`,children:[t&&w(a,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:P}),w(M,{item:e,onFollowChange:n})]}));F.displayName=`SearchUserCard`;function I(){return w(a,{className:`flex flex-col gap-[12px] px-[16px]`,children:Array.from({length:6}).map((e,t)=>T(a,{className:`flex h-[88px] items-center gap-[8px] rounded-[8px] bg-white/8 px-[12px] py-[8px]`,children:[w(c,{className:`size-[56px] shrink-0 rounded-full bg-white/10`}),T(a,{className:`min-w-0 flex-1`,children:[w(c,{className:`h-[20px] w-[100px] rounded-[4px] bg-white/10`}),w(c,{className:`mt-[4px] h-[20px] w-[160px] rounded-[4px] bg-white/10`}),w(c,{className:`mt-[4px] h-[20px] w-[80px] rounded-[4px] bg-white/10`})]}),w(c,{className:`h-[24px] w-[64px] shrink-0 rounded-full bg-white/10`})]},`search-user-row-skeleton-${t}`))})}const L=_(({inputVal:e,sort:n,refreshVersion:r})=>{let i=E(`components.pages.search.searchResult`),[s,c]=x({});y(()=>{c({})},[e,r,n]);let u=v(async r=>await t({data_type:2,extra_params:JSON.stringify({type:4,keywords:e,sort:n}),page:r||1,page_size:20}),[e,n]),d=l({key:b(()=>[`search-result`,`user`,e,n,r],[e,r,n]),initialPageParam:1,async queryFn(e){return(await u(e))?.data?.users??{has_more:!1,total:0,list:[]}},getNextPageParam(e,t){if(e.has_more)return t.length+1}}),p=b(()=>(d.data?.pages??[]).flatMap(e=>e.list??[]).map(e=>{let t=String(e.user_id||``).trim();return!t||s[t]===void 0?e:{...e,is_following:s[t]}}),[s,d.data?.pages]),m=!!((d.isPending||d.isFetching)&&p.length===0),h=v((e,t)=>{e&&c(n=>({...n,[e]:t?1:0}))},[]),g=v(async()=>{try{await d.fetchNextPage()}catch(e){console.error(`获取用户搜索结果失败`,e)}},[d]);return m?w(I,{}):p.length===0?w(f,{text:i(`searchUser.emptyResult`)}):T(a,{className:`w-full pb-[24px]`,children:[w(a,{className:`flex flex-col gap-[12px] no-vw-x-16`,children:p.map((e,t)=>w(F,{item:e,isFirst:t===0,onFollowChange:t=>{h(String(e.user_id||``),t)}},String(e.user_id??t)))}),d.hasNextPage&&w(o,{loadMore:async e=>g(),hasMore:d.hasNextPage,className:`w-full`})]})});L.displayName=`SearchUser`;export{M as SearchUserRowCard,L as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useRouter as e}from"../../../utils/use-compatible-router.mjs";import{Input as t}from"../../ui/input.mjs";import{toast as n}from"../../../ui.mjs";import{useKeepAliveEffect as r,useKeepAliveState as i}from"../../common/keep-scroll-position/index.mjs";import{LeftArrowIcon as a}from"../../common/icons/left-arrow.mjs";import{useSearchParams as o}from"next/navigation";import{memo as s,useCallback as c}from"react";import{jsx as l,jsxs as u}from"react/jsx-runtime";import{useTranslations as d}from"next-intl";const f=s(({setSearchInputVal:s,initInputVal:f,initInputVersion:p,addSearchHistory:m})=>{let h=d(`components.pages.search`),g=e(),[_,v]=i(`search-input-val`,``),y=o().get(`q`),b=e=>{v(e.target.value)},x=c(e=>{s(e),m(e)},[m,s]);r(()=>{f&&(v(f),x(f))},[x,f,p,v],`search-init-input-effect`),r(()=>{y&&(v(y),x(y))},[x,v,y],`search-url-params-effect`);function S(){if(n.dismiss(),window.location.search.split(`from_code=`)[1]){g.push(`/`);return}g.back()}return l(`div`,{className:`app-top-nav w-full`,children:u(`header`,{className:`flex h-[60px] items-center gap-[8px] px-[16px] pb-[10px] pt-[16px]`,children:[l(`button`,{type:`button`,"aria-label":`返回`,className:`flex size-[24px] shrink-0 items-center justify-center text-white`,onClick:S,children:l(a,{className:`h-[16px] w-[16px]`})}),l(`div`,{className:`relative h-[34px] min-w-0 flex-1`,children:u(`div`,{className:`flex h-full min-w-0 flex-1 items-center overflow-hidden rounded-[100px] border-[0.5px] border-[rgba(230,42,255,0.9)] bg-black/40 backdrop-blur-[2px]`,children:[l(`div`,{className:`flex h-full min-w-0 flex-1 items-center pl-[20px] pr-[8px]`,children:l(t,{placeholder:h(`topHeader.placeholder`),maxLength:20,value:_,className:`!h-[24px] !w-full !rounded-none !border-0 !bg-transparent !px-0 !py-0 !text-[14px] !leading-[24px] !text-white/90 placeholder:!text-white/90`,onChange:b,onKeyDown:e=>{if(e.key===`Enter`){if(e.preventDefault(),!_.trim())return;x(_.trim())}}})}),l(`button`,{type:`button`,className:`mx-[2px] flex h-[30px] w-[56px] shrink-0 items-center justify-center rounded-[100px] bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-[14px] leading-[20px] text-white`,onClick:()=>{_.trim()&&x(_.trim())},children:h(`topHeader.search`)})]})})]})})});f.displayName=`SearchTopHeader`;export{f as default};
2
+ "use client";import{useRouter as e}from"../../../utils/use-compatible-router.mjs";import{Input as t}from"../../ui/input.mjs";import{toast as n}from"../../../ui.mjs";import{useKeepAliveEffect as r,useKeepAliveState as i}from"../../common/keep-scroll-position/index.mjs";import{LeftArrowIcon as a}from"../../common/icons/left-arrow.mjs";import{useSearchParams as o}from"next/navigation";import{memo as s,useCallback as c}from"react";import{jsx as l,jsxs as u}from"react/jsx-runtime";import{useTranslations as d}from"next-intl";const f=s(({setSearchInputVal:s,initInputVal:f,initInputVersion:p,addSearchHistory:m})=>{let h=d(`components.pages.search`),g=e(),[_,v]=i(`search-input-val`,``),y=o().get(`q`),b=e=>{v(e.target.value)},x=c(e=>{s(e),m(e)},[m,s]);r(()=>{f&&(v(f),x(f))},[x,f,p,v],`search-init-input-effect`),r(()=>{y&&(v(y),x(y))},[x,v,y],`search-url-params-effect`);function S(){if(n.dismiss(),window.location.search.split(`from_code=`)[1]){g.push(`/`);return}g.back()}return l(`div`,{className:`app-top-nav w-full`,children:u(`header`,{className:`flex h-[60px] items-center gap-[8px] no-vw-x-16 pb-[10px] pt-[16px]`,children:[l(`button`,{type:`button`,"aria-label":`返回`,className:`flex size-[24px] shrink-0 items-center justify-center text-white`,onClick:S,children:l(a,{className:`h-[16px] w-[16px]`})}),l(`div`,{className:`relative h-[34px] min-w-0 flex-1`,children:u(`div`,{className:`flex h-full min-w-0 flex-1 items-center overflow-hidden rounded-[100px] border-[0.5px] border-[rgba(230,42,255,0.9)] bg-black/40 backdrop-blur-[2px]`,children:[l(`div`,{className:`flex h-full min-w-0 flex-1 items-center pl-[20px] pr-[8px]`,children:l(t,{placeholder:h(`topHeader.placeholder`),maxLength:20,value:_,className:`!h-[24px] !w-full !rounded-none !border-0 !bg-transparent !px-0 !py-0 !text-[14px] !leading-[24px] !text-white/90 placeholder:!text-white/90`,onChange:b,onKeyDown:e=>{if(e.key===`Enter`){if(e.preventDefault(),!_.trim())return;x(_.trim())}}})}),l(`button`,{type:`button`,className:`mx-[2px] flex h-[30px] w-[56px] shrink-0 items-center justify-center rounded-[100px] bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-[14px] leading-[20px] text-white`,onClick:()=>{_.trim()&&x(_.trim())},children:h(`topHeader.search`)})]})})]})})});f.displayName=`SearchTopHeader`;export{f as default};
@@ -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%)] px-[16px] 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:`px-[16px] 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:`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};
@@ -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{memo as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";function s(e){return e.img_x??e.img_y??``}function c(e){return!Number.isFinite(e)||e==null||e<=0?``:(e>10?e/10:e).toFixed(1)}function l(e){return Array.isArray(e.tags)?e.tags.map(e=>String(e?.name??``).trim()).filter(Boolean).slice(0,5):[]}function u({item:i,href:u=``}){let d=i.name,f=s(i),p=c(i.score),m=l(i);return o(r,{href:u,className:`block cursor-pointer rounded-[16px] border-[0.5px] border-[#ff1eff] bg-[rgba(255,255,255,0.1)] p-4`,"aria-label":d,children:[a(t,{className:`relative aspect-[326/207] w-full overflow-hidden rounded-[8px] bg-[linear-gradient(180deg,#2d1147_0%,#13031f_100%)]`,children:f?a(e,{src:f,alt:d,fill:!0,className:`object-cover`}):null}),o(t,{className:`mt-2 flex flex-col gap-2`,children:[o(t,{className:`flex items-center justify-between gap-3`,children:[a(n,{as:`h3`,className:`min-w-0 flex-1 truncate text-[14px] font-medium leading-normal text-white`,children:d}),p?a(n,{className:`shrink-0 font-mono text-[18px] font-bold leading-5 text-[#ffc039] tabular-nums`,children:p}):null]}),m.length>0?a(t,{className:`flex flex-wrap gap-[6px]`,children:m.map(e=>a(t,{className:`flex h-[18px] shrink-0 items-center justify-center rounded bg-[rgba(217,217,217,0.2)] px-1 py-0.5`,children:a(n,{className:`text-[12px] leading-[14px] text-white`,children:e})},e))}):null]})]})}const d=i(u);d.displayName=`VideoListRecommendItem`;export{d as VideoListRecommendItem};
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{memo as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";function s(e){return e.img_x??e.img_y??``}function c(e){return!Number.isFinite(e)||e==null||e<=0?``:(e>10?e/10:e).toFixed(1)}function l(e){return Array.isArray(e.tags)?e.tags.map(e=>String(e?.name??``).trim()).filter(Boolean):[]}function u(e){return String(e.description??``).trim()}function d({item:i,href:d=``}){let f=i.name,p=s(i),m=c(i.score),h=l(i),g=u(i);return o(r,{href:d,className:`block cursor-pointer rounded-[16px] border-[0.5px] border-[#ff1eff] bg-[rgba(255,255,255,0.1)] p-4`,"aria-label":f,children:[a(t,{className:`relative aspect-[326/207] w-full overflow-hidden rounded-[8px] bg-[linear-gradient(180deg,#2d1147_0%,#13031f_100%)]`,children:p?a(e,{src:p,alt:f,fill:!0,className:`object-cover`}):null}),o(t,{className:`mt-2 flex flex-col gap-2`,children:[o(t,{className:`flex items-start justify-between gap-3`,children:[a(n,{as:`h3`,className:`min-w-0 flex-1 truncate text-[18px] font-medium leading-normal text-white`,children:f}),m?a(n,{className:`shrink-0 pt-[1px] font-mono text-[20px] font-bold leading-5 text-[#ffc039] tabular-nums`,children:m}):null]}),h.length>0?a(t,{className:`flex flex-wrap gap-[6px]`,children:h.map(e=>a(t,{className:`flex h-[18px] shrink-0 items-center justify-center rounded bg-[rgba(217,217,217,0.2)] px-1 py-0.5`,children:a(n,{className:`text-[12px] leading-[14px] text-white`,children:e})},e))}):null,g?a(n,{className:`line-clamp-3 text-[14px] leading-6 text-white/50`,children:g}):null]})]})}const f=i(d);f.displayName=`VideoListRecommendItem`;export{f as VideoListRecommendItem};
@@ -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%)] px-[16px] 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] px-[16px] 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:`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};
@@ -1,2 +1,2 @@
1
1
 
2
- import{getCookie as e,isClient as t}from"./common.mjs";import{getOrCreateDeviceId as n}from"./device-id.mjs";import{useBlockedModalStore as r}from"../store/modules/blocked-modal-store.mjs";import{useUserStore as i}from"../store/modules/user-store.mjs";import{resolveRequestUserId as a}from"./request-user-id.mjs";import{toast as o}from"sonner";const s=process.env.NEXT_PUBLIC_API_BASE||``;let c=!1,l=!1,u=null;var d=class extends Error{constructor(e,t,n){super(t),this.status=e,this.response=n}};function f(e){if(!e)return``;let t=new URLSearchParams;Object.entries(e).forEach(([e,n])=>{n!=null&&t.append(e,String(n))});let n=t.toString();return n?`?${n}`:``}function p(e=1e4,t){let n=new AbortController,r=setTimeout(()=>n.abort(),e);return t&&t.addEventListener(`abort`,()=>n.abort()),{signal:n.signal,clear:()=>clearTimeout(r)}}function m(){t()&&(l||(l=!0,i.getState().logout(),setTimeout(()=>{l=!1},1e3)))}var h=class{constructor(){this.baseURL=s,this.defaultConfig={method:`GET`,timeout:1e4,cache:`default`}}async buildHeaders(e){return{"Content-Type":`application/json`,...e}}buildURL(e,t){return`${e.startsWith(`http`)?e:`${this.baseURL}${e.startsWith(`/`)?``:`/`}${e}`}${f(t)}`}async executeOnce(s){let{url:l,method:f=`GET`,data:h,params:g,timeout:_,cache:v,revalidate:y,tags:b,signal:x}=s,S=await this.buildHeaders(s.headers),C=``,w=f===`GET`||f===`HEAD`;if(t()&&!S[`x-device-id`]){let e=await n();e&&(S[`x-device-id`]=e)}C=await e(`token`);let T=await e(`userId`),E=await e(`guestUserId`);C&&(S.Authorization=`Bearer ${C}`);let D=a(T,E);if(D&&(S[`x-user-id`]=D),t()&&(u?.token&&u.token!==C&&(u=null),C&&u?.token===C))throw m(),new d(403,`账号已被封禁`,{code:403,message:`账号已被封禁`,data:{blocked_remark:u.blockedRemark,blocked_end_time:u.blockedEndTime}});let O;!w&&h!==void 0&&(h instanceof FormData?(delete S[`Content-Type`],O=h):O=JSON.stringify(h));let{signal:k,clear:A}=p(_,x),j=this.buildURL(l,g);try{let e=await fetch(j,{method:f,headers:S,body:O,cache:v,signal:k,next:{revalidate:y??0,tags:b}}),n=e.status===401||e.status===403;if(!e.ok&&!n)throw new d(e.status,e.statusText,await e.text());let a=await e.json(),s=n&&e.status===401||a?.code===401,l=n&&e.status===403||a?.code===403;if(s)if(t())c||(c=!0,o.error(`登录已过期,请重新登录`),i.getState().logout(),setTimeout(()=>{c=!1},3e3));else throw new d(a.code,a.message,a);if(l){let e=typeof a?.data?.blocked_remark==`string`?a.data.blocked_remark:``,n=Number(a?.data?.blocked_end_time),i={blockedRemark:e,blockedEndTime:Number.isFinite(n)&&n>0?Math.floor(n):0};if(t()){let e=C,t=u?.token===e;e&&(u={token:e,...i}),t||r.getState().open(i),m()}throw new d(a.code,a.message,a)}if(a.code!==0)throw new d(a.code,a.message,a);return a}finally{A()}}async request(e){let t={...this.defaultConfig,...e};return await this.executeOnce(t)}get(e,t){return this.request({...t,method:`GET`,url:e})}post(e,t){return this.request({...t,method:`POST`,url:e})}put(e,t){return this.request({...t,method:`PUT`,url:e})}delete(e,t){return this.request({...t,method:`DELETE`,url:e})}patch(e,t){return this.request({...t,method:`PATCH`,url:e})}};const g=new h;export{h as HttpClient,d as HttpError,g as default};
2
+ import{getCookie as e,isClient as t}from"./common.mjs";import{getOrCreateDeviceId as n}from"./device-id.mjs";import{useBlockedModalStore as r}from"../store/modules/blocked-modal-store.mjs";import{useUserStore as i}from"../store/modules/user-store.mjs";import{resolveRequestUserId as a}from"./request-user-id.mjs";import{toast as o}from"sonner";const s=process.env.NEXT_PUBLIC_API_BASE||``;let c=!1,l=!1,u=null;var d=class extends Error{constructor(e,t,n){super(t),this.status=e,this.response=n}};function f(e){if(!e)return``;let t=new URLSearchParams;Object.entries(e).forEach(([e,n])=>{n!=null&&t.append(e,String(n))});let n=t.toString();return n?`?${n}`:``}function p(e=1e4,t){let n=new AbortController,r=setTimeout(()=>n.abort(),e);return t&&t.addEventListener(`abort`,()=>n.abort()),{signal:n.signal,clear:()=>clearTimeout(r)}}function m(){t()&&(l||(l=!0,i.getState().logout(),setTimeout(()=>{l=!1},1e3)))}var h=class{constructor(){this.baseURL=s,this.defaultConfig={method:`GET`,timeout:1e4,cache:`default`}}async buildHeaders(e){return{"Content-Type":`application/json`,...e}}buildURL(e,t){return`${e.startsWith(`http`)?e:`${this.baseURL}${e.startsWith(`/`)?``:`/`}${e}`}${f(t)}`}async executeOnce(s){let{url:l,method:f=`GET`,data:h,params:g,timeout:_,cache:v,revalidate:y,tags:b,signal:x}=s,S=await this.buildHeaders(s.headers),C=``,w=f===`GET`||f===`HEAD`;if(t()){if(!S[`x-device-id`]){let e=await n();e&&(S[`x-device-id`]=e)}C=await e(`token`);let t=await e(`userId`),r=await e(`guestUserId`);C&&(S.Authorization=`Bearer ${C}`);let i=a(t,r);if(i&&(S[`x-user-id`]=i),u?.token&&u.token!==C&&(u=null),C&&u?.token===C)throw m(),new d(403,`账号已被封禁`,{code:403,message:`账号已被封禁`,data:{blocked_remark:u.blockedRemark,blocked_end_time:u.blockedEndTime}})}let T;!w&&h!==void 0&&(h instanceof FormData?(delete S[`Content-Type`],T=h):T=JSON.stringify(h));let{signal:E,clear:D}=p(_,x),O=this.buildURL(l,g);try{let e=await fetch(O,{method:f,headers:S,body:T,cache:v,signal:E,next:{revalidate:y??0,tags:b}}),n=e.status===401||e.status===403;if(!e.ok&&!n)throw new d(e.status,e.statusText,await e.text());let a=await e.json(),s=n&&e.status===401||a?.code===401,l=n&&e.status===403||a?.code===403;if(s)if(t())c||(c=!0,o.error(`登录已过期,请重新登录`),i.getState().logout(),setTimeout(()=>{c=!1},3e3));else throw new d(a.code,a.message,a);if(l){let e=typeof a?.data?.blocked_remark==`string`?a.data.blocked_remark:``,n=Number(a?.data?.blocked_end_time),i={blockedRemark:e,blockedEndTime:Number.isFinite(n)&&n>0?Math.floor(n):0};if(t()){let e=C,t=u?.token===e;e&&(u={token:e,...i}),t||r.getState().open(i),m()}throw new d(a.code,a.message,a)}if(a.code!==0)throw new d(a.code,a.message,a);return a}finally{D()}}async request(e){let t={...this.defaultConfig,...e};return await this.executeOnce(t)}get(e,t){return this.request({...t,method:`GET`,url:e})}post(e,t){return this.request({...t,method:`POST`,url:e})}put(e,t){return this.request({...t,method:`PUT`,url:e})}delete(e,t){return this.request({...t,method:`DELETE`,url:e})}patch(e,t){return this.request({...t,method:`PATCH`,url:e})}};const g=new h;export{h as HttpClient,d as HttpError,g as default};
@@ -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.23",
4
+ "version": "0.2.24",
5
5
  "private": false,
6
6
  "sideEffects": [
7
7
  "**/*.css"
package/theme.css CHANGED
@@ -224,48 +224,48 @@
224
224
  }
225
225
 
226
226
  .no-vw-x-16 {
227
+ /* px-to-viewport-ignore-next */
227
228
  padding-left: 16px;
228
- /* px-to-viewport-ignore */
229
+ /* px-to-viewport-ignore-next */
229
230
  padding-right: 16px;
230
- /* px-to-viewport-ignore */
231
231
  }
232
232
 
233
233
  .no-vw-pl-16 {
234
+ /* px-to-viewport-ignore-next */
234
235
  padding-left: 16px;
235
- /* px-to-viewport-ignore */
236
236
  }
237
237
 
238
238
  .no-vw-pr-16 {
239
+ /* px-to-viewport-ignore-next */
239
240
  padding-right: 16px;
240
- /* px-to-viewport-ignore */
241
241
  }
242
242
 
243
243
  .no-vw-pt-16 {
244
+ /* px-to-viewport-ignore-next */
244
245
  padding-top: 16px;
245
- /* px-to-viewport-ignore */
246
246
  }
247
247
 
248
248
  .no-vw-pb-16 {
249
+ /* px-to-viewport-ignore-next */
249
250
  padding-bottom: 16px;
250
- /* px-to-viewport-ignore */
251
251
  }
252
252
 
253
253
  .no-vw-ml-16 {
254
+ /* px-to-viewport-ignore-next */
254
255
  margin-left: 16px;
255
- /* px-to-viewport-ignore */
256
256
  }
257
257
 
258
258
  .no-vw-mr-16 {
259
+ /* px-to-viewport-ignore-next */
259
260
  margin-right: 16px;
260
- /* px-to-viewport-ignore */
261
261
  }
262
262
 
263
263
  .no-vw-mt-16 {
264
+ /* px-to-viewport-ignore-next */
264
265
  margin-top: 16px;
265
- /* px-to-viewport-ignore */
266
266
  }
267
267
 
268
268
  .no-vw-mb-16 {
269
+ /* px-to-viewport-ignore-next */
269
270
  margin-bottom: 16px;
270
- /* px-to-viewport-ignore */
271
271
  }