@funhub/platform 0.1.104 → 0.1.106

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 (35) hide show
  1. package/dist/components/biz/business/detail/shared/detail-operate.mjs +1 -1
  2. package/dist/components/biz/business/detail/shared/registry.d.mts +3 -11
  3. package/dist/components/biz/business/detail/shared/registry.mjs +1 -1
  4. package/dist/components/biz/business/detail/video-detail-recommend/client.mjs +1 -1
  5. package/dist/components/biz/business/detail/video-detail-recommend/material.d.mts +2 -2
  6. package/dist/components/biz/business/detail/video-detail-recommend/schema.d.mts +2 -2
  7. package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.d.mts +2 -2
  8. package/dist/components/biz/business/home-recommend/home-recommend-grid/material.d.mts +2 -2
  9. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.d.mts +2 -2
  10. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/material.d.mts +2 -2
  11. package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
  12. package/dist/components/biz/business/home-recommend/shared/home-recommend-server-data.mjs +1 -1
  13. package/dist/components/biz/business/marquee/material.d.mts +1 -1
  14. package/dist/components/biz/business/marquee/schema.d.mts +1 -1
  15. package/dist/components/biz/business/search-history/client.mjs +1 -1
  16. package/dist/components/common/series-episodes/index.mjs +1 -1
  17. package/dist/components/common/share-popup/share-content.d.mts +1 -0
  18. package/dist/components/common/share-popup/share-content.mjs +1 -1
  19. package/dist/components/common/share-popup/share-popup.mjs +1 -1
  20. package/dist/components/pages/video-detail/video-detail-client.mjs +1 -1
  21. package/dist/components/ui/badge.d.mts +1 -1
  22. package/dist/components/ui/button.d.mts +2 -2
  23. package/dist/materials.d.mts +1 -3
  24. package/dist/materials.mjs +1 -1
  25. package/dist/utils/share-manager.mjs +1 -1
  26. package/package.json +1 -1
  27. package/dist/components/biz/business/detail/video-detail-info-title/client.d.mts +0 -13
  28. package/dist/components/biz/business/detail/video-detail-info-title/client.mjs +0 -2
  29. package/dist/components/biz/business/detail/video-detail-info-title/index.d.mts +0 -5
  30. package/dist/components/biz/business/detail/video-detail-info-title/material.d.mts +0 -16
  31. package/dist/components/biz/business/detail/video-detail-info-title/material.mjs +0 -2
  32. package/dist/components/biz/business/detail/video-detail-info-title/schema.d.mts +0 -21
  33. package/dist/components/biz/business/detail/video-detail-info-title/schema.mjs +0 -2
  34. package/dist/components/biz/business/detail/video-detail-info-title/server.d.mts +0 -15
  35. package/dist/components/biz/business/detail/video-detail-info-title/server.mjs +0 -2
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../../../store/modules/user-store.mjs";import{pCommunityMoveCollectionContent as t}from"../../../../../service/generated/client.mjs";import{Box as n}from"../../../../ui/box.mjs";import{Text as r}from"../../../../ui/text.mjs";import{useLoginModalStore as i}from"../../../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as a}from"../../../../../hooks/query/use-query.mjs";import{debounceFun as o}from"../../../../../utils/tools.mjs";import s from"../../../../common/interaction-animations.module.mjs";import c from"../../../../common/collection-popup/index.mjs";import{useContentOperate as l}from"../../../../../hooks/use-content-operate.mjs";import u from"../../../../../assets/icons/detail/check-ok.mjs";import d from"../../../../../assets/icons/detail/collect_nor.mjs";import f from"../../../../../assets/icons/detail/collect_sel.mjs";import p from"../../../../../assets/icons/detail/give_like.mjs";import m from"../../../../../assets/icons/detail/give_like_sel.mjs";import h from"../../../../../assets/icons/detail/share.mjs";import{useCallback as g,useMemo as _,useRef as v,useState as y}from"react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{toast as S}from"sonner";import{useTranslations as C}from"next-intl";function w({mode:w=`renderer`,information:D,onUpdate:O}){let k=w===`editor`||!D?.id||D.id.startsWith(`preview-`),A=C(`components.biz.business.detail`),[j,M]=y(!1),[N,P]=y(!1),F=v(0),I=e(e=>e.userId),L=e(e=>e.isLogin),R=a(),z=g(()=>{I&&(R([`user-profile`,`mine`,I,`user-like-video`]),R([`user-profile`,`mine`,I,`user-like-post`]),R([`user-profile`,`mine`,I,`user-collect-video`,I]),R([`user-profile`,`mine`,I,`user-collect-post`,I]))},[R,I]),{likeAnimation:B,handleLikeOperate:V,handleDefaultCollectionOperate:H,handleShareOperate:U}=l({id:D.id,isLike:D.like||!1,isDislike:D.dislike||!1,isCollect:D.collect||!1,likeCnt:E(D.static?.like_cnt),dislikeCnt:E(D.static?.dislike_cnt),contentType:D.content_type,prefetchDefaultCollection:!k,animationClasses:{like:s.likeShakeAnimation,dislike:s.dislikeShakeAnimation}}),W=g(e=>{O?.({...e})},[O]),G=g(async()=>{if(j)return;if(!L){i.getState().open();return}let e=Date.now();if(e-F.current<300)return;F.current=e,M(!0);let t=D.like||!1,n=D.dislike||!1,r=E(D.static?.like_cnt),a=E(D.static?.dislike_cnt),o=!t,s=Math.max(0,r+(o?1:-1)),c=o?!1:n,l=o&&n?Math.max(0,a-1):a;W({like:o,dislike:c,static:{...D.static,like_cnt:s,dislike_cnt:l}});try{let e=await V();if(!e){W({like:t,dislike:n,static:{...D.static,like_cnt:r,dislike_cnt:a}});return}W({like:e.isLike,dislike:e.isDislike??c,static:{...D.static,like_cnt:e.likeCnt,dislike_cnt:e.dislikeCnt??l}}),z(),window.sensors?.track?.(`detail_like_click`,{object_id:D.id,action:e.isLike?`点赞`:`取消点赞`,like_count:e.likeCnt})}catch(e){console.error(`点赞操作失败:`,e),S.error(A(`detailOperate.operateFailed`))}finally{M(!1)}},[V,D,z,j,L,A,W]),K=_(()=>D.id,[D.id]),q=g(()=>{U(({isCollect:e})=>{W({collect:e})},K)},[U,K,W]),J=g(()=>{c.show({mode:`select`,onCollect:async e=>{try{let n=await t({new_collection_id:e,content_id:D.id});if(n.code!==0)throw Error(n.message||A(`detailOperate.collectFailed`));W({collect:!0}),z(),S.success(A(`detailOperate.modifyCollectionSuccess`))}catch(e){console.error(`修改收藏夹失败:`,e),S.error(A(`detailOperate.collectFailed`))}}})},[D.id,z,A,W]),Y=g(e=>{let t=e||A(`detailOperate.defaultCollection`);S.custom(e=>x(`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:[x(`div`,{className:`flex items-center gap-[10px]`,children:[b(`div`,{className:`w-[24px] h-[24px] rounded-full bg-white flex items-center justify-center`,children:b(u,{className:`w-[14px] h-[14px]`})}),x(`div`,{className:`flex items-center gap-[6px]`,children:[b(`span`,{className:`text-[14px] leading-[20px]`,children:A(`detailOperate.collectAdded`)}),b(`span`,{className:`text-[14px] leading-[20px] font-semibold`,children:t})]})]}),b(`button`,{type:`button`,className:`text-[14px] text-theme5 font-semibold`,onClick:()=>{S.dismiss(e),J()},children:A(`detailOperate.modifyCollection`)})]}))},[J,A]),X=g(async()=>{if(N)return;if(!L){i.getState().open();return}let e=D.collect||!1;P(!0),window.sensors?.track?.(`detail_fav_click`,{object_id:D.id,action:e?`取消收藏`:`收藏`});try{let t=await H({currentCollect:e,onUpdate:({isCollect:e})=>{W({collect:e})}});if(!t?.success){S.error(t?.message||A(`detailOperate.collectFailed`));return}z(),window.sensors?.track?.(`detail_fav_click`,{object_id:D.id,action:t.isCollect?`收藏`:`取消收藏`}),!e&&t.isCollect&&Y(t.collectionTitle),e&&t.isCollect===!1&&S.success(A(`detailOperate.uncollectSuccess`))}catch(e){console.error(`收藏操作失败:`,e),S.error(e?.message||A(`detailOperate.collectFailed`))}finally{P(!1)}},[H,D.collect,D.id,z,N,L,Y,A,W]),Z=_(()=>o(X,300),[X]);return x(n,{className:`w-full h-[42px] mt-[16px] flex items-center justify-between ${k?`pointer-events-none`:``}`,children:[x(n,{className:`w-[25%] h-full flex flex-col items-center justify-center ${j?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:G,children:[D.like?b(m,{className:`w-[20px] h-[20px] ${B.animationClass}`}):b(p,{className:`w-[20px] h-[20px] text-text2`}),b(r,{className:`text-[12px] text-text2 leading-[20px]`,children:D.static?D.static.like_cnt===0?A(`detailOperate.like`):T(D.static?.like_cnt):A(`detailOperate.like`)})]}),x(n,{className:`w-[25%] h-full flex flex-col items-center justify-center ${N?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:Z,children:[D.collect?b(f,{className:`w-[20px] h-[20px]`}):b(d,{className:`w-[20px] h-[20px] text-text2`}),b(r,{className:`text-[12px] text-text2 leading-[20px]`,children:A(`detailOperate.collection`)})]}),x(n,{className:`w-[25%] h-full flex flex-col items-center justify-center cursor-pointer`,onClick:q,children:[b(h,{className:`w-[20px] h-[20px] text-text2`}),b(r,{className:`text-[12px] text-text2 leading-[20px]`,children:A(`detailOperate.share`)})]})]})}function T(e){let t=Number(e||0);return Number.isNaN(t)||t<=0?`0`:t>=1e4?`${(t/1e4).toFixed(1)}w`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function E(e){if(e==null)return 0;if(typeof e==`number`)return e;let t=Number(e);return Number.isNaN(t)?0:t}export{w as DetailOperate};
2
+ "use client";import{useUserStore as e}from"../../../../../store/modules/user-store.mjs";import{pCommunityMoveCollectionContent as t}from"../../../../../service/generated/client.mjs";import{Box as n}from"../../../../ui/box.mjs";import{Text as r}from"../../../../ui/text.mjs";import{useLoginModalStore as i}from"../../../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as a}from"../../../../../hooks/query/use-query.mjs";import{debounceFun as o}from"../../../../../utils/tools.mjs";import s from"../../../../common/interaction-animations.module.mjs";import c from"../../../../common/collection-popup/index.mjs";import l from"../../../../common/share-popup/share-popup.mjs";import{useContentOperate as u}from"../../../../../hooks/use-content-operate.mjs";import d from"../../../../../assets/icons/detail/check-ok.mjs";import f from"../../../../../assets/icons/detail/collect_nor.mjs";import p from"../../../../../assets/icons/detail/collect_sel.mjs";import ee from"../../../../../assets/icons/detail/give_like.mjs";import m from"../../../../../assets/icons/detail/give_like_sel.mjs";import te from"../../../../../assets/icons/detail/share.mjs";import{useCallback as h,useEffect as g,useMemo as _,useRef as v,useState as y}from"react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{toast as S}from"sonner";import{useTranslations as C}from"next-intl";import{usePathname as w,useSearchParams as ne}from"next/navigation";function T({mode:T=`renderer`,information:O,onUpdate:k}){let A=T===`editor`||!O?.id||O.id.startsWith(`preview-`),j=`${w()}?${ne()?.toString()||``}`,M=v(j),N=C(`components.biz.business.detail`),[P,F]=y(!1),[I,L]=y(!1),R=v(0),z=e(e=>e.userId),B=e(e=>e.isLogin),V=a();g(()=>{M.current!==j&&(l.clear(),M.current=j)},[j]),g(()=>()=>{l.clear()},[]);let H=h(()=>{z&&(V([`user-profile`,`mine`,z,`user-like-video`]),V([`user-profile`,`mine`,z,`user-like-post`]),V([`user-profile`,`mine`,z,`user-collect-video`,z]),V([`user-profile`,`mine`,z,`user-collect-post`,z]))},[V,z]),{likeAnimation:U,handleLikeOperate:W,handleDefaultCollectionOperate:G,handleShareOperate:K}=u({id:O.id,isLike:O.like||!1,isDislike:O.dislike||!1,isCollect:O.collect||!1,likeCnt:D(O.static?.like_cnt),dislikeCnt:D(O.static?.dislike_cnt),contentType:O.content_type,prefetchDefaultCollection:!A,animationClasses:{like:s.likeShakeAnimation,dislike:s.dislikeShakeAnimation}}),q=h(e=>{k?.({...e})},[k]),J=h(async()=>{if(P)return;if(!B){i.getState().open();return}let e=Date.now();if(e-R.current<300)return;R.current=e,F(!0);let t=O.like||!1,n=O.dislike||!1,r=D(O.static?.like_cnt),a=D(O.static?.dislike_cnt),o=!t,s=Math.max(0,r+(o?1:-1)),c=o?!1:n,l=o&&n?Math.max(0,a-1):a;q({like:o,dislike:c,static:{...O.static,like_cnt:s,dislike_cnt:l}});try{let e=await W();if(!e){q({like:t,dislike:n,static:{...O.static,like_cnt:r,dislike_cnt:a}});return}q({like:e.isLike,dislike:e.isDislike??c,static:{...O.static,like_cnt:e.likeCnt,dislike_cnt:e.dislikeCnt??l}}),H(),window.sensors?.track?.(`detail_like_click`,{object_id:O.id,action:e.isLike?`点赞`:`取消点赞`,like_count:e.likeCnt})}catch(e){console.error(`点赞操作失败:`,e),S.error(N(`detailOperate.operateFailed`))}finally{F(!1)}},[W,O,H,P,B,N,q]),Y=_(()=>O.id,[O.id]),X=h(()=>{K(({isCollect:e})=>{q({collect:e})},Y)},[K,Y,q]),Z=h(()=>{c.show({mode:`select`,onCollect:async e=>{try{let n=await t({new_collection_id:e,content_id:O.id});if(n.code!==0)throw Error(n.message||N(`detailOperate.collectFailed`));q({collect:!0}),H(),S.success(N(`detailOperate.modifyCollectionSuccess`))}catch(e){console.error(`修改收藏夹失败:`,e),S.error(N(`detailOperate.collectFailed`))}}})},[O.id,H,N,q]),Q=h(e=>{let t=e||N(`detailOperate.defaultCollection`);S.custom(e=>x(`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:[x(`div`,{className:`flex items-center gap-[10px]`,children:[b(`div`,{className:`w-[24px] h-[24px] rounded-full bg-white flex items-center justify-center`,children:b(d,{className:`w-[14px] h-[14px]`})}),x(`div`,{className:`flex items-center gap-[6px]`,children:[b(`span`,{className:`text-[14px] leading-[20px]`,children:N(`detailOperate.collectAdded`)}),b(`span`,{className:`text-[14px] leading-[20px] font-semibold`,children:t})]})]}),b(`button`,{type:`button`,className:`text-[14px] text-theme5 font-semibold`,onClick:()=>{S.dismiss(e),Z()},children:N(`detailOperate.modifyCollection`)})]}))},[Z,N]),$=h(async()=>{if(I)return;if(!B){i.getState().open();return}let e=O.collect||!1;L(!0),window.sensors?.track?.(`detail_fav_click`,{object_id:O.id,action:e?`取消收藏`:`收藏`});try{let t=await G({currentCollect:e,onUpdate:({isCollect:e})=>{q({collect:e})}});if(!t?.success){S.error(t?.message||N(`detailOperate.collectFailed`));return}H(),window.sensors?.track?.(`detail_fav_click`,{object_id:O.id,action:t.isCollect?`收藏`:`取消收藏`}),!e&&t.isCollect&&Q(t.collectionTitle),e&&t.isCollect===!1&&S.success(N(`detailOperate.uncollectSuccess`))}catch(e){console.error(`收藏操作失败:`,e),S.error(e?.message||N(`detailOperate.collectFailed`))}finally{L(!1)}},[G,O.collect,O.id,H,I,B,Q,N,q]),re=_(()=>o($,300),[$]);return x(n,{className:`w-full h-[42px] mt-[16px] flex items-center justify-between ${A?`pointer-events-none`:``}`,children:[x(n,{className:`w-[25%] h-full flex flex-col items-center justify-center ${P?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:J,children:[O.like?b(m,{className:`w-[20px] h-[20px] ${U.animationClass}`}):b(ee,{className:`w-[20px] h-[20px] text-text2`}),b(r,{className:`text-[12px] text-text2 leading-[20px]`,children:O.static?O.static.like_cnt===0?N(`detailOperate.like`):E(O.static?.like_cnt):N(`detailOperate.like`)})]}),x(n,{className:`w-[25%] h-full flex flex-col items-center justify-center ${I?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:re,children:[O.collect?b(p,{className:`w-[20px] h-[20px]`}):b(f,{className:`w-[20px] h-[20px] text-text2`}),b(r,{className:`text-[12px] text-text2 leading-[20px]`,children:N(`detailOperate.collection`)})]}),x(n,{className:`w-[25%] h-full flex flex-col items-center justify-center cursor-pointer`,onClick:X,children:[b(te,{className:`w-[20px] h-[20px] text-text2`}),b(r,{className:`text-[12px] text-text2 leading-[20px]`,children:N(`detailOperate.share`)})]})]})}function E(e){let t=Number(e||0);return Number.isNaN(t)||t<=0?`0`:t>=1e4?`${(t/1e4).toFixed(1)}w`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function D(e){if(e==null)return 0;if(typeof e==`number`)return e;let t=Number(e);return Number.isNaN(t)?0:t}export{T as DetailOperate};
@@ -8,9 +8,6 @@ import "../video-detail-player/index.mjs";
8
8
  import { VideoDetailInfoClient } from "../video-detail-info/client.mjs";
9
9
  import { VideoDetailInfo } from "../video-detail-info/server.mjs";
10
10
  import "../video-detail-info/index.mjs";
11
- import { VideoDetailInfoTitleClient } from "../video-detail-info-title/client.mjs";
12
- import { VideoDetailInfoTitle } from "../video-detail-info-title/server.mjs";
13
- import "../video-detail-info-title/index.mjs";
14
11
  import { VideoDetailInfoTitleTagsEpisodesClient } from "../video-detail-info-title-tags-episodes/client.mjs";
15
12
  import { VideoDetailInfoTitleTagsEpisodes } from "../video-detail-info-title-tags-episodes/server.mjs";
16
13
  import "../video-detail-info-title-tags-episodes/index.mjs";
@@ -36,12 +33,7 @@ declare const videoDetailMaterials: MaterialMap<readonly [DefineMaterialOption<t
36
33
  renderer: "renderer";
37
34
  editor: "editor";
38
35
  }>>;
39
- }, z$1.core.$strip>, "video-detail-info", "内容组件">, DefineMaterialOption<typeof VideoDetailInfoTitle, typeof VideoDetailInfoTitleClient, z$1.ZodObject<{
40
- mode: z$1.ZodOptional<z$1.ZodEnum<{
41
- renderer: "renderer";
42
- editor: "editor";
43
- }>>;
44
- }, z$1.core.$strip>, "video-detail-info-title", "内容组件">, DefineMaterialOption<typeof VideoDetailInfoTitleTagsEpisodes, typeof VideoDetailInfoTitleTagsEpisodesClient, z$1.ZodObject<{
36
+ }, z$1.core.$strip>, "video-detail-info", "内容组件">, DefineMaterialOption<typeof VideoDetailInfoTitleTagsEpisodes, typeof VideoDetailInfoTitleTagsEpisodesClient, z$1.ZodObject<{
45
37
  showTags: z$1.ZodBoolean & SchemaHasDefaultValue;
46
38
  showEpisodes: z$1.ZodBoolean & SchemaHasDefaultValue;
47
39
  mode: z$1.ZodOptional<z$1.ZodEnum<{
@@ -66,13 +58,13 @@ declare const videoDetailMaterials: MaterialMap<readonly [DefineMaterialOption<t
66
58
  items: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
67
59
  contentId: z$1.ZodString;
68
60
  coverMode: z$1.ZodOptional<z$1.ZodEnum<{
69
- content: "content";
70
61
  upload: "upload";
62
+ content: "content";
71
63
  }>>;
72
64
  coverUrl: z$1.ZodOptional<z$1.ZodString>;
73
65
  titleMode: z$1.ZodOptional<z$1.ZodEnum<{
74
- content: "content";
75
66
  custom: "custom";
67
+ content: "content";
76
68
  }>>;
77
69
  title: z$1.ZodOptional<z$1.ZodString>;
78
70
  description: z$1.ZodOptional<z$1.ZodString>;
@@ -1,2 +1,2 @@
1
1
 
2
- import{getSchemaDefaultProps as e}from"../../../../../utils/schema/schema.mjs";import{generateMaterialMap as t}from"../../../../../utils/schema/utils.mjs";import{videoDetailInfoMaterial as n}from"../video-detail-info/material.mjs";import{videoDetailInfoTitleMaterial as r}from"../video-detail-info-title/material.mjs";import{videoDetailInfoTitleTagsEpisodesMaterial as i}from"../video-detail-info-title-tags-episodes/material.mjs";import{videoDetailPlayerMaterial as a}from"../video-detail-player/material.mjs";import{videoDetailRecommendMaterial as o}from"../video-detail-recommend/material.mjs";import{videoDetailActionsMaterial as s}from"../video-detail-actions/material.mjs";function c(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>typeof t==`number`&&Number.isFinite(t)?[e,String(t)]:[e,t]))}function l(t,n){let r={...e(t.propsSchema),...n??{}},i=t.propsSchema.safeParse(r);if(i.success)return{isValid:!0,props:i.data};let a=c(r),o=t.propsSchema.safeParse(a);return o.success?{isValid:!0,props:o.data}:{isValid:!1,props:r}}const u=t([a,n,r,i,s,o]);export{l as resolveMaterialProps,u as videoDetailMaterials};
2
+ import{getSchemaDefaultProps as e}from"../../../../../utils/schema/schema.mjs";import{generateMaterialMap as t}from"../../../../../utils/schema/utils.mjs";import{videoDetailInfoMaterial as n}from"../video-detail-info/material.mjs";import{videoDetailInfoTitleTagsEpisodesMaterial as r}from"../video-detail-info-title-tags-episodes/material.mjs";import{videoDetailPlayerMaterial as i}from"../video-detail-player/material.mjs";import{videoDetailRecommendMaterial as a}from"../video-detail-recommend/material.mjs";import{videoDetailActionsMaterial as o}from"../video-detail-actions/material.mjs";function s(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>typeof t==`number`&&Number.isFinite(t)?[e,String(t)]:[e,t]))}function c(t,n){let r={...e(t.propsSchema),...n??{}},i=t.propsSchema.safeParse(r);if(i.success)return{isValid:!0,props:i.data};let a=s(r),o=t.propsSchema.safeParse(a);return o.success?{isValid:!0,props:o.data}:{isValid:!1,props:r}}const l=t([i,n,r,o,a]);export{c as resolveMaterialProps,l as videoDetailMaterials};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{gContentGetGuessYouLikeVideos as e,pContentBatchGetVideoDetail as t}from"../../../../../service/generated/client.mjs";import{Box as n}from"../../../../ui/box.mjs";import{Text as r}from"../../../../ui/text.mjs";import{useRequest as i}from"../../../../../hooks/query/use-query.mjs";import{useKeepAliveState as a}from"../../../../common/keep-scroll-position/index.mjs";import o from"../../../../../assets/icons/detail/video_flag.mjs";import{MiniThreeCard as s}from"../../../../common/cards/mini-three-card.mjs";import{useCardDecoration as c}from"../../../../../hooks/use-card-decoration.mjs";import{buildEditorPreviewRecommendList as l}from"../shared/editor-preview.mjs";import{useVideoDetailMaterialRuntimeContext as u}from"../shared/runtime-context-provider.mjs";import{applyPlayCountDelta as ee,clampColumns as d,mergeManualAndPool as f,normalizeRecommendRuntimeProps as p,resolveRows as m}from"./utils.mjs";import{useCallback as te,useEffect as h,useMemo as g,useRef as ne,useState as re}from"react";import{jsx as _,jsxs as ie}from"react/jsx-runtime";function ae({rows:ae,columns:oe,smartTagEnabled:y,smartTagIds:b,title:fe,showPlayCount:pe,playCountDelta:me,showEpisode:he,enableInfinite:S,items:C,mode:ge=`renderer`}){let w=u()?.detailId||``,T=ge===`editor`,E=T,{getVerticalHoCoverImageUrl:D,getTitleText:O}=c(),k=ne(null),A=g(()=>p({smartTagEnabled:y,smartTagIds:b,enableInfinite:S,items:C}),[S,C,y,b]),j=A.smartTagEnabled,M=A.smartTagIds,N=g(()=>A.items??[],[A.items]),P=A.enableInfinite&&!T,F=!j,I=P&&j&&!E,_e=m(ae,P),L=d(oe),R=_e*L,z=Math.max(1,R),B=g(()=>[`video-detail-recommend`,w||`unknown`,z,M.join(`,`)].join(`:`),[w,z,M]),[ve,V]=a(`${B}:pool`,[]),[H,U]=a(`${B}:has-more`,!1),[W,G]=re(!1),K=g(()=>l(R),[R]),{data:q}=i([`video-detail-recommend`,w,I?`paged`:`all`,z,M.join(`,`)],async()=>E?null:await e({page_size:z,tags:M}),{enabled:!E}),J=g(()=>E?K:se(q?.data?.videos),[q?.data?.videos,K,E]);h(()=>{if(!I){G(!1);return}V(e=>{if(!J.length)return e;if(!e.length)return J;let t=[...J],n=new Set(J.map(e=>e.id).filter(Boolean));return e.forEach(e=>{(!e.id||!n.has(e.id))&&(t.push(e),e.id&&n.add(e.id))}),t});let e=v(q?.data?.videos,z);U(t=>t||e),G(!1)},[q?.data?.videos,J,z,U,V,I]);let Y=I?ve:J,X=g(()=>F?Array.from(new Set(N.filter(e=>e.coverMode===`content`).map(e=>x(e.contentId)).filter(Boolean))):[],[N,F]),{data:ye}=i([`video-detail-recommend-manual-details`,X.join(`,`)],async()=>{if(!X.length)return[];let e=await t({ids:X});return(Array.isArray(e.data?.videos)?e.data.videos:[]).map(e=>ce(e))},{enabled:X.length>0}),be=g(()=>F?new Set(N.map(e=>x(e.contentId)).filter(Boolean)):new Set,[N,F]),xe=g(()=>E?Y:Y.filter(e=>!be.has(e.id)),[Y,E,be]),Z=g(()=>{if(!F||!N.length)return[];let e=new Map;return Y.forEach(t=>{let n=x(t.id);n&&e.set(n,t)}),(ye||[]).forEach(t=>{let n=x(t.id);n&&e.set(n,t)}),N.map((t,n)=>{let r=K[n%Math.max(1,K.length)],i=x(t.contentId),a=typeof t.coverUrl==`string`?t.coverUrl.trim():``,o=e.get(i)??{...r,id:i||r.id||`preview-manual-${n+1}`,name:r.name||`猜你喜欢 ${n+1}`,img_y:a||r.img_y,img_x:a||r.img_x},s=t.titleMode===`custom`?t.title:O(o),c=t.coverMode===`content`?D(o)||a:a||D(o);return{info:{...o,name:s||o.name,img_y:c||o.img_y,img_x:c||o.img_x},config:{showPlayCount:t.showPlayCount,playCountDelta:t.playCountDelta,showEpisode:t.showEpisode}}}).filter(Boolean)},[K,Y,O,D,ye,N,F]),Q=g(()=>xe.map(e=>({info:e})),[xe]),Se=F&&N.length>0,Ce=g(()=>Se?Z:f(Z,Q,R),[Se,Z,R,Q]),$=g(()=>{if(I){if(!Z.length)return Q;let e=new Set(Z.map(e=>e.info.id).filter(Boolean));return Z.concat(Q.filter(t=>!e.has(t.info.id)))}if(P){if(!Z.length)return Q;let e=new Set(Z.map(e=>e.info.id).filter(Boolean));return Z.concat(Q.filter(t=>!e.has(t.info.id)))}return Ce},[Ce,Z,Q,P,I]),we=H&&$.length>0?Math.max(0,$.length-4):-1,Te=String(fe||``).trim(),Ee=te(async()=>{if(!(!I||!H||W)){G(!0);try{let t=await e({page_size:z,tags:M}),n=Array.isArray(t.data?.videos)?t.data.videos:[],r=se(n),i=0;V(e=>{let t=new Set(e.map(e=>e.id).filter(Boolean)),n=[...e];return r.forEach(e=>{(!e.id||!t.has(e.id))&&(n.push(e),e.id&&t.add(e.id))}),i=n.length-e.length,n}),U(v(n,z)&&i>0)}catch(e){console.error(`猜你喜欢分页加载失败`,e),U(!1)}finally{G(!1)}}},[H,W,z,M,U,V,I]);return h(()=>{if(!I)return;let e=k.current;if(!e||!H)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&!W&&Ee()});return t.observe(e),()=>{t.disconnect()}},[Ee,H,W,I,we]),$.length?ie(n,{className:`w-full mt-[16px] ${E?`pointer-events-none`:``}`,children:[Te?_(r,{className:`block pl-[12px] mb-[8px] text-text1 text-[18px] leading-[26px] font-bold`,children:Te}):null,_(n,{className:`w-full flex flex-wrap px-[12px]`,children:$.map((e,t)=>{let n=O(e.info),i=pe!==!1&&(e.config?.showPlayCount??!0),a=Number(e.config?.playCountDelta??me??0),c=e.config?.showEpisode??he,l=ue(ee(e.info.play_count||0,a)),u=le(e.info),d=Number.isFinite(L)&&L>0?L:3,f=`${100/d}%`,p=t%d,m=d>1?{paddingLeft:8*p/d,paddingRight:8*(d-p-1)/d}:null;return _(`div`,{ref:t===we?k:void 0,style:{width:f,...m||{}},children:_(s,{url:D(e.info),text:n,textChild:_(r,{as:`h3`,className:`text-text1 text-[16px] h-[24px] leading-[24px] mt-[4px] line-clamp-1`,children:n}),style:{width:`100%`},bottomLeftChild:i?ie(`div`,{className:`h-[20px] leading-[20px] text-[#fff] text-[12px] px-[4px] rounded-[4px] bg-[#333] ml-[4px] flex items-center`,children:[_(o,{className:`w-[16px] h-[auto] text-[#fff] mr-[4px]`}),l]}):null,bottomRightChild:c&&u?_(`div`,{className:`text-[#fff] text-[12px] leading-[20px] pr-2`,children:u}):null,linkPath:E?``:de(e.info)})},`guess-like-${t}`)})})]}):null}function oe(e){return{id:e.video_id||``,mid:``,name:e.name||``,cat_id:``,cat_name:``,status:`1`,status_text:``,create_time:``,content_type:0,episode_cnt:e.episode_count||0,show_at:e.show_at??``,position:``,img_type:e.img_type??``,img_x:e.img_x??``,img_y:e.img_y??``,img_width:``,img_height:``,play_count:e.play_count,preview_images:[],duration:String(e.duration??``),score:String(e.score??``),is_more_link:e.is_more_link?`y`:`n`,update_status:String(e.update_status??``),description:e.description??``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:[],source_tags:e.source_tags??``,source_actor:[],links:Array.isArray(e.episodes)?e.episodes.map(e=>({id:e.id??``,name:e.name??``,preview_m3u8_url:e.preview_m3u8_url??``,m3u8_url:e.m3u8_url??``})):[],money:``,up_user:``,source_username:``,task_id:``,file_status:``}}function se(e){return Array.isArray(e)?e.map(e=>oe(e)):[]}function ce(e){let t=String(e?.id||e?.mid||e?.video_id||``),n=Number(e?.content_type||0)===2||e?.is_more_link===`y`||e?.is_more_link===`1`||e?.is_more_link===!0,r=Array.isArray(e?.links)?e.links.map(e=>({id:String(e?.id||``),name:String(e?.name||``),preview_m3u8_url:String(e?.preview_m3u8_url||``),m3u8_url:String(e?.m3u8_url||``)})):[],i=Array.isArray(e?.video_episodes)?e.video_episodes.length:0,a=Number(e?.episode_cnt||i||r.length||0);return{id:t,mid:String(e?.mid||t),name:String(e?.name||``),cat_id:String(e?.cat_id||``),cat_name:String(e?.cat_name||``),status:String(e?.status||`1`),status_text:String(e?.status_text||``),create_time:String(e?.create_time||``),content_type:0,type:n?2:1,episode_cnt:Number.isFinite(a)?a:0,show_at:String(e?.show_at||``),position:String(e?.position||``),img_type:String(e?.img_type||``),img_x:String(e?.img_x||``),img_y:String(e?.img_y||``),img_width:String(e?.img_width||``),img_height:String(e?.img_height||``),play_count:Number(e?.play_count??e?.browse_count??0),preview_images:Array.isArray(e?.preview_images)?e.preview_images:[],duration:String(e?.duration||``),score:String(e?.score||``),is_more_link:n?`y`:`n`,update_status:String(e?.update_status||``),description:String(e?.description||``),language:String(e?.language||``),director:String(e?.director||``),actor:String(e?.actor||``),area:String(e?.area||``),issue_date:String(e?.issue_date||``),publisher:String(e?.publisher||``),series:String(e?.series||``),number:String(e?.number||``),tags:Array.isArray(e?.tags)?e.tags:[],source_tags:String(e?.source_tags||``),source_actor:Array.isArray(e?.source_actor)?e.source_actor:[],links:r,money:String(e?.money||``),up_user:String(e?.up_user||``),source_username:String(e?.source_username||``),task_id:String(e?.task_id||``),file_status:String(e?.file_status||``)}}function v(e,t){if(!Array.isArray(e)||e.length===0)return!1;let n=e[0];if(typeof n?.has_more==`boolean`)return n.has_more;let r=Number(n?.total??0);return Number.isFinite(r)&&r>0?r>t:e.length>=t}function le(e){if(y(e)){let t=Number(e.episode_cnt||e.links?.length||0);return t>0?`全${t}集`:``}return b(Number(e.duration||0))}function y(e){if(Number(e.type??e.content_type??0)===2)return!0;let t=e.is_more_link;if(t===!0||t===`y`||t===`1`)return!0;let n=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(n)&&n>1}function b(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 ue(e){let t=Number(e||`0`);return Number.isNaN(t)||t<=0?`0`:t>=1e4?`${(t/1e4).toFixed(1)}w`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function de(e){if(e.content_type===0){let t=encodeURIComponent(e.name||``);return`/video/${e.id}/${t}/episode/1`}return`/post/${e.id}`}function x(e){return typeof e==`string`?e.trim():``}export{ae as VideoDetailRecommendClient};
2
+ "use client";import{gContentGetGuessYouLikeVideos as e,pContentBatchGetVideoDetail as t}from"../../../../../service/generated/client.mjs";import{Box as n}from"../../../../ui/box.mjs";import{Text as r}from"../../../../ui/text.mjs";import{useRequest as i}from"../../../../../hooks/query/use-query.mjs";import{useKeepAliveState as a}from"../../../../common/keep-scroll-position/index.mjs";import o from"../../../../../assets/icons/detail/video_flag.mjs";import{MiniThreeCard as s}from"../../../../common/cards/mini-three-card.mjs";import{useCardDecoration as c}from"../../../../../hooks/use-card-decoration.mjs";import{buildEditorPreviewRecommendList as l}from"../shared/editor-preview.mjs";import{useVideoDetailMaterialRuntimeContext as u}from"../shared/runtime-context-provider.mjs";import{applyPlayCountDelta as ee,clampColumns as d,mergeManualAndPool as f,normalizeRecommendRuntimeProps as p,resolveRows as m}from"./utils.mjs";import{useCallback as te,useEffect as h,useMemo as g,useRef as ne,useState as re}from"react";import{jsx as _,jsxs as ie}from"react/jsx-runtime";function v({rows:v,columns:ae,smartTagEnabled:y,smartTagIds:b,title:pe,showPlayCount:me,playCountDelta:he,showEpisode:ge,enableInfinite:S,items:C,mode:_e=`renderer`}){let w=u()?.detailId||``,ve=_e===`editor`,T=ve,{getVerticalHoCoverImageUrl:E,getTitleText:D}=c(),O=ne(null),k=g(()=>p({smartTagEnabled:y,smartTagIds:b,enableInfinite:S,items:C}),[S,C,y,b]),A=k.smartTagEnabled,j=k.smartTagIds,M=g(()=>k.items??[],[k.items]),N=k.enableInfinite&&!ve,P=!A,F=N&&A&&!T,ye=m(v,N),I=d(ae),L=ye*I,R=Math.max(1,L),z=g(()=>[`video-detail-recommend`,w||`unknown`,R,j.join(`,`)].join(`:`),[w,R,j]),[be,B]=a(`${z}:pool`,[]),[V,H]=a(`${z}:has-more`,!1),[U,W]=re(!1),G=g(()=>l(L),[L]),{data:K}=i([`video-detail-recommend`,w,F?`paged`:`all`,R,j.join(`,`)],async()=>T?null:await e({page_size:R,tags:j}),{enabled:!T&&A}),q=g(()=>T?G:oe(K?.data?.videos),[K?.data?.videos,G,T]);h(()=>{if(!F){W(!1);return}B(e=>{if(!q.length)return e;if(!e.length)return q;let t=[...q],n=new Set(q.map(e=>e.id).filter(Boolean));return e.forEach(e=>{(!e.id||!n.has(e.id))&&(t.push(e),e.id&&n.add(e.id))}),t});let e=ce(K?.data?.videos,R);H(t=>t||e),W(!1)},[K?.data?.videos,q,R,H,B,F]);let J=F?be:q,Y=g(()=>P?Array.from(new Set(M.filter(e=>e.coverMode===`content`).map(e=>x(e.contentId)).filter(Boolean))):[],[M,P]),{data:xe}=i([`video-detail-recommend-manual-details`,Y.join(`,`)],async()=>{if(!Y.length)return[];let e=await t({ids:Y});return(Array.isArray(e.data?.videos)?e.data.videos:[]).map(e=>se(e))},{enabled:Y.length>0}),Se=g(()=>P?new Set(M.map(e=>x(e.contentId)).filter(Boolean)):new Set,[M,P]),Ce=g(()=>T?J:J.filter(e=>!Se.has(e.id)),[J,T,Se]),X=g(()=>{if(!P||!M.length)return[];let e=new Map;return J.forEach(t=>{let n=x(t.id);n&&e.set(n,t)}),(xe||[]).forEach(t=>{let n=x(t.id);n&&e.set(n,t)}),M.map((t,n)=>{let r=T?G[n%Math.max(1,G.length)]:fe(t,n),i=x(t.contentId),a=typeof t.coverUrl==`string`?t.coverUrl.trim():``,o=e.get(i)??{...r,id:i||r.id||`preview-manual-${n+1}`,name:r.name||`猜你喜欢 ${n+1}`,img_y:a||r.img_y,img_x:a||r.img_x},s=t.titleMode===`custom`?t.title:D(o),c=t.coverMode===`content`?E(o)||a:a||E(o);return{info:{...o,name:s||o.name,img_y:c||o.img_y,img_x:c||o.img_x},config:{showPlayCount:t.showPlayCount,playCountDelta:t.playCountDelta,showEpisode:t.showEpisode}}}).filter(Boolean)},[G,J,D,E,xe,M,P]),Z=g(()=>Ce.map(e=>({info:e})),[Ce]),we=P&&M.length>0,Te=g(()=>we?X:f(X,Z,L),[we,X,L,Z]),Q=g(()=>{if(F){if(!X.length)return Z;let e=new Set(X.map(e=>e.info.id).filter(Boolean));return X.concat(Z.filter(t=>!e.has(t.info.id)))}if(N){if(!X.length)return Z;let e=new Set(X.map(e=>e.info.id).filter(Boolean));return X.concat(Z.filter(t=>!e.has(t.info.id)))}return Te},[Te,X,Z,N,F]),Ee=V&&Q.length>0?Math.max(0,Q.length-4):-1,De=String(pe||``).trim(),$=te(async()=>{if(!(!F||!V||U)){W(!0);try{let t=await e({page_size:R,tags:j}),n=Array.isArray(t.data?.videos)?t.data.videos:[],r=oe(n),i=0;B(e=>{let t=new Set(e.map(e=>e.id).filter(Boolean)),n=[...e];return r.forEach(e=>{(!e.id||!t.has(e.id))&&(n.push(e),e.id&&t.add(e.id))}),i=n.length-e.length,n}),H(ce(n,R)&&i>0)}catch(e){console.error(`猜你喜欢分页加载失败`,e),H(!1)}finally{W(!1)}}},[V,U,R,j,H,B,F]);return h(()=>{if(!F)return;let e=O.current;if(!e||!V)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&!U&&$()});return t.observe(e),()=>{t.disconnect()}},[$,V,U,F,Ee]),Q.length?ie(n,{className:`w-full mt-[16px] ${T?`pointer-events-none`:``}`,children:[De?_(r,{className:`block pl-[12px] mb-[8px] text-text1 text-[18px] leading-[26px] font-bold`,children:De}):null,_(n,{className:`w-full flex flex-wrap px-[12px]`,children:Q.map((e,t)=>{let n=D(e.info),i=me!==!1&&(e.config?.showPlayCount??!0),a=Number(e.config?.playCountDelta??he??0),c=e.config?.showEpisode??ge,l=ue(ee(e.info.play_count||0,a)),u=le(e.info),d=Number.isFinite(I)&&I>0?I:3,f=`${100/d}%`,p=t%d,m=d>1?{paddingLeft:8*p/d,paddingRight:8*(d-p-1)/d}:null;return _(`div`,{ref:t===Ee?O:void 0,style:{width:f,...m||{}},children:_(s,{url:E(e.info),text:n,textChild:_(r,{as:`h3`,className:`text-text1 text-[16px] h-[24px] leading-[24px] mt-[4px] line-clamp-1`,children:n}),style:{width:`100%`},bottomLeftChild:i?ie(`div`,{className:`h-[20px] leading-[20px] text-[#fff] text-[12px] px-[4px] rounded-[4px] bg-[#333] ml-[4px] flex items-center`,children:[_(o,{className:`w-[16px] h-[auto] text-[#fff] mr-[4px]`}),l]}):null,bottomRightChild:c&&u?_(`div`,{className:`text-[#fff] text-[12px] leading-[20px] pr-2`,children:u}):null,linkPath:T?``:de(e.info)})},`guess-like-${t}`)})})]}):null}function ae(e){return{id:e.video_id||``,mid:``,name:e.name||``,cat_id:``,cat_name:``,status:`1`,status_text:``,create_time:``,content_type:0,episode_cnt:e.episode_count||0,show_at:e.show_at??``,position:``,img_type:e.img_type??``,img_x:e.img_x??``,img_y:e.img_y??``,img_width:``,img_height:``,play_count:e.play_count,preview_images:[],duration:String(e.duration??``),score:String(e.score??``),is_more_link:e.is_more_link?`y`:`n`,update_status:String(e.update_status??``),description:e.description??``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:[],source_tags:e.source_tags??``,source_actor:[],links:Array.isArray(e.episodes)?e.episodes.map(e=>({id:e.id??``,name:e.name??``,preview_m3u8_url:e.preview_m3u8_url??``,m3u8_url:e.m3u8_url??``})):[],money:``,up_user:``,source_username:``,task_id:``,file_status:``}}function oe(e){return Array.isArray(e)?e.map(e=>ae(e)):[]}function se(e){let t=String(e?.id||e?.mid||e?.video_id||``),n=Number(e?.content_type||0)===2||e?.is_more_link===`y`||e?.is_more_link===`1`||e?.is_more_link===!0,r=Array.isArray(e?.links)?e.links.map(e=>({id:String(e?.id||``),name:String(e?.name||``),preview_m3u8_url:String(e?.preview_m3u8_url||``),m3u8_url:String(e?.m3u8_url||``)})):[],i=Array.isArray(e?.video_episodes)?e.video_episodes.length:0,a=Number(e?.episode_cnt||i||r.length||0);return{id:t,mid:String(e?.mid||t),name:String(e?.name||``),cat_id:String(e?.cat_id||``),cat_name:String(e?.cat_name||``),status:String(e?.status||`1`),status_text:String(e?.status_text||``),create_time:String(e?.create_time||``),content_type:0,type:n?2:1,episode_cnt:Number.isFinite(a)?a:0,show_at:String(e?.show_at||``),position:String(e?.position||``),img_type:String(e?.img_type||``),img_x:String(e?.img_x||``),img_y:String(e?.img_y||``),img_width:String(e?.img_width||``),img_height:String(e?.img_height||``),play_count:Number(e?.play_count??e?.browse_count??0),preview_images:Array.isArray(e?.preview_images)?e.preview_images:[],duration:String(e?.duration||``),score:String(e?.score||``),is_more_link:n?`y`:`n`,update_status:String(e?.update_status||``),description:String(e?.description||``),language:String(e?.language||``),director:String(e?.director||``),actor:String(e?.actor||``),area:String(e?.area||``),issue_date:String(e?.issue_date||``),publisher:String(e?.publisher||``),series:String(e?.series||``),number:String(e?.number||``),tags:Array.isArray(e?.tags)?e.tags:[],source_tags:String(e?.source_tags||``),source_actor:Array.isArray(e?.source_actor)?e.source_actor:[],links:r,money:String(e?.money||``),up_user:String(e?.up_user||``),source_username:String(e?.source_username||``),task_id:String(e?.task_id||``),file_status:String(e?.file_status||``)}}function ce(e,t){if(!Array.isArray(e)||e.length===0)return!1;let n=e[0];if(typeof n?.has_more==`boolean`)return n.has_more;let r=Number(n?.total??0);return Number.isFinite(r)&&r>0?r>t:e.length>=t}function le(e){if(y(e)){let t=Number(e.episode_cnt||e.links?.length||0);return t>0?`全${t}集`:``}return b(Number(e.duration||0))}function y(e){if(Number(e.type??e.content_type??0)===2)return!0;let t=e.is_more_link;if(t===!0||t===`y`||t===`1`)return!0;let n=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(n)&&n>1}function b(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 ue(e){let t=Number(e||`0`);return Number.isNaN(t)||t<=0?`0`:t>=1e4?`${(t/1e4).toFixed(1)}w`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function de(e){if(e.content_type===0){let t=encodeURIComponent(e.name||``);return`/video/${e.id}/${t}/episode/1`}return`/post/${e.id}`}function x(e){return typeof e==`string`?e.trim():``}function fe(e,t){let n=x(e.contentId)||`manual-${t+1}`,r=typeof e.coverUrl==`string`?e.coverUrl.trim():``,i=typeof e.title==`string`?e.title.trim():``,a=typeof e.description==`string`?e.description.trim():``;return{id:n,mid:n,name:i||`猜你喜欢 ${t+1}`,cat_id:``,cat_name:``,status:`1`,status_text:``,create_time:``,content_type:0,type:1,episode_cnt:0,show_at:``,position:``,img_type:``,img_x:r,img_y:r,img_width:``,img_height:``,play_count:0,preview_images:[],duration:``,score:``,is_more_link:`n`,update_status:``,description:a,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:[],source_tags:``,source_actor:[],links:[],money:``,up_user:``,source_username:``,task_id:``,file_status:``}}export{v as VideoDetailRecommendClient};
@@ -21,13 +21,13 @@ declare const videoDetailRecommendMaterial: DefineMaterialOption<typeof VideoDet
21
21
  items: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
22
22
  contentId: zod.ZodString;
23
23
  coverMode: zod.ZodOptional<zod.ZodEnum<{
24
- content: "content";
25
24
  upload: "upload";
25
+ content: "content";
26
26
  }>>;
27
27
  coverUrl: zod.ZodOptional<zod.ZodString>;
28
28
  titleMode: zod.ZodOptional<zod.ZodEnum<{
29
- content: "content";
30
29
  custom: "custom";
30
+ content: "content";
31
31
  }>>;
32
32
  title: zod.ZodOptional<zod.ZodString>;
33
33
  description: zod.ZodOptional<zod.ZodString>;
@@ -17,13 +17,13 @@ declare const videoDetailRecommendInspectorPropsSchema: z$1.ZodObject<{
17
17
  items: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
18
18
  contentId: z$1.ZodString;
19
19
  coverMode: z$1.ZodOptional<z$1.ZodEnum<{
20
- content: "content";
21
20
  upload: "upload";
21
+ content: "content";
22
22
  }>>;
23
23
  coverUrl: z$1.ZodOptional<z$1.ZodString>;
24
24
  titleMode: z$1.ZodOptional<z$1.ZodEnum<{
25
- content: "content";
26
25
  custom: "custom";
26
+ content: "content";
27
27
  }>>;
28
28
  title: z$1.ZodOptional<z$1.ZodString>;
29
29
  description: z$1.ZodOptional<z$1.ZodString>;
@@ -23,14 +23,14 @@ declare const homeRecommendGridInspectorPropsSchema: z$1.ZodObject<{
23
23
  items: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
24
24
  contentId: z$1.ZodString;
25
25
  coverMode: z$1.ZodOptional<z$1.ZodEnum<{
26
- content: "content";
27
26
  upload: "upload";
27
+ content: "content";
28
28
  }>>;
29
29
  coverUrl: z$1.ZodOptional<z$1.ZodString>;
30
30
  badge_url: z$1.ZodOptional<z$1.ZodString>;
31
31
  titleMode: z$1.ZodOptional<z$1.ZodEnum<{
32
- content: "content";
33
32
  custom: "custom";
33
+ content: "content";
34
34
  }>>;
35
35
  title: z$1.ZodOptional<z$1.ZodString>;
36
36
  description: z$1.ZodOptional<z$1.ZodString>;
@@ -23,14 +23,14 @@ declare const homeRecommendGridMaterial: DefineMaterialOption<typeof HomeRecomme
23
23
  items: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
24
24
  contentId: zod.ZodString;
25
25
  coverMode: zod.ZodOptional<zod.ZodEnum<{
26
- content: "content";
27
26
  upload: "upload";
27
+ content: "content";
28
28
  }>>;
29
29
  coverUrl: zod.ZodOptional<zod.ZodString>;
30
30
  badge_url: zod.ZodOptional<zod.ZodString>;
31
31
  titleMode: zod.ZodOptional<zod.ZodEnum<{
32
- content: "content";
33
32
  custom: "custom";
33
+ content: "content";
34
34
  }>>;
35
35
  title: zod.ZodOptional<zod.ZodString>;
36
36
  description: zod.ZodOptional<zod.ZodString>;
@@ -21,14 +21,14 @@ declare const homeRecommendWaterfallInspectorPropsSchema: z$1.ZodObject<{
21
21
  items: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
22
22
  contentId: z$1.ZodString;
23
23
  coverMode: z$1.ZodOptional<z$1.ZodEnum<{
24
- content: "content";
25
24
  upload: "upload";
25
+ content: "content";
26
26
  }>>;
27
27
  coverUrl: z$1.ZodOptional<z$1.ZodString>;
28
28
  badge_url: z$1.ZodOptional<z$1.ZodString>;
29
29
  titleMode: z$1.ZodOptional<z$1.ZodEnum<{
30
- content: "content";
31
30
  custom: "custom";
31
+ content: "content";
32
32
  }>>;
33
33
  title: z$1.ZodOptional<z$1.ZodString>;
34
34
  showPlayCount: z$1.ZodOptional<z$1.ZodBoolean>;
@@ -21,14 +21,14 @@ declare const homeRecommendWaterfallMaterial: DefineMaterialOption<typeof HomeRe
21
21
  items: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
22
22
  contentId: zod.ZodString;
23
23
  coverMode: zod.ZodOptional<zod.ZodEnum<{
24
- content: "content";
25
24
  upload: "upload";
25
+ content: "content";
26
26
  }>>;
27
27
  coverUrl: zod.ZodOptional<zod.ZodString>;
28
28
  badge_url: zod.ZodOptional<zod.ZodString>;
29
29
  titleMode: zod.ZodOptional<zod.ZodEnum<{
30
- content: "content";
31
30
  custom: "custom";
31
+ content: "content";
32
32
  }>>;
33
33
  title: zod.ZodOptional<zod.ZodString>;
34
34
  showPlayCount: zod.ZodOptional<zod.ZodBoolean>;
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{pContentGetPopularVideoList as e}from"../../../../../service/generated/client.mjs";import{Image as t}from"../../../../ui/image.mjs";import{Box as n}from"../../../../ui/box.mjs";import{Text as r}from"../../../../ui/text.mjs";import i from"../../../../../assets/icons/detail/video_flag.mjs";import{MiniThreeCard as a}from"../../../../common/cards/mini-three-card.mjs";import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as o,HOME_RECOMMEND_DEFAULT_GRID_ROWS as s,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as c,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as l,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as u,HOME_RECOMMEND_MAX_GRID_COLUMNS as ee,HOME_RECOMMEND_MAX_GRID_ROWS as te}from"./home-recommend-default-config.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as d}from"./home-recommend-preview.mjs";import{useCallback as f,useEffect as p,useLayoutEffect as m,useMemo as h,useRef as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{useRouter as ne}from"next/navigation";const re={},ie={list:[]};function b({variant:t,props:i=re,data:a=ie,mode:d=`renderer`}){let b=d===`editor`,S=ne(),{list:C,title:se,cursor:T}=a,E=h(()=>Array.isArray(C)?C:[],[C]),D=h(()=>Array.isArray(a.icons)?a.icons:[],[a.icons]),{rows:ce,columns:le,moreLink:O,title:k,smartTagIds:A,catId:j,showPlayCount:de,playCountDelta:fe,showEpisode:pe,enableInfinite:me}=i,P=me===!0,F=!b&&P&&E.length>=16,I=h(()=>Array.isArray(A)?A.map(e=>String(e||``).trim()).filter(Boolean):[],[A]),L=typeof j==`string`?j.trim():``,[R,he]=_(0),[z,ge]=_(E),[B,_e]=_(D),[V,H]=_(()=>M(T)),[ve,ye]=_(!1),be=g(null),U=g(null),W=g(!1);p(()=>{ge(E),_e(D),H(M(T))},[T,D,E]);let xe=oe(ce,s,te),G=oe(le,o,ee),K=P?16:t===`grid`?xe*G:16,Se=xe*G,Ce=b&&t===`grid`,q=Ce?z.slice(0,Se):z,J=Ce?B.slice(0,Se):B,we=t===`waterfall`?6:4,Y=q.length>0?Math.max(0,q.length-we):-1,Te=!!V,Ee=k&&k.trim()||se||``,X=de??u,Z=Number(fe??c),Q=pe??l,De=!P,$=De?ae(O):``,Oe=De&&!!$,ke=f(async()=>{let t=V;if(!(!F||!t||W.current)){W.current=!0,ye(!0);try{let n=await e({cursor:t,page_size:K,tags:I.length>0?I:void 0,cat_id:L||void 0}),r=Array.isArray(n.data?.videos)?n.data.videos:[],i=M(n.data?.cursor);r.length>0&&ge(e=>e.concat(r)),H(e=>{if(!(!r.length||!i))return i===e?void 0:i})}catch(e){console.error(`推荐位加载下一页失败(client)`,e),H(void 0)}finally{W.current=!1,ye(!1)}}},[V,L,K,I,F]),Ae=f(()=>{$&&($.startsWith(`http`)?window.location.href=$:S.push($))},[$,S]);p(()=>{let e=U.current;if(!e||!F||!Te)return;let t=document.getElementById(`app-scroll-container`)||null,n=new IntersectionObserver(e=>{!e[0]?.isIntersecting||ve||ke()},{root:t,threshold:0});return n.observe(e),()=>{n.disconnect()}},[ke,Te,ve,q.length,K,F,Y]),m(()=>{let e=be.current;if(!e||t!==`waterfall`)return;let n=()=>{let t=e.clientWidth||0;he(t>0?(t-12)/2:0)};n();let r=new ResizeObserver(n);return r.observe(e),()=>{r.disconnect()}},[t]);let je=h(()=>t===`waterfall`?ue(q,J,R):{left:[],right:[]},[R,J,q,t]);return q.length?y(n,{className:`w-full mt-[16px]`,children:[y(n,{className:`flex items-center justify-between px-[12px] mb-[8px]`,children:[v(r,{className:`flex-1 min-w-0 text-text1 text-[18px] leading-[26px] font-bold line-clamp-1`,children:Ee}),Oe&&v(r,{className:`text-text3 text-[12px] leading-[18px] cursor-pointer`,onClick:Ae,children:`更多`})]}),t===`grid`&&v(n,{className:`w-full flex flex-wrap px-[12px]`,children:q.map((e,n)=>{let r=J[n],i=w(e),a=X&&(i?.showPlayCount??!0),o=i?.playCountDelta??Z,s=i?.showEpisode??Q,c=n%G,l=G>1?{paddingLeft:12*c/G,paddingRight:12*(G-c-1)/G}:void 0;return v(`div`,{ref:n===Y?U:void 0,className:`min-w-0`,style:{width:`${100/G}%`,...l||{}},children:v(x,{variant:t,item:e,icon:r,index:n,showPlayCount:a,playCountDelta:o,showEpisode:s,widthStyle:{width:`100%`}})},N(e,n))})}),t===`waterfall`&&y(n,{ref:be,className:`w-full px-[12px] flex gap-[12px]`,children:[v(n,{className:`flex-1 min-w-0 flex flex-col`,children:je.left.map(e=>{let n=w(e.item),r=X&&(n?.showPlayCount??!0),i=n?.playCountDelta??Z,a=n?.showEpisode??Q;return v(`div`,{ref:e.index===Y?U:void 0,children:v(x,{variant:t,item:e.item,icon:e.icon,index:e.index,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:{width:`100%`}})},N(e.item,e.index))})}),v(n,{className:`flex-1 min-w-0 flex flex-col`,children:je.right.map(e=>{let n=w(e.item),r=X&&(n?.showPlayCount??!0),i=n?.playCountDelta??Z,a=n?.showEpisode??Q;return v(`div`,{ref:e.index===Y?U:void 0,children:v(x,{variant:t,item:e.item,icon:e.icon,index:e.index,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:{width:`100%`}})},N(e.item,e.index))})})]})]}):null}function x({variant:e,item:t,icon:o,index:s,showPlayCount:c,playCountDelta:l,showEpisode:u,widthStyle:ee}){let te=se(t),d=t.name||t?.title||``,f=ce(le(t.static?.browse_cnt??0,l)),p=E(t,u),m=A(t,o,s);return v(a,{url:te,text:d,className:`w-full`,style:ee,topRightChild:m?v(S,{url:m}):void 0,bottomLeftChild:c?y(n,{className:`h-[20px] leading-[20px] text-[#fff] text-[12px] px-[4px] rounded-[4px] bg-[#333] ml-[4px] flex items-center`,children:[v(i,{className:`w-[16px] h-[auto] text-[#fff] mr-[4px]`}),f]}):null,bottomRightChild:u?p&&v(r,{className:`text-[#fff] text-[12px] leading-[18px] pr-2`,children:p}):null,textChild:v(n,{className:`py-[4px]`,children:v(r,{as:`h3`,className:`text-text1 text-[16px] leading-[24px] ${e===`waterfall`?`break-words line-clamp-3`:`line-clamp-1`}`,children:d})}),linkPath:C(t)})}function S({url:e}){return v(n,{className:`relative w-[40px] h-[20px]`,children:v(t,{src:e,alt:`corner`,fill:!0,objectFit:`cover`})})}function C(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id||``}/${t}/episode/1`}function ae(e){return e?e.trim():``}function oe(e,t,n){let r=Number(e);return!Number.isFinite(r)||r<=0?t:Math.min(n,Math.floor(r))}function w(e){return e[d]}function se(e){return e.img_y||e.img_x||e?.coverUrl}function T(e){return typeof e==`string`?e:``}function E(e,t){if(!t)return``;if(D(e)){let t=Number(e.episode_cnt||e.links?.length||0);return t>0?`全${t}集`:``}return k(Number(e.duration||0))}function D(e){if(Number(e.type??0)===2)return!0;let t=e.is_more_link;if(t===!0||t===`y`||t===`1`)return!0;let n=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(n)&&n>1}function ce(e){return!Number.isFinite(e)||e<=0?`0`:e>=1e6?`${O(e/1e6)}M`:e>=1e3?`${O(e/1e3)}k`:Math.floor(e).toString()}function le(e,t){let n=Number(e||0),r=Number(t||0);return!Number.isFinite(n)||!Number.isFinite(r)?0:Math.max(0,n+r)}function O(e){let t=e.toFixed(1);return t.endsWith(`.0`)?t.slice(0,-2):t}function k(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 A(e,t,n){return T(e.badge_url)||T(t?.material_url)||``}function ue(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=j(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 j(e,t){if(!e)return 0;let n=e*1.3461538461538463,r=E(t,!0)?18:0;return n+20+r+6+16}function M(e){if(typeof e==`string`)return e.trim()||void 0}function N(e,t){return e.id?`home-recommend-${e.id}`:`home-recommend-${t}`}export{b as default};
2
+ "use client";import{pContentGetPopularVideoList as e}from"../../../../../service/generated/client.mjs";import{Image as t}from"../../../../ui/image.mjs";import{Box as n}from"../../../../ui/box.mjs";import{Text as r}from"../../../../ui/text.mjs";import i from"../../../../../assets/icons/detail/video_flag.mjs";import{MiniThreeCard as a}from"../../../../common/cards/mini-three-card.mjs";import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as o,HOME_RECOMMEND_DEFAULT_GRID_ROWS as s,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as c,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as l,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as u,HOME_RECOMMEND_MAX_GRID_COLUMNS as ee,HOME_RECOMMEND_MAX_GRID_ROWS as te}from"./home-recommend-default-config.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as d}from"./home-recommend-preview.mjs";import{useCallback as f,useEffect as p,useLayoutEffect as m,useMemo as h,useRef as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{useRouter as ne}from"next/navigation";const re={},ie={list:[]};function b({variant:t,props:i=re,data:a=ie,mode:d=`renderer`}){let b=d===`editor`,S=ne(),{list:C,title:se,cursor:T}=a,E=h(()=>Array.isArray(C)?C:[],[C]),D=h(()=>Array.isArray(a.icons)?a.icons:[],[a.icons]),{rows:O,columns:ce,moreLink:k,title:A,smartTagEnabled:j,smartTagIds:M,catId:ue,showPlayCount:de,playCountDelta:fe,showEpisode:pe,enableInfinite:me}=i,F=me===!0&&j===!0,I=!b&&F&&E.length>=16,L=h(()=>Array.isArray(M)?M.map(e=>String(e||``).trim()).filter(Boolean):[],[M]),R=typeof ue==`string`?ue.trim():``,[z,he]=_(0),[ge,_e]=_(E),[ve,ye]=_(D),[B,V]=_(()=>N(T)),[be,xe]=_(!1),Se=g(null),H=g(null),U=g(!1);p(()=>{_e(E),ye(D),V(N(T))},[T,D,E]);let Ce=oe(O,s,te),W=oe(ce,o,ee),G=F?16:t===`grid`?Ce*W:16,we=Ce*W,Te=b&&t===`grid`,K=Te?ge.slice(0,we):ge,q=Te?ve.slice(0,we):ve,Ee=t===`waterfall`?6:4,J=K.length>0?Math.max(0,K.length-Ee):-1,De=!!B,Oe=A&&A.trim()||se||``,Y=de??u,X=Number(fe??c),Z=pe??l,ke=!F,Q=ke?ae(k):``,Ae=ke&&!!Q,je=f(async()=>{let t=B;if(!(!I||!t||U.current)){U.current=!0,xe(!0);try{let n=await e({cursor:t,page_size:G,tags:L.length>0?L:void 0,cat_id:R||void 0}),r=Array.isArray(n.data?.videos)?n.data.videos:[],i=N(n.data?.cursor);r.length>0&&_e(e=>e.concat(r)),V(e=>{if(!(!r.length||!i))return i===e?void 0:i})}catch(e){console.error(`推荐位加载下一页失败(client)`,e),V(void 0)}finally{U.current=!1,xe(!1)}}},[B,R,G,L,I]),Me=f(()=>{Q&&(Q.startsWith(`http`)?window.location.href=Q:S.push(Q))},[Q,S]);p(()=>{let e=H.current;if(!e||!I||!De)return;let t=document.getElementById(`app-scroll-container`)||null,n=new IntersectionObserver(e=>{!e[0]?.isIntersecting||be||je()},{root:t,threshold:0});return n.observe(e),()=>{n.disconnect()}},[je,De,be,K.length,G,I,J]),m(()=>{let e=Se.current;if(!e||t!==`waterfall`)return;let n=()=>{let t=e.clientWidth||0;he(t>0?(t-12)/2:0)};n();let r=new ResizeObserver(n);return r.observe(e),()=>{r.disconnect()}},[t]);let $=h(()=>t===`waterfall`?le(K,q,z):{left:[],right:[]},[z,q,K,t]);return K.length?y(n,{className:`w-full mt-[16px]`,children:[y(n,{className:`flex items-center justify-between px-[12px] mb-[8px]`,children:[v(r,{className:`flex-1 min-w-0 text-text1 text-[18px] leading-[26px] font-bold line-clamp-1`,children:Oe}),Ae&&v(r,{className:`text-text3 text-[12px] leading-[18px] cursor-pointer`,onClick:Me,children:`更多`})]}),t===`grid`&&v(n,{className:`w-full flex flex-wrap px-[12px]`,children:K.map((e,n)=>{let r=q[n],i=w(e),a=Y&&(i?.showPlayCount??!0),o=i?.playCountDelta??X,s=i?.showEpisode??Z,c=n%W,l=W>1?{paddingLeft:12*c/W,paddingRight:12*(W-c-1)/W}:void 0;return v(`div`,{ref:n===J?H:void 0,className:`min-w-0`,style:{width:`${100/W}%`,...l||{}},children:v(x,{variant:t,item:e,icon:r,index:n,showPlayCount:a,playCountDelta:o,showEpisode:s,widthStyle:{width:`100%`}})},P(e,n))})}),t===`waterfall`&&y(n,{ref:Se,className:`w-full px-[12px] flex gap-[12px]`,children:[v(n,{className:`flex-1 min-w-0 flex flex-col`,children:$.left.map(e=>{let n=w(e.item),r=Y&&(n?.showPlayCount??!0),i=n?.playCountDelta??X,a=n?.showEpisode??Z;return v(`div`,{ref:e.index===J?H:void 0,children:v(x,{variant:t,item:e.item,icon:e.icon,index:e.index,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:{width:`100%`}})},P(e.item,e.index))})}),v(n,{className:`flex-1 min-w-0 flex flex-col`,children:$.right.map(e=>{let n=w(e.item),r=Y&&(n?.showPlayCount??!0),i=n?.playCountDelta??X,a=n?.showEpisode??Z;return v(`div`,{ref:e.index===J?H:void 0,children:v(x,{variant:t,item:e.item,icon:e.icon,index:e.index,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:{width:`100%`}})},P(e.item,e.index))})})]})]}):null}function x({variant:e,item:t,icon:o,index:s,showPlayCount:c,playCountDelta:l,showEpisode:u,widthStyle:ee}){let te=se(t),d=t.name||t?.title||``,f=O(ce(t.static?.browse_cnt??0,l)),p=E(t,u),m=j(t,o,s);return v(a,{url:te,text:d,className:`w-full`,style:ee,topRightChild:m?v(S,{url:m}):void 0,bottomLeftChild:c?y(n,{className:`h-[20px] leading-[20px] text-[#fff] text-[12px] px-[4px] rounded-[4px] bg-[#333] ml-[4px] flex items-center`,children:[v(i,{className:`w-[16px] h-[auto] text-[#fff] mr-[4px]`}),f]}):null,bottomRightChild:u?p&&v(r,{className:`text-[#fff] text-[12px] leading-[18px] pr-2`,children:p}):null,textChild:v(n,{className:`py-[4px]`,children:v(r,{as:`h3`,className:`text-text1 text-[16px] leading-[24px] ${e===`waterfall`?`break-words line-clamp-3`:`line-clamp-1`}`,children:d})}),linkPath:C(t)})}function S({url:e}){return v(n,{className:`relative w-[40px] h-[20px]`,children:v(t,{src:e,alt:`corner`,width:40,height:20,className:`w-full h-auto`})})}function C(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id||``}/${t}/episode/1`}function ae(e){return e?e.trim():``}function oe(e,t,n){let r=Number(e);return!Number.isFinite(r)||r<=0?t:Math.min(n,Math.floor(r))}function w(e){return e[d]}function se(e){return e.img_y||e.img_x||e?.coverUrl}function T(e){return typeof e==`string`?e:``}function E(e,t){if(!t)return``;if(D(e)){let t=Number(e.episode_cnt||e.links?.length||0);return t>0?`全${t}集`:``}return A(Number(e.duration||0))}function D(e){if(Number(e.type??0)===2)return!0;let t=e.is_more_link;if(t===!0||t===`y`||t===`1`)return!0;let n=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(n)&&n>1}function O(e){return!Number.isFinite(e)||e<=0?`0`:e>=1e6?`${k(e/1e6)}M`:e>=1e3?`${k(e/1e3)}k`:Math.floor(e).toString()}function ce(e,t){let n=Number(e||0),r=Number(t||0);return!Number.isFinite(n)||!Number.isFinite(r)?0:Math.max(0,n+r)}function k(e){let t=e.toFixed(1);return t.endsWith(`.0`)?t.slice(0,-2):t}function A(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 j(e,t,n){return T(e.badge_url)||T(t?.material_url)||``}function le(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=M(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 M(e,t){if(!e)return 0;let n=e*1.3461538461538463,r=E(t,!0)?18:0;return n+20+r+6+16}function N(e){if(typeof e==`string`)return e.trim()||void 0}function P(e,t){return e.id?`home-recommend-${e.id}`:`home-recommend-${t}`}export{b as default};
@@ -1,2 +1,2 @@
1
1
 
2
- import{pContentGetPopularVideoList as e}from"../../../../../service/generated/client.mjs";import{resolveHomeRecommendFeedMode as t}from"./home-recommend-default-config.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as n}from"./home-recommend-preview.mjs";import{batchGetHomeRecommendVideoDetailMap as r}from"./home-recommend-video-detail.mjs";function i(e){return typeof e==`string`?e.trim():``}function a(e){return typeof e==`string`?e.trim():``}function o(e){return a(e)}function s(e){return Array.isArray(e)?e.map(e=>a(e)).filter(Boolean):[]}function c(e){let t=Number(e);if(!(!Number.isFinite(t)||t<0))return t}function l(e,t){let n=e,r=i(n.video_id||e.id||e.mid)||t,a=c(n.play_count)??c(e.browse_count),o=c(n.like_count),s=c(n.collect_count),l=(Array.isArray(n.episodes)?n.episodes.length:0)||(Array.isArray(e.video_episodes)?e.video_episodes.length:0)||(Array.isArray(e.links)?e.links.length:0),u=a!==void 0||o!==void 0||s!==void 0?{browse_cnt:a,like_cnt:o,collect_cnt:s}:void 0;return{id:r,mid:i(e.mid),name:e.name||``,img_x:e.img_x||``,img_y:e.img_y||``,img_type:e.img_type,cat_id:e.cat_id,cat_name:e.cat_name,status:e.status,status_text:e.status_text,show_at:e.show_at,update_status:e.update_status,description:e.description,language:e.language,director:e.director,issue_date:e.issue_date,actor:e.actor,up_user:e.up_user,time:e.time,money:e.money,source_username:e.source_username,task_id:e.task_id,error_msg:e.error_msg,file_status:e.file_status,score:c(e.score)??void 0,duration:c(e.duration)??void 0,episode_cnt:l>0?l:void 0,type:e.is_more_link?2:1,static:u}}function u(e){let t={showPlayCount:e.showPlayCount,playCountDelta:e.playCountDelta,showEpisode:e.showEpisode};if(!(t.showPlayCount===void 0&&t.playCountDelta===void 0&&t.showEpisode===void 0))return t}function d(e,t){let r=a(t.coverUrl),i=t.coverMode===`content`?e.img_y||e.img_x||r||``:r||e.img_y||e.img_x||``,o=a(t.title),s=t.titleMode===`custom`||o&&t.titleMode!==`content`?o:e.name||``,c=a(t.description),l=a(t.badge_url),d=u(t);return{...e,name:s||e.name,img_y:i||e.img_y||e.img_x,img_x:i||e.img_x||e.img_y,description:c||e.description,badge_url:l||e.badge_url,[n]:d}}function f(e){let t=i(e.contentId),n=a(e.coverUrl),r=a(e.title),o=a(e.description);return{id:t,mid:t,name:r||``,img_x:n,img_y:n,description:o,type:1}}async function p(e){let t=(Array.isArray(e)?e:[]).map(e=>({...e,contentId:i(e.contentId)})),n=t.filter(e=>!!e.contentId&&e.coverMode===`content`).map(e=>({id:e.contentId})),a=n.length?await r(n):new Map;return t.map(e=>{let t=e.contentId?a.get(e.contentId):void 0;return d(t?l(t,e.contentId||``):f(e),e)})}async function m(e){let t=(Array.isArray(e)?e:[]).map(e=>({...e,contentId:i(e.contentId)})).filter(e=>!!e.contentId);if(!t.length)return[];let n=await r(t.map(e=>({id:e.contentId})));return t.map(e=>{let t=n.get(e.contentId||``);return d(t?l(t,e.contentId||``):f(e),e)})}async function h(t,n,r){let a=Math.max(1,Math.floor(Number(t)||16)),c=s(n),l=o(r);try{let t=[],n=new Set,r=new Set,o=``;for(;t.length<a;){let s=o||`__first__`;if(r.has(s))break;r.add(s);let u=await e({cursor:o||void 0,page_size:a-t.length,tags:c.length>0?c:void 0,cat_id:l||void 0}),d=Array.isArray(u.data?.videos)?u.data.videos:[];d.forEach(e=>{let r=i(e?.id||e?.mid);r&&n.has(r)||(r&&n.add(r),t.push(e))});let f=u.data?.cursor||``;if(!f||!d.length){o=``;break}o=f}return{videos:t.slice(0,a),nextCursor:o,loaded:!0}}catch(e){return console.error(`推荐位获取热门视频失败(server)`,e),{videos:[],nextCursor:``,loaded:!1}}}async function g({smartTagEnabled:e,smartTagIds:n,catId:r,pageSize:i=16,items:a=[]}){let c=t(e),l=e===!0?s(n):[],u=o(r),d=Array.isArray(a)&&a.length>0,f={list:[],icons:[],title:``,cursor:``,show_style:void 0};if(e!==!0){if(d)return{feedMode:c,data:{...f,list:await p(a),cursor:``}};let e=await h(i);return{feedMode:c,data:{...f,list:e.videos,cursor:e.nextCursor}}}if(c===`manual-with-video-detail`){let e=await h(i,l,u);if(e.loaded)return{feedMode:c,data:{...f,list:e.videos,cursor:e.nextCursor}};try{let e=await m(a);return{feedMode:c,data:{...f,list:e,cursor:``}}}catch(e){return console.error(`推荐位智能铺设补齐视频详情失败(server)`,e),{feedMode:c,data:{...f,list:[],cursor:``}}}}return{feedMode:c,data:f}}export{g as resolveHomeRecommendServerData};
2
+ import{pContentGetPopularVideoList as e}from"../../../../../service/generated/client.mjs";import{resolveHomeRecommendFeedMode as t}from"./home-recommend-default-config.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as n}from"./home-recommend-preview.mjs";import{batchGetHomeRecommendVideoDetailMap as r}from"./home-recommend-video-detail.mjs";function i(e){return typeof e==`string`?e.trim():``}function a(e){return typeof e==`string`?e.trim():``}function o(e){return a(e)}function s(e){return Array.isArray(e)?e.map(e=>a(e)).filter(Boolean):[]}function c(e){let t=Number(e);if(!(!Number.isFinite(t)||t<0))return t}function l(e,t){let n=e,r=i(n.video_id||e.id||e.mid)||t,a=c(n.play_count)??c(e.browse_count),o=c(n.like_count),s=c(n.collect_count),l=(Array.isArray(n.episodes)?n.episodes.length:0)||(Array.isArray(e.video_episodes)?e.video_episodes.length:0)||(Array.isArray(e.links)?e.links.length:0),u=a!==void 0||o!==void 0||s!==void 0?{browse_cnt:a,like_cnt:o,collect_cnt:s}:void 0;return{id:r,mid:i(e.mid),name:e.name||``,img_x:e.img_x||``,img_y:e.img_y||``,img_type:e.img_type,cat_id:e.cat_id,cat_name:e.cat_name,status:e.status,status_text:e.status_text,show_at:e.show_at,update_status:e.update_status,description:e.description,language:e.language,director:e.director,issue_date:e.issue_date,actor:e.actor,up_user:e.up_user,time:e.time,money:e.money,source_username:e.source_username,task_id:e.task_id,error_msg:e.error_msg,file_status:e.file_status,score:c(e.score)??void 0,duration:c(e.duration)??void 0,episode_cnt:l>0?l:void 0,type:e.is_more_link?2:1,static:u}}function u(e){let t={showPlayCount:e.showPlayCount,playCountDelta:e.playCountDelta,showEpisode:e.showEpisode};if(!(t.showPlayCount===void 0&&t.playCountDelta===void 0&&t.showEpisode===void 0))return t}function d(e,t){let r=a(t.coverUrl),i=t.coverMode===`content`?e.img_y||e.img_x||r||``:r||e.img_y||e.img_x||``,o=a(t.title),s=t.titleMode===`custom`||o&&t.titleMode!==`content`?o:e.name||``,c=a(t.description),l=a(t.badge_url),d=u(t);return{...e,name:s||e.name,img_y:i||e.img_y||e.img_x,img_x:i||e.img_x||e.img_y,description:c||e.description,badge_url:l||e.badge_url,[n]:d}}function f(e){let t=i(e.contentId),n=a(e.coverUrl),r=a(e.title),o=a(e.description);return{id:t,mid:t,name:r||``,img_x:n,img_y:n,description:o,type:1}}async function p(e){let t=(Array.isArray(e)?e:[]).map(e=>({...e,contentId:i(e.contentId)})),n=t.filter(e=>!!e.contentId).map(e=>({id:e.contentId})),a=n.length?await r(n):new Map;return t.map(e=>{let t=e.contentId?a.get(e.contentId):void 0;return d(t?l(t,e.contentId||``):f(e),e)})}async function m(e){let t=(Array.isArray(e)?e:[]).map(e=>({...e,contentId:i(e.contentId)})).filter(e=>!!e.contentId);if(!t.length)return[];let n=await r(t.map(e=>({id:e.contentId})));return t.map(e=>{let t=n.get(e.contentId||``);return d(t?l(t,e.contentId||``):f(e),e)})}async function h(t,n,r){let a=Math.max(1,Math.floor(Number(t)||16)),c=s(n),l=o(r);try{let t=[],n=new Set,r=new Set,o=``;for(;t.length<a;){let s=o||`__first__`;if(r.has(s))break;r.add(s);let u=await e({cursor:o||void 0,page_size:a-t.length,tags:c.length>0?c:void 0,cat_id:l||void 0}),d=Array.isArray(u.data?.videos)?u.data.videos:[];d.forEach(e=>{let r=i(e?.id||e?.mid);r&&n.has(r)||(r&&n.add(r),t.push(e))});let f=u.data?.cursor||``;if(!f||!d.length){o=``;break}o=f}return{videos:t.slice(0,a),nextCursor:o,loaded:!0}}catch(e){return console.error(`推荐位获取热门视频失败(server)`,e),{videos:[],nextCursor:``,loaded:!1}}}async function g({smartTagEnabled:e,smartTagIds:n,catId:r,pageSize:i=16,items:a=[]}){let c=t(e),l=e===!0?s(n):[],u=o(r),d=Array.isArray(a)&&a.length>0,f={list:[],icons:[],title:``,cursor:``,show_style:void 0};if(e!==!0)return d?{feedMode:c,data:{...f,list:await p(a),cursor:``}}:{feedMode:c,data:{...f,list:[],cursor:``}};if(c===`manual-with-video-detail`){let e=await h(i,l,u);if(e.loaded)return{feedMode:c,data:{...f,list:e.videos,cursor:e.nextCursor}};try{let e=await m(a);return{feedMode:c,data:{...f,list:e,cursor:``}}}catch(e){return console.error(`推荐位智能铺设补齐视频详情失败(server)`,e),{feedMode:c,data:{...f,list:[],cursor:``}}}}return{feedMode:c,data:f}}export{g as resolveHomeRecommendServerData};
@@ -19,7 +19,7 @@ declare const marqueeMaterial: DefineMaterialOption<typeof MarqueeServer, typeof
19
19
  }, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
20
20
  click: zod.ZodObject<{
21
21
  readonly enabled: zod.ZodBoolean & SchemaHasDefaultValue;
22
- readonly redirectType: zod.ZodOptional<zod.ZodType<"content" | "link" | "content_list", unknown, zod_v4_core0.$ZodTypeInternals<"content" | "link" | "content_list", unknown>>> & SchemaHasDefaultValue;
22
+ readonly redirectType: zod.ZodOptional<zod.ZodType<"link" | "content" | "content_list", unknown, zod_v4_core0.$ZodTypeInternals<"link" | "content" | "content_list", unknown>>> & SchemaHasDefaultValue;
23
23
  readonly link: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
24
24
  }, zod_v4_core0.$strip> & SchemaHasDefaultValue;
25
25
  close: zod.ZodObject<{
@@ -23,7 +23,7 @@ declare const marqueeInspectorPropsSchema: z.ZodObject<{
23
23
  }, z.core.$strip>> & SchemaHasDefaultValue;
24
24
  click: z.ZodObject<{
25
25
  readonly enabled: z.ZodBoolean & SchemaHasDefaultValue;
26
- readonly redirectType: z.ZodOptional<z.ZodType<"content" | "link" | "content_list", unknown, z.core.$ZodTypeInternals<"content" | "link" | "content_list", unknown>>> & SchemaHasDefaultValue;
26
+ readonly redirectType: z.ZodOptional<z.ZodType<"link" | "content" | "content_list", unknown, z.core.$ZodTypeInternals<"link" | "content" | "content_list", unknown>>> & SchemaHasDefaultValue;
27
27
  readonly link: z.ZodOptional<z.ZodString> & SchemaHasDefaultValue;
28
28
  }, z.core.$strip> & SchemaHasDefaultValue;
29
29
  close: z.ZodObject<{
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Button as e}from"../../../ui/button.mjs";import t from"../../../../utils/event-bus.mjs";import{Box as n}from"../../../ui/box.mjs";import{Text as r}from"../../../ui/text.mjs";import{eventKey as i}from"../../../../constants/event-key.mjs";import{DeleteConfirmDialog as a}from"../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{useCallback as o,useEffect as s,useMemo as c,useState as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{usePathname as f,useRouter as p,useSearchParams as m}from"next/navigation";function h(e,t){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function g(g){let{title:_,rows:v=1,clearText:y,confirmDescription:b,storageKey:x=`guest`,onHistoryClick:S,mode:C=`renderer`}=g,w=_??`搜索历史`,T=y??`清空`,E=b??`确定要清除所有搜索历史吗?`,D=c(()=>[`搜索历史1`,`搜索历史2`,`搜索历史3`],[]),[O,k]=l([]),[A,j]=l(!1),M=p(),N=f(),P=m(),F=`search_history_${x}`,I=o(()=>{let e=[];try{let t=localStorage.getItem(F);if(t)try{let n=JSON.parse(t);e=Array.isArray(n)?n:[]}catch{e=[]}k(e)}catch(e){console.error(`Failed to parse search history`,e),k([])}},[F]);s(()=>(I(),t.on(i.SEARCH_HISTORY_UPDATE,I),()=>t.off(i.SEARCH_HISTORY_UPDATE,I)),[I]);let L=()=>{k([]),localStorage.removeItem(F),j(!1),t.emit(i.SEARCH_HISTORY_UPDATE)},R=c(()=>(O.length?O:C===`editor`?D:[]).slice(0,v*10),[O,C,D,v]);if(R.length===0)return null;let z=e=>{if(S){S(e);return}let t=new URLSearchParams(P.toString());t.set(`q`,e);let n=N.includes(`/search-result`)?N:`/search-result`;M.push(`${n}?${t.toString()}`)};return d(n,{className:`px-4 py-2`,children:[d(n,{className:`flex justify-between items-center mb-2`,children:[u(r,{className:`text-[16px] font-bold text-text1`,children:w}),u(e,{variant:`ghost`,size:`sm`,className:`text-text3 text-[12px] p-0 h-auto`,onClick:()=>j(!0),children:T})]}),u(n,{className:`flex flex-wrap gap-2 overflow-hidden`,style:{maxHeight:`30px`},children:R.map((e,t)=>u(n,{className:`px-3 py-1 bg-bg2 rounded-full cursor-pointer`,onClick:()=>z(e),children:u(r,{className:`text-[14px] text-text2`,children:h(e,8)})},t))}),u(a,{open:A,onOpenChange:j,onConfirm:L,title:``,description:E})]})}export{g as SearchHistoryClient};
2
+ "use client";import{Button as e}from"../../../ui/button.mjs";import t from"../../../../utils/event-bus.mjs";import{Box as n}from"../../../ui/box.mjs";import{Text as r}from"../../../ui/text.mjs";import{eventKey as i}from"../../../../constants/event-key.mjs";import{DeleteConfirmDialog as a}from"../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{useCallback as o,useEffect as s,useMemo as c,useState as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{usePathname as f,useRouter as p,useSearchParams as m}from"next/navigation";function h(e,t){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function g(g){let{title:_,rows:v=1,clearText:y,confirmDescription:b,storageKey:x=`guest`,onHistoryClick:S,mode:C=`renderer`}=g,w=_??`搜索历史`,T=y??`清空`,E=b??`确定要清除所有搜索历史吗?`,D=c(()=>[`搜索历史1`,`搜索历史2`,`搜索历史3`],[]),[O,k]=l([]),[A,j]=l(!1),M=p(),N=f(),P=m(),F=`search_history_${x}`,I=o(()=>{let e=[];try{let t=localStorage.getItem(F);if(t)try{let n=JSON.parse(t);e=Array.isArray(n)?n:[]}catch{e=[]}k(e)}catch(e){console.error(`Failed to parse search history`,e),k([])}},[F]);s(()=>(I(),t.on(i.SEARCH_HISTORY_UPDATE,I),()=>t.off(i.SEARCH_HISTORY_UPDATE,I)),[I]);let L=()=>{k([]),localStorage.removeItem(F),j(!1),t.emit(i.SEARCH_HISTORY_UPDATE)},R=c(()=>(O.length?O:C===`editor`?D:[]).slice(0,v*10),[O,C,D,v]);if(R.length===0)return null;let z=e=>{if(S){S(e);return}let t=new URLSearchParams(P.toString());t.set(`q`,e);let n=N.includes(`/search-result`)?N:`/search-result`;M.push(`${n}?${t.toString()}`)};return d(n,{className:`px-4 py-2`,children:[d(n,{className:`flex justify-between items-center mb-2`,children:[u(r,{className:`text-[16px] font-bold text-text1`,children:w}),u(e,{variant:`ghost`,size:`sm`,className:`text-text3 text-[12px] p-0 h-auto`,onClick:()=>j(!0),children:T})]}),u(n,{className:`flex flex-wrap gap-2 overflow-hidden`,style:{maxHeight:`${v*30}px`},children:R.map((e,t)=>u(n,{className:`px-3 py-1 bg-bg2 rounded-full cursor-pointer`,onClick:()=>z(e),children:u(r,{className:`text-[14px] text-text2`,children:h(e,8)})},t))}),u(a,{open:A,onOpenChange:j,onConfirm:L,title:``,description:E})]})}export{g as SearchHistoryClient};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../ui/box.mjs";import{Sheet as t,SheetContent as n,SheetHeader as r,SheetTitle as i}from"../../ui/sheet.mjs";import{Switch as a}from"../../ui/switch.mjs";import{Text as o}from"../../ui/text.mjs";import{useKeepAliveState as s}from"../keep-scroll-position/index.mjs";import c from"../../../assets/icons/close.mjs";import l from"../../../assets/icons/common/right_arrow.mjs";import u from"../../ui/popup.mjs";import{useCallback as d,useEffect as f,useMemo as p,useRef as m,useState as h}from"react";import{Fragment as g,jsx as _,jsxs as v}from"react/jsx-runtime";import{toast as y}from"sonner";import{useTranslations as b}from"next-intl";function x(e,t,n){return(e||[]).map((e,r)=>{let i=Number.parseInt(e?.id||``,10),a=Number.isNaN(i)?r+1:i,o=e?.id||``,s=Number.isNaN(i)&&o||n(a);return{id:e?.id||`${t}-${a}`,series_num:a,title:s}})}function S(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 C(e,t,n){return e<=0?n(`singleContent`):n(t===`1`?`completedSeriesTotal`:`ongoingSeriesTotal`,{total:e})}function w(e){return e.mode===`detail`?_(E,{information:e.information,series_num:e.series_num,onEpisodeChange:e.onEpisodeChange}):_(T,{open:e.open,variant:e.variant,title:e.title,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})}function T({open:s,variant:l,title:d,updateStatus:g,summaryText:y,seriesList:S,activeEpisodeId:w,showEpisodeTitle:T=!1,onToggleTitle:E,onClose:D,onSelectEpisode:O,popupBodyStyle:k}){let A=b(`components.common.seriesEpisodes`),j=!!E,M=j&&T,N=m(null),P=m(null),F=p(()=>x(S,`episode`,e=>A(`episodeLabel`,{episode:e})),[S,A]),I=p(()=>{if(F.length===0)return[];let e=[];return F.forEach((t,n)=>{let r=Math.floor(n/50);e[r]||(e[r]=[]),e[r].push(t)}),e},[F]),L=p(()=>{if(!w)return 0;let e=F.findIndex(e=>e.id===w);return e<0?0:Math.floor(e/50)},[w,F]),[R,z]=h(L);f(()=>{z(L)},[L]);let B=p(()=>typeof y==`string`&&y.trim()?y:C(F.length,g,A),[F.length,y,A,g]),V=d||A(`selectorTitle`);function H(){let e=N.current;if(e){P.current&&=(window.cancelAnimationFrame(P.current),null),e.scrollTop=0;try{e.scrollTo({top:0,left:0,behavior:`auto`})}catch{}P.current=window.requestAnimationFrame(()=>{P.current=null;let e=N.current;e&&(e.scrollTop=0)})}}f(()=>{s&&H()},[s,T,R]);function U(e){E&&(E(e),H())}function W(e){O?.(e.id,e.series_num),D()}let G=M?2:5,K=I.length>1?_(`div`,{className:`shrink-0 w-full flex gap-[8px] overflow-x-auto`,children:I.map((e,t)=>{if(e.length===0)return null;let n=t===R,r=t*50+1,i=Math.min((t+1)*50,F.length);return v(`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:()=>{z(t),H()},children:[r,`-`,i,n&&_(`div`,{className:`absolute w-full h-full top-0 left-0 opacity-20 bg-theme5`})]},`series-group-${t}`)})}):null,q=v(`div`,{className:`pb-[8px] flex justify-between`,children:[_(`span`,{className:`text-[16px] text-text1`,children:B}),j&&v(`div`,{className:`flex items-center gap-[4px]`,children:[_(a,{size:`sm`,className:`data-checked:bg-theme5 h-[20px] w-[33px]`,checked:T,onCheckedChange:e=>{U(!!e)}}),_(`button`,{type:`button`,className:`text-[16px] text-text1`,onClick:()=>{U(!T)},children:A(`episodeTitle`)})]})]}),J=_(`div`,{className:`grid w-full gap-2 ${G===2?`grid-cols-2`:`grid-cols-5`}`,children:(I[R]||[]).map((e,t)=>{let n=!!(w&&e.id===w);return _(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{W(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`} ${M?`h-[72px] px-[10px] text-[14px]`:``} ${t%G===0?``:`border-l-0`}`,children:M?_(`span`,{className:`leading-[22px] line-clamp-2`,children:e.title}):e.series_num},e.id)})});return l===`sheet`?_(t,{open:s,onOpenChange:e=>!e&&D(),children:v(n,{side:`bottom`,showCloseButton:!0,className:`min-h-[50vh] max-h-[70vh] bg-bg1 text-text1 rounded-t-2xl border-t border-white/10`,children:[_(r,{className:`pt-3 pb-0`,children:_(i,{className:`flex items-center justify-between text-lg text-text1`,children:V})}),v(`div`,{className:`px-4 pb-2 flex flex-col gap-3`,children:[K,q]}),_(`div`,{ref:N,className:`flex-1 h-0 pt-[4px] pb-[12px] overflow-y-auto px-4`,children:J})]})}):_(u,{open:s,onOpenChange:e=>{e||D()},showCloseButton:!1,className:`border-0 bg-transparent p-0`,children:v(e,{className:`w-full flex flex-col bg-bg1 px-[12px] text-text1`,style:{height:`70vh`,...k,maxHeight:`70vh`},children:[v(e,{className:`shrink-0 flex justify-between items-center h-[48px]`,children:[_(o,{className:`text-[16px] font-bold text-text1`,children:V}),_(e,{className:`pl-[12px] h-full flex items-center`,onClick:D,children:_(c,{className:`w-[14px] h-[14px] text-text1 cursor-pointer`})})]}),v(e,{className:`flex-1 h-0 w-full pb-[12px] flex flex-col gap-3`,children:[K,q,_(e,{ref:N,className:`flex-1 h-0 pt-[4px] pb-[12px] overflow-y-auto`,children:J})]})]})})}function E({information:t,series_num:n,onEpisodeChange:r}){let i=b(`components.common`),[a,c]=s(`detail-series-popup-${t.id}`,!1),[u,x]=s(`detail-series-title-toggle-${t.id}`,!1),[C,w]=h(n);f(()=>{w(n)},[t.id,n]);let E=p(()=>S((t.links||[]).map(e=>({id:e.id,name:e.name})),t.id||`episode`,e=>i(`seriesEpisodes.episodeLabel`,{episode:e})),[t.id,t.links,i]),D=t.update_status===`1`?i(`seriesEpisodes.completedSeriesTotal`,{total:t.links.length}):i(`seriesEpisodes.ongoingSeriesUpdatedTo`,{total:t.links.length}),O=p(()=>t.links[C-1]?.id||t.links[0]?.id||``,[t.links,C]),k=m(null),[A,j]=s(`detail-series-scroll-left-${t.id}`,0),[M,N]=s(`detail-series-align-after-switch-${t.id}`,!0),P=m(null),F=m(null),I=m(null),L=m(null),R=d((e,t=`smooth`)=>{let n=k.current?.querySelector(`[data-content-id="${e}"]`);if(n&&k.current){let e=k.current,r=Math.max(0,n.offsetLeft-10);e.scrollTo({left:r,behavior:t}),j(r)}},[j]),z=d(()=>{L.current!==null&&(window.clearTimeout(L.current),L.current=null)},[]),B=d(()=>{I.current!==null&&(y.dismiss(I.current),I.current=null),z()},[z]),V=d(()=>{P.current=null,F.current=null,B()},[B]);f(()=>{let e=k.current;if(!e)return;let t=window.requestAnimationFrame(()=>{if(M&&n===C){R(O,`auto`),N(!1);return}e.scrollTo({left:Math.max(0,A),behavior:`auto`})});return()=>{window.cancelAnimationFrame(t)}},[O,C,M,A,R,n,N]),f(()=>{let e=P.current;!e||e!==n||V()},[V,n]),f(()=>()=>{V()},[V]);let H=d((e,a=`inline`)=>{if(e!==C){if(!t.links[e-1]){y.error(i(`seriesEpisodes.episodeNotFound`));return}try{j(k.current?.scrollLeft||0),N(a===`popup`),w(e),B(),I.current=y.loading(i(`seriesEpisodes.episodeSwitching`)),P.current=e,F.current=a,L.current=window.setTimeout(()=>{P.current===e&&(w(n),V(),y.error(i(`seriesEpisodes.episodeSwitchFailed`)))},8e3),r(e)}catch(e){w(n),N(!1),V(),console.error(`切换剧集失败`,e),y.error(i(`seriesEpisodes.episodeSwitchFailed`))}}},[V,B,t.links,r,C,n,N,j,i]),U=d(()=>{j(k.current?.scrollLeft||0)},[j]),W=d(e=>{setTimeout(()=>{R(e)},200)},[R]),[G,K]=h(`70vh`),q=d(()=>{if(typeof window>`u`)return;let e=document.getElementById(`selectPopupPosition`),t=window.visualViewport?.height||window.innerHeight;if(!e){K(`70vh`);return}let n=Math.max(0,t-e.offsetTop);if(n<=0){K(`70vh`);return}K(`${n}px`)},[]);return f(()=>{if(!a)return;q();let e=()=>{q()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[q,a]),E.length<=1?null:v(g,{children:[v(e,{className:`w-full mt-[16px] flex flex-col items-end mb-[4px]`,children:[v(e,{className:`w-fit flex items-center px-[12px] h-[28px]`,onClick:()=>c(!0),children:[_(o,{className:`text-[14px] text-text2 leading-[20px]`,children:D}),_(l,{className:`w-[11px] h-[18px] ml-[4px] text-text2`})]}),_(`div`,{ref:k,className:`w-full mt-[12px] overflow-x-auto px-[12px] flex gap-x-[8px] ${u?`h-[76px]`:`h-[60px]`}`,onScroll:U,children:E.map((e,t)=>_(`div`,{"data-content-id":e.id,className:`shrink-0 h-[full] px-[18px] rounded-[6px] border border-line1 flex items-center ${u?`w-[162px]`:`w-[60px] !px-[0] justify-center`} ${e.id===O?`!border-theme5 bg-line1`:``}`,onClick:()=>H(t+1,`inline`),children:_(o,{className:`text-[16px] text-text1 leading-[22px] line-clamp-2 ${e.id===O?`font-bold !text-theme5`:``}`,children:u?e.title:e.series_num})},e.id))})]}),_(T,{title:i(`seriesEpisodes.selectorTitle`),variant:`popup`,open:a,updateStatus:t.update_status,summaryText:D,seriesList:(t.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:O,showEpisodeTitle:u,onToggleTitle:e=>{x(e),W(O)},onClose:()=>c(!1),onSelectEpisode:(e,t)=>{c(!1),H(t,`popup`)},popupBodyStyle:{height:G}})]})}export{w as SeriesEpisodes};
2
+ "use client";import{Box as e}from"../../ui/box.mjs";import{Sheet as t,SheetContent as n,SheetHeader as r,SheetTitle as i}from"../../ui/sheet.mjs";import{Switch as a}from"../../ui/switch.mjs";import{Text as o}from"../../ui/text.mjs";import{useKeepAliveState as s}from"../keep-scroll-position/index.mjs";import c from"../../../assets/icons/close.mjs";import l from"../../../assets/icons/common/right_arrow.mjs";import u from"../../ui/popup.mjs";import{useCallback as d,useEffect as f,useMemo as p,useRef as m,useState as h}from"react";import{Fragment as g,jsx as _,jsxs as v}from"react/jsx-runtime";import{toast as y}from"sonner";import{useTranslations as b}from"next-intl";function x(e,t,n){return(e||[]).map((e,r)=>{let i=Number.parseInt(e?.id||``,10),a=Number.isNaN(i)?r+1:i,o=e?.id||``,s=Number.isNaN(i)&&o||n(a);return{id:e?.id||`${t}-${a}`,series_num:a,title:s}})}function S(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 C(e,t,n){return e<=0?n(`singleContent`):n(t===`1`?`completedSeriesTotal`:`ongoingSeriesTotal`,{total:e})}function w(e){return e.mode===`detail`?_(E,{information:e.information,series_num:e.series_num,onEpisodeChange:e.onEpisodeChange}):_(T,{open:e.open,variant:e.variant,title:e.title,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})}function T({open:s,variant:l,title:d,updateStatus:g,summaryText:y,seriesList:S,activeEpisodeId:w,showEpisodeTitle:T=!1,onToggleTitle:E,onClose:D,onSelectEpisode:O,popupBodyStyle:k}){let A=b(`components.common.seriesEpisodes`),j=!!E,M=j&&T,N=m(null),P=m(null),F=p(()=>x(S,`episode`,e=>A(`episodeLabel`,{episode:e})),[S,A]),I=p(()=>{if(F.length===0)return[];let e=[];return F.forEach((t,n)=>{let r=Math.floor(n/50);e[r]||(e[r]=[]),e[r].push(t)}),e},[F]),L=p(()=>{if(!w)return 0;let e=F.findIndex(e=>e.id===w);return e<0?0:Math.floor(e/50)},[w,F]),[R,z]=h(L);f(()=>{z(L)},[L]);let B=p(()=>typeof y==`string`&&y.trim()?y:C(F.length,g,A),[F.length,y,A,g]),V=d||A(`selectorTitle`);function H(){let e=N.current;if(e){P.current&&=(window.cancelAnimationFrame(P.current),null),e.scrollTop=0;try{e.scrollTo({top:0,left:0,behavior:`auto`})}catch{}P.current=window.requestAnimationFrame(()=>{P.current=null;let e=N.current;e&&(e.scrollTop=0)})}}f(()=>{s&&H()},[s,T,R]);function U(e){E&&(E(e),H())}function W(e){O?.(e.id,e.series_num),D()}let G=M?2:5,K=I.length>1?_(`div`,{className:`shrink-0 w-full flex gap-[8px] overflow-x-auto`,children:I.map((e,t)=>{if(e.length===0)return null;let n=t===R,r=t*50+1,i=Math.min((t+1)*50,F.length);return v(`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:()=>{z(t),H()},children:[r,`-`,i,n&&_(`div`,{className:`absolute w-full h-full top-0 left-0 opacity-20 bg-theme5`})]},`series-group-${t}`)})}):null,q=v(`div`,{className:`pb-[8px] flex justify-between`,children:[_(`span`,{className:`text-[16px] text-text1`,children:B}),j&&v(`div`,{className:`flex items-center gap-[4px]`,children:[_(a,{size:`sm`,className:`data-checked:bg-theme5 h-[20px] w-[33px]`,checked:T,onCheckedChange:e=>{U(!!e)}}),_(`button`,{type:`button`,className:`text-[16px] text-text1`,onClick:()=>{U(!T)},children:A(`episodeTitle`)})]})]}),J=_(`div`,{className:`grid w-full gap-2 ${G===2?`grid-cols-2`:`grid-cols-5`}`,children:(I[R]||[]).map((e,t)=>{let n=!!(w&&e.id===w);return _(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{W(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`} ${M?`h-[72px] px-[10px] text-[14px]`:``} ${t%G===0?``:`border-l-0`}`,children:M?_(`span`,{className:`leading-[22px] line-clamp-2`,children:e.title}):e.series_num},e.id)})});return l===`sheet`?_(t,{open:s,onOpenChange:e=>!e&&D(),children:v(n,{side:`bottom`,showCloseButton:!0,className:`min-h-[50vh] max-h-[70vh] bg-bg1 text-text1 rounded-t-2xl border-t border-white/10`,children:[_(r,{className:`pt-3 pb-0`,children:_(i,{className:`flex items-center justify-between text-lg text-text1`,children:V})}),v(`div`,{className:`px-4 pb-2 flex flex-col gap-3`,children:[K,q]}),_(`div`,{ref:N,className:`flex-1 h-0 pt-[4px] pb-[12px] overflow-y-auto px-4`,children:J})]})}):_(u,{open:s,onOpenChange:e=>{e||D()},showCloseButton:!1,className:`border-0 bg-transparent p-0`,children:v(e,{className:`w-full flex flex-col bg-bg1 px-[12px] text-text1`,style:{height:`70vh`,...k,maxHeight:`70vh`},children:[v(e,{className:`shrink-0 flex justify-between items-center h-[48px]`,children:[_(o,{className:`text-[16px] font-bold text-text1`,children:V}),_(e,{className:`pl-[12px] h-full flex items-center`,onClick:D,children:_(c,{className:`w-[14px] h-[14px] text-text1 cursor-pointer`})})]}),v(e,{className:`flex-1 h-0 w-full pb-[12px] flex flex-col gap-3`,children:[K,q,_(e,{ref:N,className:`flex-1 h-0 pt-[4px] pb-[12px] overflow-y-auto`,children:J})]})]})})}function E({information:t,series_num:n,onEpisodeChange:r}){let i=b(`components.common`),[a,c]=s(`detail-series-popup-${t.id}`,!1),[u,x]=s(`detail-series-title-toggle-${t.id}`,!1),[C,w]=h(n);f(()=>{w(n)},[t.id,n]);let E=p(()=>S((t.links||[]).map(e=>({id:e.id,name:e.name})),t.id||`episode`,e=>i(`seriesEpisodes.episodeLabel`,{episode:e})),[t.id,t.links,i]),D=t.update_status===`1`?i(`seriesEpisodes.completedSeriesTotal`,{total:t.links.length}):i(`seriesEpisodes.ongoingSeriesUpdatedTo`,{total:t.links.length}),O=p(()=>t.links[C-1]?.id||t.links[0]?.id||``,[t.links,C]),k=m(null),A=m(null),j=m(null),M=m(!1),N=m(null),P=m(null),[F,I]=h(!1),L=d((e,t=`smooth`)=>{let n=k.current?.querySelector(`[data-content-id="${e}"]`);if(n&&k.current){let e=k.current,r=Math.max(0,n.offsetLeft-10);e.scrollTo({left:r,behavior:t})}},[]),R=d(()=>{P.current!==null&&(window.clearTimeout(P.current),P.current=null)},[]),z=d(()=>{N.current!==null&&(y.dismiss(N.current),N.current=null),R()},[R]),B=d(()=>{A.current=null,j.current=null,z(),I(!1)},[z]);f(()=>{M.current=!1},[t.id]),f(()=>{if(M.current||!O)return;let e=window.requestAnimationFrame(()=>{L(O,`auto`),M.current=!0});return()=>{window.cancelAnimationFrame(e)}},[O,L]),f(()=>{let e=A.current;!e||e!==n||(j.current===`popup`&&L(O,`auto`),B())},[B,O,L,n]),f(()=>()=>{B()},[B]);let V=d((e,a=`inline`)=>{if(e!==C){if(!t.links[e-1]){y.error(i(`seriesEpisodes.episodeNotFound`));return}try{w(e),I(!0),z(),N.current=y.loading(i(`seriesEpisodes.episodeSwitching`)),A.current=e,j.current=a,P.current=window.setTimeout(()=>{A.current===e&&(w(n),B(),y.error(i(`seriesEpisodes.episodeSwitchFailed`)))},8e3),r(e)}catch(e){w(n),B(),console.error(`切换剧集失败`,e),y.error(i(`seriesEpisodes.episodeSwitchFailed`))}}},[B,z,t.links,r,C,n,i]),[H,U]=h(`70vh`),W=d(()=>{if(typeof window>`u`)return;let e=document.getElementById(`selectPopupPosition`),t=window.visualViewport?.height||window.innerHeight;if(!e){U(`70vh`);return}let n=Math.max(0,t-e.offsetTop);if(n<=0){U(`70vh`);return}U(`${n}px`)},[]);return f(()=>{if(!a)return;W();let e=()=>{W()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[W,a]),E.length<=1?null:v(g,{children:[v(e,{className:`w-full mt-[16px] flex flex-col items-end mb-[4px]`,children:[v(e,{className:`w-fit flex items-center px-[12px] h-[28px]`,onClick:()=>c(!0),children:[_(o,{className:`text-[14px] text-text2 leading-[20px]`,children:D}),_(l,{className:`w-[11px] h-[18px] ml-[4px] text-text2`})]}),_(`div`,{ref:k,className:`w-full mt-[12px] overflow-x-auto px-[12px] flex gap-x-[8px] ${u?`h-[76px]`:`h-[60px]`} ${F?`touch-none`:``}`,children:E.map((e,t)=>_(`div`,{"data-content-id":e.id,className:`shrink-0 h-[full] px-[18px] rounded-[6px] border border-line1 flex items-center ${u?`w-[162px]`:`w-[60px] !px-[0] justify-center`} ${e.id===O?`!border-theme5 bg-line1`:``}`,onClick:()=>V(t+1,`inline`),children:_(o,{className:`text-[16px] text-text1 leading-[22px] line-clamp-2 ${e.id===O?`font-bold !text-theme5`:``}`,children:u?e.title:e.series_num})},e.id))})]}),_(T,{title:i(`seriesEpisodes.selectorTitle`),variant:`popup`,open:a,updateStatus:t.update_status,summaryText:D,seriesList:(t.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:O,showEpisodeTitle:u,onToggleTitle:e=>{x(e)},onClose:()=>c(!1),onSelectEpisode:(e,t)=>{c(!1),V(t,`popup`)},popupBodyStyle:{height:H}})]})}export{w as SeriesEpisodes};
@@ -13,6 +13,7 @@ interface ShareContentProps {
13
13
  parentId?: string;
14
14
  };
15
15
  copyUrl?: string;
16
+ visible?: boolean;
16
17
  onClose?: () => void;
17
18
  }
18
19
  /**
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{pCommunityShareContent as t}from"../../../service/generated/client.mjs";import{apiCollectCustom as n}from"../../../utils/api-collect.mjs";import{useCallback as r,useEffect as i,useMemo as a,useState as o}from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{toast as l}from"sonner";import{useTranslations as u}from"next-intl";function d(e){return String(e?.user_code||e?.userCode||``)}function f(e,t){return t?`${e}${e.includes(`?`)?`&`:`?`}from_code=${t}`:e}async function p(e){if(!e)return!1;if(navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch(e){console.error(`复制失败:`,e)}try{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.left=`-9999px`,document.body.appendChild(t),t.select();let n=document.execCommand(`copy`);return document.body.removeChild(t),n}catch(e){return console.error(`复制失败:`,e),!1}}function m(n){let m=u(`components.common.sharePopup`),{type:h,data:g,copyUrl:_,onClose:v}=n,{userInfo:y}=e(),[b,x]=o(_||``),S=a(()=>d(y),[y]),C=r(async()=>{if(!_){try{let e=(await t({content_id:g.id},{revalidate:!1})).data?.share_url||``;if(e){x(f(e,S));return}}catch(e){console.error(`获取分享链接失败:`,e)}typeof window<`u`&&x(f(window.location.href,S))}},[_,g.id,S]);i(()=>{_&&x(_)},[_]),i(()=>{C(),g.parentId||g.id},[g.id,g.parentId,C]);async function w(){let e=await p(b);l.message(m(e?`shareContent.copySuccess`:`shareContent.copyFailed`)),v?.()}return c(`div`,{className:`w-full bg-bg1`,"data-type":h,children:[c(`div`,{className:`w-full p-[16px] flex-col items-center`,children:[s(`span`,{className:`text-text1 text-[20px] font-bold leading-[20px] block h-[20px] text-center`,children:m(`shareContent.shareLinksTitle`)}),s(`span`,{className:`mt-[16px] text-text2 text-[14px] leading-[14px] block h-[14px] text-center`,children:m(`shareContent.shareHint`)}),s(`div`,{className:`w-full bg-bg2 rounded-[8px] mt-[16px]`,children:s(`textarea`,{id:`share-url`,readOnly:!0,value:b,className:`w-full h-[80px] p-[10px] bg-transparent focus:outline-none text-text2 text-[14px] leading-[20px] break-all`})})]}),s(`button`,{type:`button`,className:`copy-btn w-full h-[48px] text-center text-white text-[18px] leading-[48px]`,style:{background:`var(--color-theme5)`},onClick:w,children:m(`shareContent.copyShareLink`)})]})}export{m as default};
2
+ "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{pCommunityShareContent as t}from"../../../service/generated/client.mjs";import{apiCollectCustom as n}from"../../../utils/api-collect.mjs";import{useCallback as r,useEffect as i,useMemo as a,useState as o}from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{toast as l}from"sonner";import{useTranslations as u}from"next-intl";function d(e){return String(e?.user_code||e?.userCode||``)}function f(e,t){return t?`${e}${e.includes(`?`)?`&`:`?`}from_code=${t}`:e}async function p(e){if(!e)return!1;if(navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch(e){console.error(`复制失败:`,e)}try{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.left=`-9999px`,document.body.appendChild(t),t.select();let n=document.execCommand(`copy`);return document.body.removeChild(t),n}catch(e){return console.error(`复制失败:`,e),!1}}function m(n){let m=u(`components.common.sharePopup`),{type:h,data:g,copyUrl:_,visible:v=!0,onClose:y}=n,{userInfo:b}=e(),[x,S]=o(_||``),C=a(()=>d(b),[b]),w=r(async()=>{if(!_){try{let e=(await t({content_id:g.id},{revalidate:!1})).data?.share_url||``;if(e){S(f(e,C));return}}catch(e){console.error(`获取分享链接失败:`,e)}typeof window<`u`&&S(f(window.location.href,C))}},[_,g.id,C]);i(()=>{_&&S(_)},[_]),i(()=>{v&&g.id&&(w(),g.parentId||g.id)},[g.id,g.parentId,w,v]);async function T(){let e=await p(x);l.message(m(e?`shareContent.copySuccess`:`shareContent.copyFailed`)),y?.()}return c(`div`,{className:`w-full bg-bg1`,"data-type":h,children:[c(`div`,{className:`w-full p-[16px] flex-col items-center`,children:[s(`span`,{className:`text-text1 text-[20px] font-bold leading-[20px] block h-[20px] text-center`,children:m(`shareContent.shareLinksTitle`)}),s(`span`,{className:`mt-[16px] text-text2 text-[14px] leading-[14px] block h-[14px] text-center`,children:m(`shareContent.shareHint`)}),s(`div`,{className:`w-full bg-bg2 rounded-[8px] mt-[16px]`,children:s(`textarea`,{id:`share-url`,readOnly:!0,value:x,className:`w-full h-[80px] p-[10px] bg-transparent focus:outline-none text-text2 text-[14px] leading-[20px] break-all`})})]}),s(`button`,{type:`button`,className:`copy-btn w-full h-[48px] text-center text-white text-[18px] leading-[48px]`,style:{background:`var(--color-theme5)`},onClick:T,children:m(`shareContent.copyShareLink`)})]})}export{m as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import e from"../../ui/popup.mjs";import t from"../../../assets/icons/share/share-link.mjs";import{defaultLocale as n,getMessages as r,isValidLocale as i}from"../../../i18n.mjs";import{IntlProvider as a}from"../intl-provider/intl-provider.mjs";import{SharePlatformEnum as o}from"../../../types/share.mjs";import s from"../../../utils/share-manager.mjs";import{useEffect as c,useState as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{useTranslations as f}from"next-intl";import{createRoot as p}from"react-dom/client";let m=``;const h=[{id:o.SHARE_LINK,name:``,icon:u(t,{className:`w-full h-full`}),onClick:e=>{s.showSharePopup({type:o.SHARE_LINK,data:e,copyUrl:m})}}],g=[],_={id:``,isCollect:!1};function v(t){let n=f(`components.common.sharePopup`),{visible:r,onClose:i,onCollect:a,data:s=_,platforms:p=h,actions:m=g,cancelText:v,maskClosable:y=!0}=t,[b,x]=l(s.isCollect),S=v??n(`shareDrawer.cancel`);c(()=>{x(s.isCollect)},[s.isCollect]);function C(e){return e.name?e.name:e.id===o.SHARE_LINK?n(`shareContent.copyShareLink`):``}function w(e){window.sensors?.track?.(`detail_share_click`,{object_id:s.id,channel:e.id}),e.onClick(s),i?.()}function T(e){!e&&y&&i?.()}function E(e){return function(){w(e)}}return u(e,{side:`bottom`,open:r,onOpenChange:T,showCloseButton:!1,className:`z-[2000] !gap-0 rounded-t-[16px] bg-bg2 p-0 text-text1`,children:d(`div`,{className:`bg-bg2`,children:[p.length>0&&u(`div`,{className:`p-[24px]`,children:u(`div`,{className:`w-full h-[72px] overflow-hidden`,children:u(`div`,{className:`w-full g-scroll-box-x flex items-center`,style:{height:`calc(100% + 60px)`,paddingBottom:`60px`},children:p.map((e,t)=>d(`div`,{className:`cursor-pointer h-[100%] flex flex-col items-center justify-between ${t>0?`ml-[32px]`:``}`,onClick:E(e),children:[u(`span`,{className:`w-[48px] h-[48px] flex items-center justify-center`,children:e.icon}),u(`span`,{className:`text-text1 text-[12px] leading-[12px]`,children:C(e)})]},e.id))})})}),u(`div`,{className:`bg-bg1 mt-[4px] flex items-center justify-center`,onClick:i,children:u(`span`,{className:`text-text1 text-[16px] leading-[60px]`,children:S})})]})})}function y(){if(typeof document>`u`)return n;let e=document.documentElement?.lang||``;return i(e)?e:n}function b(e){let t=y();return u(a,{locale:t,messages:r(t),children:u(v,{...e})})}let x=null,S=null,C=null;var w=class e{static async show(t){let n=await s.initShareConfig(),r=t.initPlatforms||h.filter(e=>n[e.id]),i=t.initActions||g,{data:a,...o}=t,c={platforms:r,actions:i,maskClosable:!0,...o};C={supportActions:i,supportPlatforms:r};let l=typeof window<`u`?window.location.href:``;m=t.copyUrl||t.shareUrl||l,x||(x=document.createElement(`div`),x.style.zIndex=`2001`,document.body.appendChild(x),S=p(x)),S?.render(u(b,{visible:!1,data:a,onClose:()=>{e.clear(),c.onClose?.()},...c})),requestAnimationFrame(()=>{S?.render(u(b,{visible:!0,data:a,onClose:()=>{e.clear(),c.onClose?.()},...c}))})}static clear(){S&&x&&(S.render(u(b,{visible:!1,data:{},platforms:C?.supportPlatforms,actions:C?.supportActions,maskClosable:!0})),setTimeout(()=>{S?.unmount(),S=null,x?.parentNode&&x.parentNode.removeChild(x),x=null},300))}};export{v as SharePopupComponent,w as default,g as defaultActions,h as defaultPlatforms};
2
+ "use client";import e from"../../ui/popup.mjs";import t from"../../../assets/icons/share/share-link.mjs";import{defaultLocale as n,getMessages as r,isValidLocale as i}from"../../../i18n.mjs";import{IntlProvider as a}from"../intl-provider/intl-provider.mjs";import{SharePlatformEnum as o}from"../../../types/share.mjs";import s from"../../../utils/share-manager.mjs";import{useEffect as c,useState as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{useTranslations as f}from"next-intl";import{createRoot as p}from"react-dom/client";let m=``;const h=[{id:o.SHARE_LINK,name:``,icon:u(t,{className:`w-full h-full`}),onClick:e=>{s.showSharePopup({type:o.SHARE_LINK,data:e,copyUrl:m})}}],g=[],_={id:``,isCollect:!1};function v(t){let n=f(`components.common.sharePopup`),{visible:r,onClose:i,onCollect:a,data:s=_,platforms:p=h,actions:m=g,cancelText:v,maskClosable:y=!0}=t,[b,x]=l(s.isCollect),S=v??n(`shareDrawer.cancel`);c(()=>{x(s.isCollect)},[s.isCollect]);function C(e){return e.name?e.name:e.id===o.SHARE_LINK?n(`shareContent.copyShareLink`):``}function w(e){window.sensors?.track?.(`detail_share_click`,{object_id:s.id,channel:e.id}),e.onClick(s),i?.()}function T(e){!e&&y&&i?.()}function E(e){return function(){w(e)}}return u(e,{side:`bottom`,open:r,onOpenChange:T,showCloseButton:!1,className:`z-[2000] !gap-0 rounded-t-[16px] bg-bg2 p-0 text-text1`,children:d(`div`,{className:`bg-bg2`,children:[p.length>0&&u(`div`,{className:`p-[24px]`,children:u(`div`,{className:`w-full h-[72px] overflow-hidden`,children:u(`div`,{className:`w-full g-scroll-box-x flex items-center`,style:{height:`calc(100% + 60px)`,paddingBottom:`60px`},children:p.map((e,t)=>d(`div`,{className:`cursor-pointer h-[100%] flex flex-col items-center justify-between ${t>0?`ml-[32px]`:``}`,onClick:E(e),children:[u(`span`,{className:`w-[48px] h-[48px] flex items-center justify-center`,children:e.icon}),u(`span`,{className:`text-text1 text-[12px] leading-[12px]`,children:C(e)})]},e.id))})})}),u(`div`,{className:`bg-bg1 mt-[4px] flex items-center justify-center`,onClick:i,children:u(`span`,{className:`text-text1 text-[16px] leading-[60px]`,children:S})})]})})}function y(){if(typeof document>`u`)return n;let e=document.documentElement?.lang||``;return i(e)?e:n}function b(e){let t=y();return u(a,{locale:t,messages:r(t),children:u(v,{...e})})}let x=null,S=null,C=null,w=``;function T(){typeof window>`u`||(C!==null&&(window.clearInterval(C),C=null),w=``)}function E(e){typeof window>`u`||(T(),w=window.location.href,C=window.setInterval(()=>{if(!S||!x){T();return}window.location.href!==w&&e()},120))}let D=null;var O=class e{static async show(t){let n=await s.initShareConfig(),r=t.initPlatforms||h.filter(e=>n[e.id]),i=t.initActions||g,{data:a,...o}=t,c={platforms:r,actions:i,maskClosable:!0,...o};D={supportActions:i,supportPlatforms:r};let l=typeof window<`u`?window.location.href:``;m=t.copyUrl||t.shareUrl||l,x||(x=document.createElement(`div`),x.style.zIndex=`2001`,document.body.appendChild(x),S=p(x)),S?.render(u(b,{visible:!1,data:a,onClose:()=>{e.clear(),c.onClose?.()},...c})),requestAnimationFrame(()=>{S?.render(u(b,{visible:!0,data:a,onClose:()=>{e.clear(),c.onClose?.()},...c}))}),E(()=>{e.clear()})}static clear(){T(),S&&x&&(S.render(u(b,{visible:!1,data:{},platforms:D?.supportPlatforms,actions:D?.supportActions,maskClosable:!0})),setTimeout(()=>{S?.unmount(),S=null,x?.parentNode&&x.parentNode.removeChild(x),x=null},300))}};export{v as SharePopupComponent,O as default,g as defaultActions,h as defaultPlatforms};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{cn as t}from"../../../utils/cn.mjs";import n from"../../../utils/get-res-url.mjs";import{decryptImageToUint8Array as r}from"../../../utils/decrypt-image-client.mjs";import{gContentGetAppChannels as i,gContentGetVideoDetail as a,pInteractionBrowse as o}from"../../../service/generated/client.mjs";import{uint8ArrayToBase64 as s}from"../../../utils/uint8.mjs";import{EmptyState as c}from"../../ui/empty.mjs";import{useRequest as l}from"../../../hooks/query/use-query.mjs";import{queryKey as u}from"../../../constants/query-key.mjs";import{useKeepAliveEffect as d,useKeepAliveState as f}from"../../common/keep-scroll-position/index.mjs";import{apiCollectClick as p}from"../../../utils/api-collect.mjs";import{batchQueryContentInteractions as m}from"../../../hooks/use-content-operate.mjs";import ee from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{VideoDetailMaterialRuntimeProvider as te}from"../../biz/business/detail/shared/runtime-context-provider.mjs";import{resolveMaterialProps as ne,videoDetailMaterials as re}from"../../biz/business/detail/shared/registry.mjs";import{DetailHero as h}from"../../biz/business/detail/shared/video-hero.mjs";import{Fragment as g,useCallback as _,useEffect as v,useMemo as y}from"react";import{Fragment as b,jsx as x,jsxs as S}from"react/jsx-runtime";import{useTranslations as ie}from"next-intl";import{useParams as C,useRouter as w,useSearchParams as ae}from"next/navigation";const T=[{id:`detail-info`,componentName:`video-detail-info`,props:{}},{id:`detail-actions`,componentName:`video-detail-actions`,props:{}},{id:`detail-recommend`,componentName:`video-detail-recommend`,props:{rows:2}}];function E({detailId:p,initialInformation:E,isWebView:D=!1,materialConfig:O}){let k=ie(`components.pages.videoDetail`),A=w(),oe=C(),se=ae(),j=oe.level,M=Array.isArray(j)?j:typeof j==`string`?[j]:[],N=M.findIndex(e=>e===`episode`),ce=N>=0?M[N+1]:M[2],P=Math.max(1,Number(ce)||1),F=Math.max(0,P-1),{data:I,isPending:L,isFetching:R,isError:z,isSuccess:B}=l(y(()=>[`video-detail`,p],[p]),async()=>p?await a({id:p}):null,{enabled:!!p}),V=y(()=>{let e=I?.data?.video;return!e||typeof e!=`object`?null:{...e,content_type:1,episode_cnt:e.links?.length||0}},[I?.data?.video]),H=E??V??null,[U,W]=f(`detail-information-${p}`,H),le=U?.links?.[F]?.id||``,G=!!p&&!U&&(L||R),K=!p||!!U||z||B,[ue,de]=f(`info-detail-active-tab-${p}`,`video`),[q,J]=f(`info-detail-comment-add-count-${p}`,0),[Y,fe]=f(`info-detail-comment-total-${p}`,void 0),X=_(async e=>{let t=String(p||``).trim();if(!t)return;let n=e.browse_episode||P,r=Date.now(),i=String(e.browse_key||r);try{await o({app_id:0,content_type:1,content_id:t,browse_duration:Number(e.browse_duration||0),browse_episode:String(n),browse_key:i,browse_page_ts:r})}catch(e){console.error(`上报播放进度失败:`,e)}},[P,p]);v(()=>{!U&&V&&W(V),window.video={[p]:U},window.getVideoInfoAsync=async()=>{let e=U?.links?.[F]?.m3u8_url||``,t=e?`${process.env.NEXT_PUBLIC_API_BASE}/api/content/processM3u8?url=${encodeURIComponent(`${n()}/m3f/${e}`)}`:``,i=U?.img_y||U?.img_x||U?.preview_images?.[0]||``,a=``,o=await r(i);return o&&(a=s(o.bytes)),{poster:a,src:t,title:U?.name||``}},window.getVideoBrowseRecordAsync=async()=>{let e=await m([p],1);return e?.interaction_list?.[0]?e.interaction_list[0].browse_record:null},window.reportVideoBrowse=X},[p,F,U,V,W,X]);let Z=_(e=>{W(t=>t&&{...t,...e})},[W]);d(()=>{U?.id&&U.id},[U?.id],`detail-page-report-${p}`),v(()=>{!U||typeof window>`u`||window.sensors?.track?.(`detail_page_view`,{object_id:U.id||p,author_id:U.up_user,object_type:U.content_type,object_category:U.content_type,object_tags:U.tags?.map(e=>e.name),block_id:``,page_source:window.location?.pathname||``})},[p,U]),v(()=>{J(0)},[le,J]),y(()=>(typeof Y==`number`?Y:0)+q,[q,Y]);let pe=_(()=>{},[!1,de]);_(()=>{J(e=>e+1)},[J]),v(()=>{},[!1,pe,U?.id,se]);let Q=_(e=>{let t=Math.max(1,Math.floor(Number(e)||1));if(typeof window>`u`)return;let n=String(U?.id||p||``).trim();if(!n)return;let r=encodeURIComponent(U?.name||``),i=`${D?`/webview`:`/video`}/${n}/${r}/episode/${t}`,{search:a,hash:o,pathname:s}=window.location,c=`${i}${a}${o}`;`${s}${a}${o}`!==c&&A.replace(c,{scroll:!1})},[p,U?.id,U?.name,D,A]),$=U?.status===`1`,{data:me}=l([u.CHANNEL],()=>i()),he=e(me?.data),ge=y(()=>{if(O!==void 0){let e=new Map(T.map(e=>[e.componentName,e]));return O.map(t=>{let n=e.get(t.componentName);return{...n,...t,props:{...n?.props??{},...t.props??{}}}})}return T},[O]),_e=y(()=>({information:U??void 0,currentSeriesNum:P,onEpisodeChange:Q,onUpdateInformation:Z,detailId:p,episodeIndex:F,isShow:!0,isWebView:D,isInformationLoading:G,isInformationResolved:K}),[P,p,F,Q,Z,U,G,K,D,!0]),ve=_(e=>{if(!U)return null;let t=re[e.componentName];if(!t)return null;let n=t.clientComponent,r=ne(t,e.props);return r.isValid?x(n,{...r.props}):x(`div`,{children:`组件配置错误`})},[U]);return S(`div`,{className:`w-full min-h-screen bg-bg2 text-text1 ${D?``:`pt-11`}`,children:[!D&&x(`div`,{className:`fixed bg-black top-0 left-0 right-0 z-[1000]`,children:x(ee,{data:{list:he}})}),x(`div`,{className:`mx-auto w-full max-w-[840px] pb-6`,children:S(b,{children:[U&&!$&&x(c,{type:`no-content`,text:k(`videoDetailClient.videoUnavailable`)}),U&&$&&S(b,{children:[!D&&x(h,{isVideo:!0,information:U,episodeIndex:F}),x(`div`,{id:`selectPopupPosition`,className:`w-full`}),!1,S(`div`,{className:t(`w-full`,!1),children:[x(te,{value:_e,children:ge.map(e=>x(g,{children:ve(e)},e.id))}),!1]}),!1]}),!U&&x(c,{type:`no-content`,text:k(`videoDetailClient.videoDeleted`)})]})})]})}export{E as default};
2
+ "use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{cn as t}from"../../../utils/cn.mjs";import n from"../../../utils/get-res-url.mjs";import{decryptImageToUint8Array as r}from"../../../utils/decrypt-image-client.mjs";import{gContentGetAppChannels as i,gContentGetVideoDetail as a,pInteractionBrowse as o}from"../../../service/generated/client.mjs";import{uint8ArrayToBase64 as s}from"../../../utils/uint8.mjs";import{EmptyState as c}from"../../ui/empty.mjs";import{useRequest as l}from"../../../hooks/query/use-query.mjs";import{queryKey as u}from"../../../constants/query-key.mjs";import{useKeepAliveEffect as d,useKeepAliveState as f}from"../../common/keep-scroll-position/index.mjs";import{apiCollectClick as p}from"../../../utils/api-collect.mjs";import{batchQueryContentInteractions as m}from"../../../hooks/use-content-operate.mjs";import ee from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{VideoDetailMaterialRuntimeProvider as te}from"../../biz/business/detail/shared/runtime-context-provider.mjs";import{resolveMaterialProps as ne,videoDetailMaterials as re}from"../../biz/business/detail/shared/registry.mjs";import{DetailHero as h}from"../../biz/business/detail/shared/video-hero.mjs";import{Fragment as g,useCallback as _,useEffect as v,useMemo as y}from"react";import{Fragment as b,jsx as x,jsxs as S}from"react/jsx-runtime";import{useTranslations as ie}from"next-intl";import{useParams as C,useRouter as w,useSearchParams as ae}from"next/navigation";const T=[{id:`detail-info`,componentName:`video-detail-info-title-tags-episodes`,props:{}},{id:`detail-actions`,componentName:`video-detail-actions`,props:{}},{id:`detail-recommend`,componentName:`video-detail-recommend`,props:{rows:2}}];function E({detailId:p,initialInformation:E,isWebView:D=!1,materialConfig:O}){let k=ie(`components.pages.videoDetail`),A=w(),oe=C(),se=ae(),j=oe.level,M=Array.isArray(j)?j:typeof j==`string`?[j]:[],N=M.findIndex(e=>e===`episode`),ce=N>=0?M[N+1]:M[2],P=Math.max(1,Number(ce)||1),F=Math.max(0,P-1),{data:I,isPending:L,isFetching:R,isError:z,isSuccess:B}=l(y(()=>[`video-detail`,p],[p]),async()=>p?await a({id:p}):null,{enabled:!!p}),V=y(()=>{let e=I?.data?.video;return!e||typeof e!=`object`?null:{...e,content_type:1,episode_cnt:e.links?.length||0}},[I?.data?.video]),H=E??V??null,[U,W]=f(`detail-information-${p}`,H),le=U?.links?.[F]?.id||``,G=!!p&&!U&&(L||R),K=!p||!!U||z||B,[ue,de]=f(`info-detail-active-tab-${p}`,`video`),[q,J]=f(`info-detail-comment-add-count-${p}`,0),[Y,fe]=f(`info-detail-comment-total-${p}`,void 0),X=_(async e=>{let t=String(p||``).trim();if(!t)return;let n=e.browse_episode||P,r=Date.now(),i=String(e.browse_key||r);try{await o({app_id:0,content_type:1,content_id:t,browse_duration:Number(e.browse_duration||0),browse_episode:String(n),browse_key:i,browse_page_ts:r})}catch(e){console.error(`上报播放进度失败:`,e)}},[P,p]);v(()=>{!U&&V&&W(V),window.video={[p]:U},window.getVideoInfoAsync=async()=>{let e=U?.links?.[F]?.m3u8_url||``,t=e?`${process.env.NEXT_PUBLIC_API_BASE}/api/content/processM3u8?url=${encodeURIComponent(`${n()}/m3f/${e}`)}`:``,i=U?.img_y||U?.img_x||U?.preview_images?.[0]||``,a=``,o=await r(i);return o&&(a=s(o.bytes)),{poster:a,src:t,title:U?.name||``}},window.getVideoBrowseRecordAsync=async()=>{let e=await m([p],1);return e?.interaction_list?.[0]?e.interaction_list[0].browse_record:null},window.reportVideoBrowse=X},[p,F,U,V,W,X]);let Z=_(e=>{W(t=>t&&{...t,...e})},[W]);d(()=>{U?.id&&U.id},[U?.id],`detail-page-report-${p}`),v(()=>{!U||typeof window>`u`||window.sensors?.track?.(`detail_page_view`,{object_id:U.id||p,author_id:U.up_user,object_type:U.content_type,object_category:U.content_type,object_tags:U.tags?.map(e=>e.name),block_id:``,page_source:window.location?.pathname||``})},[p,U]),v(()=>{J(0)},[le,J]),y(()=>(typeof Y==`number`?Y:0)+q,[q,Y]);let pe=_(()=>{},[!1,de]);_(()=>{J(e=>e+1)},[J]),v(()=>{},[!1,pe,U?.id,se]);let Q=_(e=>{let t=Math.max(1,Math.floor(Number(e)||1));if(typeof window>`u`)return;let n=String(U?.id||p||``).trim();if(!n)return;let r=encodeURIComponent(U?.name||``),i=`${D?`/webview`:`/video`}/${n}/${r}/episode/${t}`,{search:a,hash:o,pathname:s}=window.location,c=`${i}${a}${o}`;`${s}${a}${o}`!==c&&A.replace(c,{scroll:!1})},[p,U?.id,U?.name,D,A]),$=U?.status===`1`,{data:me}=l([u.CHANNEL],()=>i()),he=e(me?.data),ge=y(()=>{if(O!==void 0){let e=new Map(T.map(e=>[e.componentName,e]));return O.map(t=>{let n=e.get(t.componentName);return{...n,...t,props:{...n?.props??{},...t.props??{}}}})}return T},[O]),_e=y(()=>({information:U??void 0,currentSeriesNum:P,onEpisodeChange:Q,onUpdateInformation:Z,detailId:p,episodeIndex:F,isShow:!0,isWebView:D,isInformationLoading:G,isInformationResolved:K}),[P,p,F,Q,Z,U,G,K,D,!0]),ve=_(e=>{if(!U)return null;let t=re[e.componentName];if(!t)return null;let n=t.clientComponent,r=ne(t,e.props);return r.isValid?x(n,{...r.props}):x(`div`,{children:`组件配置错误`})},[U]);return S(`div`,{className:`w-full min-h-screen bg-bg2 text-text1 ${D?``:`pt-11`}`,children:[!D&&x(`div`,{className:`fixed bg-black top-0 left-0 right-0 z-[1000]`,children:x(ee,{data:{list:he}})}),x(`div`,{className:`mx-auto w-full max-w-[840px] pb-6`,children:S(b,{children:[U&&!$&&x(c,{type:`no-content`,text:k(`videoDetailClient.videoUnavailable`)}),U&&$&&S(b,{children:[!D&&x(h,{isVideo:!0,information:U,episodeIndex:F}),x(`div`,{id:`selectPopupPosition`,className:`w-full`}),!1,S(`div`,{className:t(`w-full`,!1),children:[x(te,{value:_e,children:ge.map(e=>x(g,{children:ve(e)},e.id))}),!1]}),!1]}),!U&&x(c,{type:`no-content`,text:k(`videoDetailClient.videoDeleted`)})]})})]})}export{E as default};
@@ -6,7 +6,7 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
6
6
  //#region components/ui/badge.d.ts
7
7
  /** badgeVariants 工具定义。 */
8
8
  declare const badgeVariants: (props?: ({
9
- variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
9
+ variant?: "default" | "link" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
10
10
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
11
11
  /** Badge 组件。 */
12
12
  declare function Badge({
@@ -7,8 +7,8 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
7
7
  //#region components/ui/button.d.ts
8
8
  /** buttonVariants 工具定义。 */
9
9
  declare const buttonVariants: (props?: ({
10
- variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
11
- size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
10
+ variant?: "default" | "link" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
11
+ size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
12
12
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
13
13
  /** Button 组件属性。 */
14
14
  type ButtonProps = Button.Props & VariantProps<typeof buttonVariants> & {
@@ -6,8 +6,6 @@ import { videoDetailPlayerMaterial } from "./components/biz/business/detail/vide
6
6
  import "./components/biz/business/detail/video-detail-player/index.mjs";
7
7
  import { videoDetailInfoMaterial } from "./components/biz/business/detail/video-detail-info/material.mjs";
8
8
  import "./components/biz/business/detail/video-detail-info/index.mjs";
9
- import { videoDetailInfoTitleMaterial } from "./components/biz/business/detail/video-detail-info-title/material.mjs";
10
- import "./components/biz/business/detail/video-detail-info-title/index.mjs";
11
9
  import { videoDetailInfoTitleTagsEpisodesMaterial } from "./components/biz/business/detail/video-detail-info-title-tags-episodes/material.mjs";
12
10
  import "./components/biz/business/detail/video-detail-info-title-tags-episodes/index.mjs";
13
11
  import { videoDetailActionsMaterial } from "./components/biz/business/detail/video-detail-actions/material.mjs";
@@ -33,4 +31,4 @@ import { headerSearchMaterial } from "./components/biz/business/header-search/he
33
31
  import "./components/biz/business/header-search/index.mjs";
34
32
  import { largeFeatureGridMaterial } from "./components/biz/business/large-feature-grid/material.mjs";
35
33
  import { shortcutGridMaterial } from "./components/biz/business/shortcut-grid/material.mjs";
36
- export { BannerCarouselMaterial, channelListMaterial, exampleButtonMaterial, floatingBallMaterial, headerAvatarIconMaterial, headerAvatarLogoSearchIconMaterial, headerAvatarLogoSearchMaterial, headerLogoSearchMaterial, headerSearchMaterial, homeRecommendGridMaterial, homeRecommendWaterfallMaterial, imageTextRecommendMaterial, largeFeatureGridMaterial, marqueeMaterial, profileHeaderMaterial, profileHeaderMaterialWithDisabledBackground, profileMainMaterial, searchHistoryMaterial, searchInputMaterial, shortcutGridMaterial, tabBarMaterial, textRecommendMaterial, videoDetailActionsMaterial, videoDetailInfoMaterial, videoDetailInfoTitleMaterial, videoDetailInfoTitleTagsEpisodesMaterial, videoDetailPlayerMaterial, videoDetailRecommendMaterial };
34
+ export { BannerCarouselMaterial, channelListMaterial, exampleButtonMaterial, floatingBallMaterial, headerAvatarIconMaterial, headerAvatarLogoSearchIconMaterial, headerAvatarLogoSearchMaterial, headerLogoSearchMaterial, headerSearchMaterial, homeRecommendGridMaterial, homeRecommendWaterfallMaterial, imageTextRecommendMaterial, largeFeatureGridMaterial, marqueeMaterial, profileHeaderMaterial, profileHeaderMaterialWithDisabledBackground, profileMainMaterial, searchHistoryMaterial, searchInputMaterial, shortcutGridMaterial, tabBarMaterial, textRecommendMaterial, videoDetailActionsMaterial, videoDetailInfoMaterial, videoDetailInfoTitleTagsEpisodesMaterial, videoDetailPlayerMaterial, videoDetailRecommendMaterial };
@@ -1,2 +1,2 @@
1
1
 
2
- import{__exportAll as e}from"./_virtual/_rolldown/runtime.mjs";import{floatingBallMaterial as t}from"./components/biz/business/floating-ball/material.mjs";import{homeRecommendGridMaterial as n}from"./components/biz/business/home-recommend/home-recommend-grid/material.mjs";import{homeRecommendWaterfallMaterial as r}from"./components/biz/business/home-recommend/home-recommend-waterfall/material.mjs";import{imageTextRecommendMaterial as i}from"./components/biz/business/image-text-recommend/material.mjs";import{marqueeMaterial as a}from"./components/biz/business/marquee/material.mjs";import{profileHeaderMaterial as o,profileHeaderMaterialWithDisabledBackground as s}from"./components/biz/business/profile/profile-header/material.mjs";import{profileMainMaterial as c}from"./components/biz/business/profile/profile-main/material.mjs";import{searchHistoryMaterial as l}from"./components/biz/business/search-history/material.mjs";import{searchInputMaterial as u}from"./components/biz/business/search-input/material.mjs";import{tabBarMaterial as d}from"./components/biz/business/tab-bar/material.mjs";import{textRecommendMaterial as f}from"./components/biz/business/text-recommend/material.mjs";import{exampleButtonMaterial as p}from"./components/biz/example/button/material.mjs";import{BannerCarouselMaterial as m}from"./components/biz/business/banner-carousel/material.mjs";import{channelListMaterial as h}from"./components/biz/business/channel-list/material.mjs";import{videoDetailInfoMaterial as g}from"./components/biz/business/detail/video-detail-info/material.mjs";import{videoDetailInfoTitleMaterial as _}from"./components/biz/business/detail/video-detail-info-title/material.mjs";import{videoDetailInfoTitleTagsEpisodesMaterial as v}from"./components/biz/business/detail/video-detail-info-title-tags-episodes/material.mjs";import{videoDetailPlayerMaterial as y}from"./components/biz/business/detail/video-detail-player/material.mjs";import{videoDetailRecommendMaterial as b}from"./components/biz/business/detail/video-detail-recommend/material.mjs";import{videoDetailActionsMaterial as x}from"./components/biz/business/detail/video-detail-actions/material.mjs";import{headerAvatarIconMaterial as S}from"./components/biz/business/header-search/header-avatar-icon/material.mjs";import{headerAvatarLogoSearchMaterial as C}from"./components/biz/business/header-search/header-avatar-logo-search/material.mjs";import{headerAvatarLogoSearchIconMaterial as w}from"./components/biz/business/header-search/header-avatar-logo-search-icon/material.mjs";import{headerLogoSearchMaterial as T}from"./components/biz/business/header-search/header-logo-search/material.mjs";import{headerSearchMaterial as E}from"./components/biz/business/header-search/header-search/material.mjs";import{largeFeatureGridMaterial as D}from"./components/biz/business/large-feature-grid/material.mjs";import{shortcutGridMaterial as O}from"./components/biz/business/shortcut-grid/material.mjs";var k=e({BannerCarouselMaterial:()=>m,channelListMaterial:()=>h,exampleButtonMaterial:()=>p,floatingBallMaterial:()=>t,headerAvatarIconMaterial:()=>S,headerAvatarLogoSearchIconMaterial:()=>w,headerAvatarLogoSearchMaterial:()=>C,headerLogoSearchMaterial:()=>T,headerSearchMaterial:()=>E,homeRecommendGridMaterial:()=>n,homeRecommendWaterfallMaterial:()=>r,imageTextRecommendMaterial:()=>i,largeFeatureGridMaterial:()=>D,marqueeMaterial:()=>a,profileHeaderMaterial:()=>o,profileHeaderMaterialWithDisabledBackground:()=>s,profileMainMaterial:()=>c,searchHistoryMaterial:()=>l,searchInputMaterial:()=>u,shortcutGridMaterial:()=>O,tabBarMaterial:()=>d,textRecommendMaterial:()=>f,videoDetailActionsMaterial:()=>x,videoDetailInfoMaterial:()=>g,videoDetailInfoTitleMaterial:()=>_,videoDetailInfoTitleTagsEpisodesMaterial:()=>v,videoDetailPlayerMaterial:()=>y,videoDetailRecommendMaterial:()=>b});export{m as BannerCarouselMaterial,h as channelListMaterial,p as exampleButtonMaterial,t as floatingBallMaterial,S as headerAvatarIconMaterial,w as headerAvatarLogoSearchIconMaterial,C as headerAvatarLogoSearchMaterial,T as headerLogoSearchMaterial,E as headerSearchMaterial,n as homeRecommendGridMaterial,r as homeRecommendWaterfallMaterial,i as imageTextRecommendMaterial,D as largeFeatureGridMaterial,a as marqueeMaterial,k as materials_exports,o as profileHeaderMaterial,s as profileHeaderMaterialWithDisabledBackground,c as profileMainMaterial,l as searchHistoryMaterial,u as searchInputMaterial,O as shortcutGridMaterial,d as tabBarMaterial,f as textRecommendMaterial,x as videoDetailActionsMaterial,g as videoDetailInfoMaterial,_ as videoDetailInfoTitleMaterial,v as videoDetailInfoTitleTagsEpisodesMaterial,y as videoDetailPlayerMaterial,b as videoDetailRecommendMaterial};
2
+ import{__exportAll as e}from"./_virtual/_rolldown/runtime.mjs";import{floatingBallMaterial as t}from"./components/biz/business/floating-ball/material.mjs";import{homeRecommendGridMaterial as n}from"./components/biz/business/home-recommend/home-recommend-grid/material.mjs";import{homeRecommendWaterfallMaterial as r}from"./components/biz/business/home-recommend/home-recommend-waterfall/material.mjs";import{imageTextRecommendMaterial as i}from"./components/biz/business/image-text-recommend/material.mjs";import{marqueeMaterial as a}from"./components/biz/business/marquee/material.mjs";import{profileHeaderMaterial as o,profileHeaderMaterialWithDisabledBackground as s}from"./components/biz/business/profile/profile-header/material.mjs";import{profileMainMaterial as c}from"./components/biz/business/profile/profile-main/material.mjs";import{searchHistoryMaterial as l}from"./components/biz/business/search-history/material.mjs";import{searchInputMaterial as u}from"./components/biz/business/search-input/material.mjs";import{tabBarMaterial as d}from"./components/biz/business/tab-bar/material.mjs";import{textRecommendMaterial as f}from"./components/biz/business/text-recommend/material.mjs";import{exampleButtonMaterial as p}from"./components/biz/example/button/material.mjs";import{BannerCarouselMaterial as m}from"./components/biz/business/banner-carousel/material.mjs";import{channelListMaterial as h}from"./components/biz/business/channel-list/material.mjs";import{videoDetailInfoMaterial as g}from"./components/biz/business/detail/video-detail-info/material.mjs";import{videoDetailInfoTitleTagsEpisodesMaterial as _}from"./components/biz/business/detail/video-detail-info-title-tags-episodes/material.mjs";import{videoDetailPlayerMaterial as v}from"./components/biz/business/detail/video-detail-player/material.mjs";import{videoDetailRecommendMaterial as y}from"./components/biz/business/detail/video-detail-recommend/material.mjs";import{videoDetailActionsMaterial as b}from"./components/biz/business/detail/video-detail-actions/material.mjs";import{headerAvatarIconMaterial as x}from"./components/biz/business/header-search/header-avatar-icon/material.mjs";import{headerAvatarLogoSearchMaterial as S}from"./components/biz/business/header-search/header-avatar-logo-search/material.mjs";import{headerAvatarLogoSearchIconMaterial as C}from"./components/biz/business/header-search/header-avatar-logo-search-icon/material.mjs";import{headerLogoSearchMaterial as w}from"./components/biz/business/header-search/header-logo-search/material.mjs";import{headerSearchMaterial as T}from"./components/biz/business/header-search/header-search/material.mjs";import{largeFeatureGridMaterial as E}from"./components/biz/business/large-feature-grid/material.mjs";import{shortcutGridMaterial as D}from"./components/biz/business/shortcut-grid/material.mjs";var O=e({BannerCarouselMaterial:()=>m,channelListMaterial:()=>h,exampleButtonMaterial:()=>p,floatingBallMaterial:()=>t,headerAvatarIconMaterial:()=>x,headerAvatarLogoSearchIconMaterial:()=>C,headerAvatarLogoSearchMaterial:()=>S,headerLogoSearchMaterial:()=>w,headerSearchMaterial:()=>T,homeRecommendGridMaterial:()=>n,homeRecommendWaterfallMaterial:()=>r,imageTextRecommendMaterial:()=>i,largeFeatureGridMaterial:()=>E,marqueeMaterial:()=>a,profileHeaderMaterial:()=>o,profileHeaderMaterialWithDisabledBackground:()=>s,profileMainMaterial:()=>c,searchHistoryMaterial:()=>l,searchInputMaterial:()=>u,shortcutGridMaterial:()=>D,tabBarMaterial:()=>d,textRecommendMaterial:()=>f,videoDetailActionsMaterial:()=>b,videoDetailInfoMaterial:()=>g,videoDetailInfoTitleTagsEpisodesMaterial:()=>_,videoDetailPlayerMaterial:()=>v,videoDetailRecommendMaterial:()=>y});export{m as BannerCarouselMaterial,h as channelListMaterial,p as exampleButtonMaterial,t as floatingBallMaterial,x as headerAvatarIconMaterial,C as headerAvatarLogoSearchIconMaterial,S as headerAvatarLogoSearchMaterial,w as headerLogoSearchMaterial,T as headerSearchMaterial,n as homeRecommendGridMaterial,r as homeRecommendWaterfallMaterial,i as imageTextRecommendMaterial,E as largeFeatureGridMaterial,a as marqueeMaterial,O as materials_exports,o as profileHeaderMaterial,s as profileHeaderMaterialWithDisabledBackground,c as profileMainMaterial,l as searchHistoryMaterial,u as searchInputMaterial,D as shortcutGridMaterial,d as tabBarMaterial,f as textRecommendMaterial,b as videoDetailActionsMaterial,g as videoDetailInfoMaterial,_ as videoDetailInfoTitleTagsEpisodesMaterial,v as videoDetailPlayerMaterial,y as videoDetailRecommendMaterial};
@@ -1,2 +1,2 @@
1
1
 
2
- import{Dialog as e,DialogContent as t}from"../components/ui/dialog.mjs";import n from"../components/common/share-popup/share-content.mjs";import{defaultLocale as r,getMessages as i,isValidLocale as a}from"../i18n.mjs";import{IntlProvider as o}from"../components/common/intl-provider/intl-provider.mjs";import{SharePlatformEnum as s}from"../types/share.mjs";import{jsx as c}from"react/jsx-runtime";import{createRoot as l}from"react-dom/client";const u=`session_share_config`;function d(){return{domain:``,[s.QQ]:!0,[s.SAVE]:!0,[s.SHARE_LINK]:!0,[s.WECHAT]:!0,[s.WECHAT_MOMENTS]:!0}}function f(r){let{visible:i,onClose:a,type:o,data:s,copyUrl:l}=r;function u(e){e||a()}return c(e,{open:i,onOpenChange:u,children:c(t,{showCloseButton:!1,className:`z-[2000] w-[calc(100%-48px)] max-w-[360px] overflow-hidden rounded-[16px] bg-bg1 p-0 text-text1`,children:c(n,{type:o,data:s,copyUrl:l,onClose:a})})})}function p(){if(typeof document>`u`)return r;let e=document.documentElement?.lang||``;return a(e)?e:r}function m(e){let t=p();return c(o,{locale:t,messages:i(t),children:c(f,{...e})})}let h=null,g=null;var _=class e{static async initShareConfig(){let e=d();try{let t=sessionStorage.getItem(u);t?e=JSON.parse(t):sessionStorage.setItem(u,JSON.stringify(e))}catch(e){console.error(`获取分享配置失败:`,e)}return e}static showSharePopup({type:t,data:n,copyUrl:r}){h||(h=document.createElement(`div`),h.style.zIndex=`2001`,document.body.appendChild(h),g=l(h)),g?.render(c(m,{visible:!1,type:t,data:n,copyUrl:r,onClose:()=>{e.clear()}})),requestAnimationFrame(()=>{g?.render(c(m,{visible:!0,type:t,data:n,copyUrl:r,onClose:()=>{e.clear()}}))})}static clear(){g&&h&&(g.render(c(m,{visible:!1,type:s.SHARE_LINK,data:{id:``},copyUrl:``,onClose:()=>{e.clear()}})),setTimeout(()=>{g?.unmount(),g=null,h?.parentNode&&h.parentNode.removeChild(h),h=null},300))}};export{_ as default};
2
+ import{Dialog as e,DialogContent as t}from"../components/ui/dialog.mjs";import n from"../components/common/share-popup/share-content.mjs";import{defaultLocale as r,getMessages as i,isValidLocale as a}from"../i18n.mjs";import{IntlProvider as o}from"../components/common/intl-provider/intl-provider.mjs";import{SharePlatformEnum as s}from"../types/share.mjs";import{jsx as c}from"react/jsx-runtime";import{createRoot as l}from"react-dom/client";const u=`session_share_config`;function d(){return{domain:``,[s.QQ]:!0,[s.SAVE]:!0,[s.SHARE_LINK]:!0,[s.WECHAT]:!0,[s.WECHAT_MOMENTS]:!0}}function f(r){let{visible:i,onClose:a,type:o,data:s,copyUrl:l}=r;function u(e){e||a()}return c(e,{open:i,onOpenChange:u,children:c(t,{showCloseButton:!1,className:`z-[2000] w-[calc(100%-48px)] max-w-[360px] overflow-hidden rounded-[16px] bg-bg1 p-0 text-text1`,children:c(n,{type:o,data:s,copyUrl:l,visible:i,onClose:a})})})}function p(){if(typeof document>`u`)return r;let e=document.documentElement?.lang||``;return a(e)?e:r}function m(e){let t=p();return c(o,{locale:t,messages:i(t),children:c(f,{...e})})}let h=null,g=null,_=null,v=``;function y(){typeof window>`u`||(_!==null&&(window.clearInterval(_),_=null),v=``)}function b(e){typeof window>`u`||(y(),v=window.location.href,_=window.setInterval(()=>{if(!g||!h){y();return}window.location.href!==v&&e()},120))}var x=class e{static async initShareConfig(){let e=d();try{let t=sessionStorage.getItem(u);t?e=JSON.parse(t):sessionStorage.setItem(u,JSON.stringify(e))}catch(e){console.error(`获取分享配置失败:`,e)}return e}static showSharePopup({type:t,data:n,copyUrl:r}){h||(h=document.createElement(`div`),h.style.zIndex=`2001`,document.body.appendChild(h),g=l(h)),g?.render(c(m,{visible:!1,type:t,data:n,copyUrl:r,onClose:()=>{e.clear()}})),requestAnimationFrame(()=>{g?.render(c(m,{visible:!0,type:t,data:n,copyUrl:r,onClose:()=>{e.clear()}}))}),b(()=>{e.clear()})}static clear(){y(),g&&h&&(g.render(c(m,{visible:!1,type:s.SHARE_LINK,data:{id:``},copyUrl:``,onClose:()=>{e.clear()}})),setTimeout(()=>{g?.unmount(),g=null,h?.parentNode&&h.parentNode.removeChild(h),h=null},300))}};export{x as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@funhub/platform",
3
3
  "type": "module",
4
- "version": "0.1.104",
4
+ "version": "0.1.106",
5
5
  "private": false,
6
6
  "sideEffects": [
7
7
  "**/*.css"
@@ -1,13 +0,0 @@
1
-
2
- import { VideoDetailInfoTitleProps } from "./schema.mjs";
3
- import * as react_jsx_runtime0 from "react/jsx-runtime";
4
-
5
- //#region components/biz/business/detail/video-detail-info-title/client.d.ts
6
- /**
7
- * 媒体信息物料客户端组件。
8
- */
9
- declare function VideoDetailInfoTitleClient({
10
- mode
11
- }: VideoDetailInfoTitleProps): react_jsx_runtime0.JSX.Element | null;
12
- //#endregion
13
- export { VideoDetailInfoTitleClient };
@@ -1,2 +0,0 @@
1
-
2
- "use client";import{Box as e}from"../../../../ui/box.mjs";import{useCardDecoration as t}from"../../../../../hooks/use-card-decoration.mjs";import{DetailInfoTitle as n}from"../shared/detail-info-title.mjs";import{editorPreviewInformation as r}from"../shared/editor-preview.mjs";import{useVideoDetailMaterialRuntimeContext as i}from"../shared/runtime-context-provider.mjs";import{jsx as a}from"react/jsx-runtime";function o({mode:o=`renderer`}){let s=i()?.information,c=o===`editor`,{getTitleText:l}=t(),u=c?r:s;if(!u)return null;let d=l(u);return d?a(e,{className:`w-full mt-[16px] px-[12px]`,children:a(n,{title:d})}):null}export{o as VideoDetailInfoTitleClient};
@@ -1,5 +0,0 @@
1
-
2
- import { VideoDetailInfoTitleInspectorProps, VideoDetailInfoTitleProps, videoDetailInfoTitleInspectorPropsSchema } from "./schema.mjs";
3
- import { VideoDetailInfoTitleClient } from "./client.mjs";
4
- import { VideoDetailInfoTitle } from "./server.mjs";
5
- import { videoDetailInfoTitleMaterial } from "./material.mjs";
@@ -1,16 +0,0 @@
1
-
2
- import { DefineMaterialOption } from "../../../../../utils/schema/material.mjs";
3
- import { VideoDetailInfoTitleClient } from "./client.mjs";
4
- import { VideoDetailInfoTitle } from "./server.mjs";
5
- import * as zod from "zod";
6
- import * as zod_v4_core0 from "zod/v4/core";
7
-
8
- //#region components/biz/business/detail/video-detail-info-title/material.d.ts
9
- declare const videoDetailInfoTitleMaterial: DefineMaterialOption<typeof VideoDetailInfoTitle, typeof VideoDetailInfoTitleClient, zod.ZodObject<{
10
- mode: zod.ZodOptional<zod.ZodEnum<{
11
- renderer: "renderer";
12
- editor: "editor";
13
- }>>;
14
- }, zod_v4_core0.$strip>, "video-detail-info-title", "内容组件">;
15
- //#endregion
16
- export { videoDetailInfoTitleMaterial };
@@ -1,2 +0,0 @@
1
-
2
- import{defineMaterial as e}from"../../../../../utils/schema/material.mjs";import{VideoDetailInfoTitleClient as t}from"./client.mjs";import{videoDetailInfoTitleInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailInfoTitle as r}from"./server.mjs";const i=e({type:`video-detail-info-title`,name:`专辑信息样式1`,icon:`/static/components-thumb/media_info_basic.png`,category:`内容组件`,serverComponent:r,clientComponent:t,propsSchema:n});export{i as videoDetailInfoTitleMaterial};
@@ -1,21 +0,0 @@
1
-
2
- import { InferSchemaProps } from "../../../../../utils/schema/schema.mjs";
3
- import "../../../../../utils/schema/index.mjs";
4
- import * as zod from "zod";
5
- import * as zod_v4_core0 from "zod/v4/core";
6
-
7
- //#region components/biz/business/detail/video-detail-info-title/schema.d.ts
8
- /**
9
- * 媒体信息物料暂不对外开放配置。
10
- */
11
- declare const videoDetailInfoTitleInspectorPropsSchema: zod.ZodObject<{
12
- mode: zod.ZodOptional<zod.ZodEnum<{
13
- renderer: "renderer";
14
- editor: "editor";
15
- }>>;
16
- }, zod_v4_core0.$strip>;
17
- type VideoDetailInfoTitleInspectorProps = InferSchemaProps<typeof videoDetailInfoTitleInspectorPropsSchema>;
18
- /** 媒体信息物料 props。 */
19
- type VideoDetailInfoTitleProps = VideoDetailInfoTitleInspectorProps;
20
- //#endregion
21
- export { VideoDetailInfoTitleInspectorProps, VideoDetailInfoTitleProps, videoDetailInfoTitleInspectorPropsSchema };
@@ -1,2 +0,0 @@
1
-
2
- import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";const n=e({});t(n);export{n as videoDetailInfoTitleInspectorPropsSchema};
@@ -1,15 +0,0 @@
1
-
2
- import { VideoDetailInfoTitleProps } from "./schema.mjs";
3
- import * as react_jsx_runtime0 from "react/jsx-runtime";
4
-
5
- //#region components/biz/business/detail/video-detail-info-title/server.d.ts
6
- interface VideoDetailInfoTitleServerProps extends VideoDetailInfoTitleProps {
7
- detailId?: string;
8
- __route?: unknown;
9
- }
10
- /**
11
- * 媒体信息物料服务端组件。
12
- */
13
- declare function VideoDetailInfoTitle(props: VideoDetailInfoTitleServerProps): Promise<react_jsx_runtime0.JSX.Element>;
14
- //#endregion
15
- export { VideoDetailInfoTitle };
@@ -1,2 +0,0 @@
1
-
2
- import{VideoDetailMaterialRuntimeProvider as e}from"../shared/runtime-context-provider.mjs";import{resolveVideoDetailRouteFromMaterialContext as t}from"../shared/material-route-context.mjs";import{getVideoDetailServerInformation as n}from"../shared/video-detail-server-data.mjs";import{VideoDetailInfoTitleClient as r}from"./client.mjs";import{jsx as i}from"react/jsx-runtime";async function a(a){let{mode:o=`renderer`,detailId:s,__route:c,...l}=a;if(o!==`renderer`)return i(r,{...l,mode:o});let u=t(c),d=String(s||u.detailId||``).trim();if(!d)return i(r,{...l,mode:o});let f=await n(d);return f?i(e,{value:{information:f,detailId:d,isShow:!0,isInformationLoading:!1,isInformationResolved:!0},children:i(r,{...l,mode:o})}):i(r,{...l,mode:o})}export{a as VideoDetailInfoTitle};