@funhub/platform 0.2.1-beta.6 → 0.2.2

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 (202) hide show
  1. package/dist/assets/icons/channel-list/channel-active-indicator.mjs +2 -0
  2. package/dist/assets/icons/common/header-menu.mjs +2 -0
  3. package/dist/assets/icons/common/header-search-icon.mjs +2 -0
  4. package/dist/assets/icons/common/right_arrow_thin.mjs +2 -0
  5. package/dist/assets/icons/eye-off-icon.mjs +1 -1
  6. package/dist/assets/icons/marquee-close.mjs +2 -0
  7. package/dist/assets/icons/marquee-speaker.mjs +2 -0
  8. package/dist/assets/images/shortcut-grid/shortcut-grid-card-bg-primary.mjs +2 -0
  9. package/dist/biz.d.mts +10 -3
  10. package/dist/biz.mjs +1 -1
  11. package/dist/common.d.mts +5 -2
  12. package/dist/common.mjs +1 -1
  13. package/dist/components/biz/business/advertisement/ad-match.mjs +1 -1
  14. package/dist/components/biz/business/advertisement/banner-ad/client.mjs +1 -1
  15. package/dist/components/biz/business/advertisement/banner-ad/material.d.mts +1 -1
  16. package/dist/components/biz/business/advertisement/banner-ad/material.mjs +1 -1
  17. package/dist/components/biz/business/advertisement/banner-ad/schema.d.mts +3 -3
  18. package/dist/components/biz/business/advertisement/banner-ad/schema.mjs +1 -1
  19. package/dist/components/biz/business/advertisement/floating-ad/client.mjs +1 -1
  20. package/dist/components/biz/business/advertisement/floating-ad/material.mjs +1 -1
  21. package/dist/components/biz/business/advertisement/icon-ad/client.mjs +1 -1
  22. package/dist/components/biz/business/advertisement/icon-ad/material.mjs +1 -1
  23. package/dist/components/biz/business/advertisement/icon-ad/schema.mjs +1 -1
  24. package/dist/components/biz/business/advertisement/index.d.mts +1 -1
  25. package/dist/components/biz/business/advertisement/popup-ad/client.mjs +2 -2
  26. package/dist/components/biz/business/advertisement/popup-ad/index.d.mts +1 -1
  27. package/dist/components/biz/business/advertisement/popup-ad/material.d.mts +2 -2
  28. package/dist/components/biz/business/advertisement/popup-ad/material.mjs +1 -1
  29. package/dist/components/biz/business/advertisement/popup-ad/schema.d.mts +5 -14
  30. package/dist/components/biz/business/advertisement/popup-ad/schema.mjs +1 -1
  31. package/dist/components/biz/business/advertisement/text-ad/client.mjs +1 -1
  32. package/dist/components/biz/business/advertisement/text-ad/material.mjs +1 -1
  33. package/dist/components/biz/business/banner-carousel/client.mjs +1 -1
  34. package/dist/components/biz/business/channel-list/client.mjs +1 -1
  35. package/dist/components/biz/business/channel-list/default-props.mjs +1 -1
  36. package/dist/components/biz/business/detail/shared/detail-operate.mjs +1 -1
  37. package/dist/components/biz/business/detail/shared/editor-preview.mjs +1 -1
  38. package/dist/components/biz/business/detail/shared/registry.d.mts +36 -1
  39. package/dist/components/biz/business/detail/shared/registry.mjs +1 -1
  40. package/dist/components/biz/business/detail/video-detail-actions/client.mjs +1 -1
  41. package/dist/components/biz/business/detail/video-detail-info/client.mjs +1 -1
  42. package/dist/components/biz/business/detail/video-detail-recommend/client.d.mts +1 -13
  43. package/dist/components/biz/business/detail/video-detail-recommend/client.mjs +1 -1
  44. package/dist/components/biz/business/detail/video-detail-recommend/material.mjs +1 -1
  45. package/dist/components/biz/business/detail/video-detail-recommend/shared.mjs +2 -0
  46. package/dist/components/biz/business/detail/video-detail-waterfall-recommend/client.d.mts +8 -0
  47. package/dist/components/biz/business/detail/video-detail-waterfall-recommend/client.mjs +2 -0
  48. package/dist/components/biz/business/detail/video-detail-waterfall-recommend/index.d.mts +5 -0
  49. package/dist/components/biz/business/detail/video-detail-waterfall-recommend/material.d.mts +45 -0
  50. package/dist/components/biz/business/detail/video-detail-waterfall-recommend/material.mjs +2 -0
  51. package/dist/components/biz/business/detail/video-detail-waterfall-recommend/schema.d.mts +9 -0
  52. package/dist/components/biz/business/detail/video-detail-waterfall-recommend/schema.mjs +2 -0
  53. package/dist/components/biz/business/detail/video-detail-waterfall-recommend/server.d.mts +11 -0
  54. package/dist/components/biz/business/detail/video-detail-waterfall-recommend/server.mjs +2 -0
  55. package/dist/components/biz/business/header-search/header-avatar-icon/client.mjs +1 -1
  56. package/dist/components/biz/business/header-search/header-avatar-logo-search/client.d.mts +1 -1
  57. package/dist/components/biz/business/header-search/header-avatar-logo-search/client.mjs +1 -1
  58. package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.d.mts +4 -3
  59. package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.mjs +1 -1
  60. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/client.mjs +1 -1
  61. package/dist/components/biz/business/header-search/header-logo-search/client.mjs +1 -1
  62. package/dist/components/biz/business/header-search/header-search/client.mjs +1 -1
  63. package/dist/components/biz/business/header-search/shared/avatar.mjs +1 -1
  64. package/dist/components/biz/business/header-search/shared/header-action.mjs +2 -0
  65. package/dist/components/biz/business/header-search/shared/header-search-icon.mjs +2 -0
  66. package/dist/components/biz/business/header-search/shared/header-shell.mjs +2 -0
  67. package/dist/components/biz/business/header-search/shared/logo.mjs +1 -1
  68. package/dist/components/biz/business/header-search/shared/search.mjs +1 -1
  69. package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
  70. package/dist/components/biz/business/home-recommend/shared/home-recommend-preview.mjs +1 -1
  71. package/dist/components/biz/business/hot-recommend/client.d.mts +17 -0
  72. package/dist/components/biz/business/hot-recommend/client.mjs +2 -0
  73. package/dist/components/biz/business/hot-recommend/index.d.mts +5 -0
  74. package/dist/components/biz/business/hot-recommend/material.d.mts +24 -0
  75. package/dist/components/biz/business/hot-recommend/material.mjs +2 -0
  76. package/dist/components/biz/business/hot-recommend/schema.d.mts +23 -0
  77. package/dist/components/biz/business/hot-recommend/schema.mjs +2 -0
  78. package/dist/components/biz/business/hot-recommend/server.d.mts +11 -0
  79. package/dist/components/biz/business/hot-recommend/server.mjs +2 -0
  80. package/dist/components/biz/business/index.d.mts +11 -2
  81. package/dist/components/biz/business/large-feature-grid/card-item.mjs +1 -1
  82. package/dist/components/biz/business/large-feature-grid/client.mjs +1 -1
  83. package/dist/components/biz/business/marquee/client.mjs +1 -1
  84. package/dist/components/biz/business/marquee/marquee.module.mjs +2 -6
  85. package/dist/components/biz/business/profile/index.d.mts +1 -1
  86. package/dist/components/biz/business/profile/profile-header/client.d.mts +2 -1
  87. package/dist/components/biz/business/profile/profile-header/client.mjs +1 -1
  88. package/dist/components/biz/business/profile/profile-header/index.d.mts +1 -1
  89. package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +1 -1
  90. package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +1 -1
  91. package/dist/components/biz/business/profile/profile-main/client.mjs +1 -1
  92. package/dist/components/biz/business/profile/profile-main/empty-state.mjs +2 -0
  93. package/dist/components/biz/business/profile/profile-main/shell.mjs +1 -1
  94. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.mjs +1 -1
  95. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/video-waterfall.mjs +2 -0
  96. package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.mjs +1 -1
  97. package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.d.mts +5 -1
  98. package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.mjs +1 -1
  99. package/dist/components/biz/business/profile/profile-main/utils.mjs +1 -1
  100. package/dist/components/biz/business/ranking-recommend/client.d.mts +17 -0
  101. package/dist/components/biz/business/ranking-recommend/client.mjs +70 -0
  102. package/dist/components/biz/business/ranking-recommend/material.d.mts +35 -0
  103. package/dist/components/biz/business/ranking-recommend/material.mjs +2 -0
  104. package/dist/components/biz/business/ranking-recommend/schema.d.mts +35 -0
  105. package/dist/components/biz/business/ranking-recommend/schema.mjs +2 -0
  106. package/dist/components/biz/business/ranking-recommend/server.d.mts +11 -0
  107. package/dist/components/biz/business/ranking-recommend/server.mjs +2 -0
  108. package/dist/components/biz/business/ranking-recommend/shared/query.mjs +2 -0
  109. package/dist/components/biz/business/ranking-recommend/shared.d.mts +15 -0
  110. package/dist/components/biz/business/ranking-recommend/shared.mjs +2 -0
  111. package/dist/components/biz/business/search-history/client.mjs +1 -1
  112. package/dist/components/biz/business/search-history/schema.mjs +1 -1
  113. package/dist/components/biz/business/search-input/client.mjs +1 -1
  114. package/dist/components/biz/business/search-waterfall-recommend/client.d.mts +9 -0
  115. package/dist/components/biz/business/search-waterfall-recommend/client.mjs +2 -0
  116. package/dist/components/biz/business/search-waterfall-recommend/index.d.mts +4 -0
  117. package/dist/components/biz/business/search-waterfall-recommend/material.d.mts +40 -0
  118. package/dist/components/biz/business/search-waterfall-recommend/material.mjs +2 -0
  119. package/dist/components/biz/business/search-waterfall-recommend/server.d.mts +8 -0
  120. package/dist/components/biz/business/search-waterfall-recommend/server.mjs +2 -0
  121. package/dist/components/biz/business/shortcut-grid/client.mjs +1 -1
  122. package/dist/components/biz/business/tab-bar/client.mjs +1 -1
  123. package/dist/components/common/collection-popup/create-collection-sheet.d.mts +41 -0
  124. package/dist/components/common/collection-popup/create-collection-sheet.mjs +2 -0
  125. package/dist/components/common/collection-popup/index.d.mts +1 -0
  126. package/dist/components/common/collection-popup/index.mjs +1 -1
  127. package/dist/components/common/icons/setting.mjs +1 -1
  128. package/dist/components/common/list/collection-list/collection-list-item.d.mts +8 -0
  129. package/dist/components/common/list/collection-list/collection-list-item.mjs +1 -1
  130. package/dist/components/common/list/collection-list/collection-list.d.mts +6 -0
  131. package/dist/components/common/list/collection-list/collection-list.mjs +1 -1
  132. package/dist/components/common/list/collection-list/collection-select-icon.mjs +2 -0
  133. package/dist/components/common/list/waterfall-recommend/index.d.mts +2 -0
  134. package/dist/components/common/list/waterfall-recommend/waterfall-recommend.d.mts +99 -0
  135. package/dist/components/common/list/waterfall-recommend/waterfall-recommend.mjs +2 -0
  136. package/dist/components/common/series-episodes/index.d.mts +3 -1
  137. package/dist/components/common/series-episodes/index.mjs +1 -1
  138. package/dist/components/common/tab-bar/index.mjs +1 -1
  139. package/dist/components/pages/collection-detail/_components/collection-detail-video-card.mjs +2 -0
  140. package/dist/components/pages/collection-detail/detail.mjs +1 -1
  141. package/dist/components/pages/edit/page.mjs +1 -1
  142. package/dist/components/pages/home/client.mjs +1 -1
  143. package/dist/components/pages/login/auth-page-styles.mjs +6 -0
  144. package/dist/components/pages/login/login-client.mjs +1 -1
  145. package/dist/components/pages/login/register.mjs +1 -1
  146. package/dist/components/pages/login/verify.mjs +1 -4
  147. package/dist/components/pages/search/page-client.mjs +1 -1
  148. package/dist/components/pages/search/search-result/index.mjs +1 -1
  149. package/dist/components/pages/search/search-result/search-all.mjs +1 -1
  150. package/dist/components/pages/search/search-result/search-user.mjs +1 -1
  151. package/dist/components/pages/search/search-result/search-video-info.mjs +1 -1
  152. package/dist/components/pages/search/search-result/shared.mjs +2 -0
  153. package/dist/components/pages/search/top-header.mjs +1 -1
  154. package/dist/components/pages/search-result/page-client.mjs +1 -1
  155. package/dist/components/pages/search-result/search-all.mjs +1 -1
  156. package/dist/components/pages/search-result/search-empty.mjs +2 -0
  157. package/dist/components/pages/search-result/search-tab.mjs +1 -1
  158. package/dist/components/pages/search-result/search-user.mjs +1 -1
  159. package/dist/components/pages/search-result/search-video-info.mjs +2 -0
  160. package/dist/components/pages/search-result/shared.mjs +2 -0
  161. package/dist/components/pages/search-result/top-header.mjs +2 -0
  162. package/dist/components/pages/settings/_components/reset-password-drawer.mjs +2 -2
  163. package/dist/components/pages/settings/_components/settings.mjs +1 -1
  164. package/dist/components/pages/video-list/video-list-client.mjs +1 -1
  165. package/dist/components/pages/video-list/video-list-recommend-item.mjs +2 -0
  166. package/dist/components/pages/video-list/video-list-skeleton.d.mts +2 -3
  167. package/dist/components/pages/video-list/video-list-skeleton.mjs +1 -1
  168. package/dist/components/ui/badge.d.mts +1 -1
  169. package/dist/components/ui/box.d.mts +1 -1
  170. package/dist/components/ui/button.d.mts +1 -1
  171. package/dist/components/ui/image.d.mts +4 -4
  172. package/dist/i18n/locales/en.mjs +2 -2
  173. package/dist/i18n/locales/zh-CN.mjs +2 -2
  174. package/dist/materials.d.mts +6 -1
  175. package/dist/materials.mjs +1 -1
  176. package/dist/service/generated/client.d.mts +38 -2
  177. package/dist/service/generated/client.mjs +1 -1
  178. package/dist/service/generated/tanstack.d.mts +47 -2
  179. package/dist/service/generated/tanstack.mjs +1 -1
  180. package/dist/service.d.mts +3 -3
  181. package/dist/service.mjs +1 -1
  182. package/dist/theme-tokens.d.mts +9 -0
  183. package/dist/theme-tokens.mjs +2 -0
  184. package/dist/types.d.mts +662 -9
  185. package/dist/utils/helper.d.mts +1 -1
  186. package/dist/utils/helper.mjs +1 -1
  187. package/package.json +7 -2
  188. package/theme.css +170 -59
  189. package/dist/assets/icons/detail/collect_nor.mjs +0 -2
  190. package/dist/assets/icons/detail/collect_sel.mjs +0 -2
  191. package/dist/assets/icons/detail/share.mjs +0 -2
  192. package/dist/assets/icons/marquee-enter.mjs +0 -2
  193. package/dist/assets/icons/right_arrow.mjs +0 -2
  194. package/dist/assets/icons/search/avatar.mjs +0 -2
  195. package/dist/assets/images/marquee.mjs +0 -2
  196. package/dist/components/biz/business/detail/shared/detail-introduction.mjs +0 -2
  197. package/dist/components/common/collection-popup/collection-create-modal.mjs +0 -2
  198. package/dist/components/common/skeleton/search-video-card-skeleton.mjs +0 -2
  199. package/dist/components/pages/search/search-utils.mjs +0 -2
  200. package/dist/components/pages/search-result/search-result-skeleton.mjs +0 -2
  201. package/dist/components/pages/search-result/search-video.mjs +0 -2
  202. package/dist/components/pages/video-list/video-list-item.mjs +0 -2
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../../../ui/box.mjs";import{Logo as t}from"../shared/logo.mjs";import{Search as n}from"../shared/search.mjs";import{headerLogoSearchInspectorDefaultProps as r}from"./schema.mjs";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o(o){let{mode:s=`renderer`,...c}=o,l=s===`editor`,{logoSrc:u,logoHref:d}={...r,...c};return a(e,{as:`header`,className:l?`px-[12px] py-[8px] flex gap-[8px] pointer-events-none`:`px-[12px] py-[8px] flex gap-[8px]`,children:[i(t,{logoSrc:u,logoHref:d}),i(n,{})]})}export{o as HeaderLogoSearchClient};
2
+ "use client";import{HeaderShell as e}from"../shared/header-shell.mjs";import{Logo as t}from"../shared/logo.mjs";import{Search as n}from"../shared/search.mjs";import{headerLogoSearchInspectorDefaultProps as r}from"./schema.mjs";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o(o){let{mode:s=`renderer`,...c}=o,{logoSrc:l,logoHref:u}={...r,...c};return a(e,{mode:s,className:`gap-[8px]`,children:[i(t,{logoSrc:l,logoHref:u}),i(n,{mode:s})]})}export{o as HeaderLogoSearchClient};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../../../ui/box.mjs";import{Search as t}from"../shared/search.mjs";import{jsx as n}from"react/jsx-runtime";function r({mode:r=`renderer`}){return n(e,{as:`header`,className:r===`editor`?`px-[12px] py-[8px] pointer-events-none`:`px-[12px] py-[8px]`,children:n(t,{})})}export{r as HeaderSearchClient};
2
+ "use client";import{HeaderShell as e}from"../shared/header-shell.mjs";import{Search as t}from"../shared/search.mjs";import{jsx as n}from"react/jsx-runtime";function r({mode:r=`renderer`}){return n(e,{mode:r,children:n(t,{mode:r})})}export{r as HeaderSearchClient};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Button as e}from"../../../../ui/button.mjs";import{useUserStore as t}from"../../../../../store/modules/user-store.mjs";import{Avatar as n,AvatarFallback as r,AvatarImage as i}from"../../../../ui/avatar.mjs";import{useLoginModalStore as a}from"../../../../../store/modules/login-modal-store.mjs";import o from"../../../../../assets/icons/search/avatar.mjs";import{jsx as s,jsxs as c}from"react/jsx-runtime";import l from"next/link";import{useShallow as u}from"zustand/react/shallow";function d(){let{isLogin:d,userInfo:f}=t(u(e=>({isLogin:e.isLogin,userInfo:e.userInfo}))),p=a(e=>e.open),m=f?.avatar_url||f?.avatar||void 0;return d?s(l,{href:`/user/mine`,children:c(n,{className:`w-[36px] h-[36px]`,children:[s(i,{src:m,alt:`用户头像`}),s(r,{})]})}):s(e,{onClick:p,"aria-label":`登录`,className:`inline-flex rounded-full w-[36px] h-[36px] bg-transparent p-0 m-0`,children:s(o,{className:`w-[36px] h-[36px]`})})}export{d as UserAvatar};
2
+ "use client";import{Button as e}from"../../../../ui/button.mjs";import{useUserStore as t}from"../../../../../store/modules/user-store.mjs";import{Avatar as n,AvatarFallback as r,AvatarImage as i}from"../../../../ui/avatar.mjs";import{Box as a}from"../../../../ui/box.mjs";import{useLoginModalStore as o}from"../../../../../store/modules/login-modal-store.mjs";import{jsx as s,jsxs as c}from"react/jsx-runtime";import l from"next/link";import{useShallow as u}from"zustand/react/shallow";function d(){let{isLogin:d,userInfo:f}=t(u(e=>({isLogin:e.isLogin,userInfo:e.userInfo}))),p=o(e=>e.open),m=s(a,{className:`relative flex h-[38px] w-[38px] items-center justify-center rounded-full bg-white/20`,children:s(a,{className:`flex h-[32px] w-[32px] items-center justify-center overflow-hidden rounded-full border-2 border-white/20 bg-[#2A1C18]`,children:c(n,{className:`h-full w-full`,children:[s(i,{src:f?.avatar_url||f?.avatar||void 0,alt:`用户头像`,className:`object-cover`}),s(r,{className:`bg-[radial-gradient(circle_at_35%_30%,#f4b1ad_0%,#915f72_42%,#3b2442_100%)]`})]})})});return d?s(l,{href:`/user/mine`,"aria-label":`打开个人主页`,className:`shrink-0`,children:m}):s(e,{onClick:p,"aria-label":`登录`,className:`m-0 inline-flex h-auto w-auto shrink-0 bg-transparent p-0 hover:bg-transparent`,children:m})}export{d as UserAvatar};
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Image as t}from"../../../../ui/image.mjs";import{jsx as n}from"react/jsx-runtime";import r from"next/link";function i(i){let{ariaLabel:a,fallbackIcon:o,href:s,imageAlt:c=`header-action`,imageClassName:l,imageSrc:u,className:d}=i;return n(r,{href:s,"aria-label":a,className:e(`relative flex shrink-0 items-center justify-center text-text1`,d),children:u?n(t,{src:u,alt:c,fill:!0,sizes:`40px`,className:e(`object-cover`,l)}):o})}export{i as HeaderAction};
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import{cn as e}from"../../../../../utils/cn.mjs";import t from"../../../../../assets/icons/common/header-search-icon.mjs";import{jsx as n}from"react/jsx-runtime";import r from"next/link";function i(i){let{ariaLabel:a=`打开搜索页`,href:o=`/search`,className:s,iconClassName:c}=i;return n(r,{href:o,"aria-label":a,className:e(`flex h-[24px] w-[24px] shrink-0 items-center justify-center text-text1`,s),children:n(t,{className:e(`h-[24px] w-[24px]`,c),"aria-hidden":!0})})}export{i as HeaderSearchIcon};
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Box as t}from"../../../../ui/box.mjs";import{jsx as n}from"react/jsx-runtime";function r(r){let{children:i,className:a,mode:o=`renderer`}=r;return n(t,{as:`header`,className:e(`flex items-center px-[12px] py-[8px]`,o===`editor`&&`pointer-events-none`,a),children:i})}export{r as HeaderShell};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Image as e}from"../../../../ui/image.mjs";import t from"../../../../../assets/icons/search/video.mjs";import{jsx as n}from"react/jsx-runtime";import r from"next/link";function i(i){let{logoHref:a,logoSrc:o}=i;return n(r,{href:a,className:`flex items-center justify-center w-[40px] h-[40px] relative`,children:o?n(e,{src:o,alt:`logo`,fill:!0,sizes:`40px`,className:`h-[40px] w-[40px] object-cover`}):n(t,{className:`w-[40px] h-[40px]`})})}export{i as Logo};
2
+ "use client";import e from"../../../../../assets/icons/search/video.mjs";import{HeaderAction as t}from"./header-action.mjs";import{jsx as n}from"react/jsx-runtime";function r(r){let{logoHref:i,logoSrc:a,variant:o=`default`}=r,s=o===`action`;return n(t,{href:i,ariaLabel:`打开 logo 入口`,imageSrc:a,imageAlt:`logo`,className:s?`h-[24px] w-[24px] text-white`:`h-[40px] w-[40px]`,imageClassName:s?`rounded-full object-cover`:`object-cover`,fallbackIcon:n(e,{className:s?`h-[24px] w-[24px]`:`h-[40px] w-[40px]`})})}export{r as Logo};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Text as e}from"../../../../ui/text.mjs";import t from"../../../../../assets/icons/search.mjs";import{jsx as n,jsxs as r}from"react/jsx-runtime";import i from"next/link";function a(){return r(i,{href:`/search`,"aria-label":`打开搜索页`,className:`flex flex-1 items-center gap-[8px] border-[1px] border-[#FD4C5E] rounded-[20px] px-[12px] py-[8px] h-[40px]`,children:[n(t,{className:`w-[16px] h-[16px]`,"aria-hidden":!0}),n(e,{className:`flex-1 text-[16px] text-text3`,children:`请输入搜索关键字`})]})}export{a as Search};
2
+ "use client";import{useUserStore as e}from"../../../../../store/modules/user-store.mjs";import{gContentGetRecommendSearchList 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 a from"../../../../../assets/icons/common/header-search-icon.mjs";import{useMemo as o}from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";import l from"next/link";import{useShallow as u}from"zustand/react/shallow";function d(d){let{mode:f=`renderer`}=d,p=f===`editor`,{userInfo:m}=e(u(e=>({userInfo:e.userInfo}))),h=m?.user_id||`guest`,{data:g}=i([`header-search-hot-keyword`,h],()=>t({user_id:h}),{enabled:!p}),_=o(()=>{let e=(g?.data?.recommend_list??[])[0]?.title;return typeof e==`string`&&e.trim()?e.trim():`请输入搜索关键字`},[g]);return s(l,{href:`/search`,"aria-label":`打开搜索页`,className:`flex h-[34px] flex-1 items-center justify-center overflow-hidden rounded-full bg-black/40 px-[14px] backdrop-blur-[2px]`,children:c(n,{className:`flex h-[20px] items-center gap-[4px] text-white/50`,children:[s(a,{className:`h-[20px] w-[20px] shrink-0`,"aria-hidden":!0}),s(r,{as:`span`,className:`block text-[14px] leading-none text-white/50`,children:_})]})})}export{d as Search};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{pContentGetPopularVideoList as e}from"../../../../../service/generated/client.mjs";import{useRouter as t}from"../../../../../utils/use-compatible-router.mjs";import{Image as n}from"../../../../ui/image.mjs";import{Box as r}from"../../../../ui/box.mjs";import{Text as i}from"../../../../ui/text.mjs";import a from"../../../../ui/loading.mjs";import o from"../../../../ui/link.mjs";import{useGridFirstRowHeight as s,useWaterfallFirstRowHeight as c}from"../../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as l}from"../../../../../hooks/use-min-duration-loading.mjs";import u from"../../../../../assets/icons/detail/video_flag.mjs";import{getFeedAdIcon as ee,getFeedAdJumpUrl as d,isFeedAdItem as f}from"../../advertisement/feed-ad/index.mjs";import{MiniThreeCard as p}from"../../../../common/cards/mini-three-card.mjs";import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as m,HOME_RECOMMEND_DEFAULT_GRID_ROWS as te,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as h,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as ne,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as g,HOME_RECOMMEND_MAX_GRID_COLUMNS as re,HOME_RECOMMEND_MAX_GRID_ROWS as ie}from"./home-recommend-default-config.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as _}from"./home-recommend-preview.mjs";import{enrichHomeRecommendItemsWithVideoDetails as v}from"./home-recommend-video-detail.mjs";import{useCallback as y,useEffect as b,useLayoutEffect as ae,useMemo as x,useRef as S,useState as C}from"react";import{jsx as w,jsxs as T}from"react/jsx-runtime";const oe={},se={list:[]},ce=new Map;function E({variant:n,props:o=oe,data:u=se,mode:ee=`renderer`}){let d=ee===`editor`,f=t(),{list:p,title:_,cursor:E}=u,D=x(()=>Array.isArray(p)?p:[],[p]),O=x(()=>Array.isArray(u.icons)?u.icons:[],[u.icons]),{rows:pe,columns:me,moreLink:he,title:ge,smartTagEnabled:_e,smartTagIds:k,catId:A,showPlayCount:ve,playCountDelta:ye,showEpisode:xe,enableInfinite:Se,items:M}=o,N=_e===!0,Ce=Se===!0&&N,P=!d&&Ce&&D.length>=16,F=x(()=>Array.isArray(k)?k.map(e=>String(e||``).trim()).filter(Boolean):[],[k]),I=typeof A==`string`?A.trim():``,L=x(()=>N||!Array.isArray(M)?``:M.map(e=>String(e?.contentId||``).trim()).filter(Boolean).join(`,`),[N,M]),[we,Te]=C(0),[R,z]=C(D),[B,Ee]=C(O),[V,H]=C(()=>typeof E==`string`?E:void 0),[De,Oe]=C(!1),ke=S(null),Ae=S(null),U=S(null),je=S([]),W=S({left:null,right:null}),Me=S(!1),G=S(``),{isLoading:Ne,show:Pe,hide:Fe}=l(600),Ie=de(pe,te,ie),K=de(me,m,re),q=Ce?16:n===`grid`?Ie*K:16,J=x(()=>[n,N?`smart`:`manual:${L}`,F.join(`,`),I,String(q)].join(`|`),[N,L,I,q,F,n]);b(()=>{let e=ce.get(J);if(e){z(e.items),Ee(e.icons),H(e.cursor),G.current=J;return}G.current!==J&&(z(D),Ee(O),H(typeof E==`string`?E:void 0))},[E,O,D,J]),b(()=>{d||ce.set(J,{items:R,icons:B,cursor:V})},[d,V,J,B,R]);let Le=Ie*K,Re=d&&n===`grid`,Y=Re?R.slice(0,Le):R,ze=Re?B.slice(0,Le):B,Be=n===`waterfall`?6:4,X=Y.length>0?Math.max(0,Y.length-Be):-1,Ve=!!V,He=ge&&ge.trim()||_||``,Ue=ve??g,We=Number(ye??h),Ge=xe??ne,Ke=!Ce,Z=Ke?ue(he):``,qe=Ke&&!!Z,Je=s({enabled:!d&&n===`grid`,containerRef:Ae,firstRowItemRef:je,columns:K,itemsCount:Y.length,deps:[n]}),Ye=c({enabled:!d&&n===`waterfall`,containerRef:ke,firstRowRef:W,deps:[n,Y.length]}),Xe=n===`grid`?Je:Ye,Ze=y(async()=>{if(d)return;if(G.current===J){G.current=J;return}let t=N||!!L;if(G.current=J,t)try{if(Pe(),!N){if(!L)return;z(await v(R));return}let t=await e({page_size:q,tags:F.length>0?F:void 0,cat_id:I||void 0},{cache:`no-store`}),n=Array.isArray(t.data?.videos)?t.data.videos:[],r=t.data?.cursor;z(n),H(r)}catch(e){console.error(`推荐位刷新首屏失败(client)`,e)}finally{Fe()}},[Fe,d,N,L,J,I,q,F,R,Pe]);b(()=>{Ze()},[Ze]);let Qe=y(async()=>{let t=V;if(!(!P||!t||Me.current)){Me.current=!0,Oe(!0);try{let n=await e({cursor:t,page_size:q,tags:F.length>0?F:void 0,cat_id:I||void 0}),r=Array.isArray(n.data?.videos)?n.data.videos:[],i=n.data?.cursor;r.length>0&&z(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{Me.current=!1,Oe(!1)}}},[V,I,q,F,P]),$e=y(()=>{if(Z){if(Z.startsWith(`http`)){window.location.href=Z;return}f.push(Z)}},[Z,f]);b(()=>{let e=U.current;if(!e||!P||!Ve)return;let t=new IntersectionObserver(e=>{!e[0]?.isIntersecting||De||Qe()},{root:null,threshold:0});return t.observe(e),()=>{t.disconnect()}},[Qe,Ve,De,Y.length,q,P,X]),ae(()=>{let e=ke.current;if(!e||n!==`waterfall`)return;let t=()=>{let t=e.clientWidth||0;Te(t>0?(t-12)/2:0)};t();let r=new ResizeObserver(t);return r.observe(e),()=>{r.disconnect()}},[n]);let Q=x(()=>n===`waterfall`?be(Y,ze,we):{left:[],right:[]},[we,ze,Y,n]);if(b(()=>{n===`waterfall`&&(Q.left.length||(W.current.left=null),Q.right.length||(W.current.right=null))},[n,Q.left.length,Q.right.length]),!Y.length)return null;let $=!d&&Ne,et=!d&&De,tt=Xe>0?Xe/2:160;return T(r,{className:`w-full mt-[16px]`,children:[T(r,{className:`flex items-center justify-between px-[12px] mb-[8px]`,children:[w(i,{className:`flex-1 min-w-0 text-text1 text-[18px] leading-[26px] font-bold line-clamp-1`,children:He}),qe&&w(i,{className:`text-text3 text-[12px] leading-[18px] cursor-pointer`,onClick:$e,children:`更多`})]}),n===`grid`&&T(r,{ref:Ae,className:`w-full flex flex-wrap px-[12px] relative`,children:[Y.map((e,t)=>{let r=ze[t],i=fe(e),a=Ue&&(i?.showPlayCount??!0),o=i?.playCountDelta??We,s=i?.showEpisode??Ge,c=t%K,l=K>1?{paddingLeft:12*c/K,paddingRight:12*(K-c-1)/K}:void 0;return w(`div`,{ref:e=>{t===X&&(U.current=e),t<K&&(je.current[t]=e)},className:`min-w-0`,style:{width:`${100/K}%`,...l||{}},children:w(le,{variant:n,item:e,icon:r,index:t,showPlayCount:a,playCountDelta:o,showEpisode:s,widthStyle:{width:`100%`}})},j(e,t))}),$&&w(r,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),$&&w(r,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:tt},"aria-hidden":!0,children:w(a,{size:`large`,showLabel:!1,className:`text-theme5`})})]}),n===`waterfall`&&T(r,{ref:ke,className:`w-full px-[12px] flex gap-[12px] relative`,children:[w(r,{className:`flex-1 min-w-0 flex flex-col`,children:Q.left.map((e,t)=>{let r=fe(e.item),i=Ue&&(r?.showPlayCount??!0),a=r?.playCountDelta??We,o=r?.showEpisode??Ge;return w(`div`,{ref:n=>{e.index===X&&(U.current=n),t===0&&(W.current.left=n)},children:w(le,{variant:n,item:e.item,icon:e.icon,index:e.index,showPlayCount:i,playCountDelta:a,showEpisode:o,widthStyle:{width:`100%`}})},j(e.item,e.index))})}),w(r,{className:`flex-1 min-w-0 flex flex-col`,children:Q.right.map((e,t)=>{let r=fe(e.item),i=Ue&&(r?.showPlayCount??!0),a=r?.playCountDelta??We,o=r?.showEpisode??Ge;return w(`div`,{ref:n=>{e.index===X&&(U.current=n),t===0&&(W.current.right=n)},children:w(le,{variant:n,item:e.item,icon:e.icon,index:e.index,showPlayCount:i,playCountDelta:a,showEpisode:o,widthStyle:{width:`100%`}})},j(e.item,e.index))})}),$&&w(r,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),$&&w(r,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:tt},"aria-hidden":!0,children:w(a,{size:`large`,showLabel:!1,className:`text-theme5`})})]}),et&&w(r,{className:`w-full flex justify-center py-[12px]`,children:w(a,{size:`medium`,showLabel:!1,className:`text-theme5`})})]})}function le({variant:e,item:t,icon:a,index:s,showPlayCount:c,playCountDelta:l,showEpisode:m,widthStyle:te}){let h=f(t),ne=pe(t),g=t.name||t?.title||``,re=_e(k(t.static?.browse_cnt??0,l)),ie=he(t,m),_=ye(t,a,s),v=h?d(t):O(t),y=c&&!h,b=m&&!h;if(h){let e=ee(t)||ne;return w(r,{className:`w-full`,style:te,children:T(o,{href:v,className:`block w-full`,children:[T(r,{className:`relative w-full overflow-hidden rounded-[8px] bg-white`,style:{aspectRatio:`175 / 280`},children:[e&&w(r,{className:`absolute top-0`,style:{left:`-44.57%`,width:`321.14%`,height:`100%`},children:w(n,{src:e,alt:g||`广告封面`,fill:!0,objectFit:`cover`})}),w(r,{className:`absolute right-0 top-0 flex items-center justify-center`,style:{width:`32%`,height:`8.93%`,minWidth:`56px`,minHeight:`25px`,borderBottomLeftRadius:`8px`,backgroundColor:`rgba(0, 0, 0, 0.33)`},children:w(i,{className:`text-white`,style:{fontSize:`12px`,lineHeight:`normal`},children:`广告`})})]}),w(r,{className:`pt-[8px]`,children:w(i,{as:`h3`,className:`line-clamp-1 text-[14px] leading-[20px] text-white`,children:g})})]})})}return w(p,{url:ne,text:g,className:`w-full`,style:te,topRightChild:_?w(D,{url:_}):void 0,bottomLeftChild:y?T(r,{className:`h-[20px] leading-[20px] text-[#fff] text-[12px] px-[4px] py-0 rounded-[4px] bg-[rgba(255,255,255,0.1)] ml-[4px] flex items-center gap-[4px]`,children:[w(u,{className:`w-[12px] h-[12px] text-[#fff] shrink-0`}),re]}):null,bottomRightChild:b?ie&&w(i,{className:`text-[#fff] text-[12px] leading-[18px] pr-2`,children:ie}):null,textChild:w(r,{className:`py-[4px]`,children:w(i,{as:`h3`,className:`text-text1 text-[16px] leading-[24px] ${e===`waterfall`?`break-words line-clamp-3`:`line-clamp-1`}`,children:g})}),linkPath:v})}function D({url:e}){return w(r,{className:`relative w-[40px] h-[20px]`,children:w(n,{src:e,alt:`corner`,width:40,height:20,className:`w-full h-auto`})})}function O(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id||``}/${t}/episode/1`}function ue(e){return e?e.trim():``}function de(e,t,n){let r=Number(e);return!Number.isFinite(r)||r<=0?t:Math.min(n,Math.floor(r))}function fe(e){return e[_]}function pe(e){return e.img_y||e.img_x||e?.coverUrl}function me(e){return typeof e==`string`?e:``}function he(e,t){if(!t)return``;if(ge(e)){let t=e.update_status===`0`,n=Number(e.episode_cnt||e.links?.length||0);return n>0?`${t?`更新至`:`全`}${n}集`:``}return ve(Number(e.duration||0))}function ge(e){if(Number(e.type??0)===2)return!0;let t=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(t)&&t>1}function _e(e){return!Number.isFinite(e)||e<=0?`0`:e>=1e6?`${A(e/1e6)}M`:e>=1e3?`${A(e/1e3)}k`:Math.floor(e).toString()}function k(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 A(e){let t=e.toFixed(1);return t.endsWith(`.0`)?t.slice(0,-2):t}function ve(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 ye(e,t,n){return me(e.badge_url)||me(t?.material_url)||``}function be(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=xe(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 xe(e,t){if(!e)return 0;let n=e*1.3461538461538463,r=he(t,!0)?18:0;return n+20+r+6+16}function j(e,t){return e.id?`home-recommend-${e.id}`:`home-recommend-${t}`}export{E 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"../../../../ui/loading.mjs";import a from"../../../../ui/link.mjs";import{useGridFirstRowHeight as o,useWaterfallFirstRowHeight as s}from"../../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as c}from"../../../../../hooks/use-min-duration-loading.mjs";import l from"../../../../../assets/icons/common/right_arrow.mjs";import u from"../../../../../assets/icons/common/right_arrow_thin.mjs";import{WaterfallRecommend as d}from"../../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as f,HOME_RECOMMEND_DEFAULT_GRID_ROWS as ee,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as te,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as ne,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as re,HOME_RECOMMEND_DEFAULT_TITLE as ie,HOME_RECOMMEND_MAX_GRID_COLUMNS as ae,HOME_RECOMMEND_MAX_GRID_ROWS as oe}from"./home-recommend-default-config.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as se}from"./home-recommend-preview.mjs";import{enrichHomeRecommendItemsWithVideoDetails as ce}from"./home-recommend-video-detail.mjs";import{useCallback as le,useEffect as p,useId as m,useLayoutEffect as ue,useMemo as h,useRef as g,useState as _}from"react";import{Fragment as de,jsx as v,jsxs as y}from"react/jsx-runtime";const fe={backgroundImage:`var(--gradient-card-mask-medium)`},pe={},me={list:[]},b=new Map;function x({variant:t,props:se=pe,data:m=me,mode:fe=`renderer`}){let x=fe===`editor`,{list:S,title:ge,cursor:C}=m,w=h(()=>Array.isArray(S)?S:[],[S]),T=h(()=>Array.isArray(m.icons)?m.icons:[],[m.icons]),{rows:be,columns:xe,moreLink:Se,title:Ce,smartTagEnabled:we,smartTagIds:E,catId:D,showPlayCount:Te,playCountDelta:Ee,showEpisode:De,enableInfinite:O,items:k}=se,A=we===!0,j=O===!0&&A,M=!x&&j&&w.length>=16,N=h(()=>Array.isArray(E)?E.map(e=>String(e||``).trim()).filter(Boolean):[],[E]),P=typeof D==`string`?D.trim():``,F=h(()=>A||!Array.isArray(k)?``:k.map(e=>String(e?.contentId||``).trim()).filter(Boolean).join(`,`),[A,k]),[je,Me]=_(0),[I,L]=_(w),[R,Ne]=_(T),[z,B]=_(()=>typeof C==`string`?C:void 0),[V,Pe]=_(!1),Fe=g(null),Ie=g(null),H=g(null),Le=g([]),U=g({left:null,right:null}),Re=g(!1),W=g(``),{isLoading:ze,show:Be,hide:Ve}=c(600),He=ve(be,ee,oe),G=ve(xe,f,ae),K=j?16:t===`grid`?He*G:16,q=h(()=>[t,A?`smart`:`manual:${F}`,N.join(`,`),P,String(K)].join(`|`),[A,F,P,K,N,t]);p(()=>{let e=b.get(q);if(e){L(e.items),Ne(e.icons),B(e.cursor),W.current=q;return}W.current!==q&&(L(w),Ne(T),B(typeof C==`string`?C:void 0))},[C,T,w,q]),p(()=>{x||b.set(q,{items:I,icons:R,cursor:z})},[x,z,q,R,I]);let Ue=He*G,We=x&&t===`grid`,J=We?I.slice(0,Ue):I,Ge=We?R.slice(0,Ue):R,Ke=t===`waterfall`?6:4,qe=J.length>0?Math.max(0,J.length-Ke):-1,Je=!!z,Ye=Ce&&Ce.trim()||ge||ie,Y=Te??re,X=Number(Ee??te),Z=De??ne,Xe=`flex-1 min-w-0 text-[18px] leading-[24px] font-medium line-clamp-1 ${x?`text-[#1F1F1F]`:`text-text2`}`,Ze=t===`grid`?u:x?l:u,Qe=_e(Se),$e=(t===`waterfall`||!j)&&!!Qe,et=$e?Qe:``,tt=t===`grid`?`flex size-[24px] shrink-0 items-center justify-center ${x?`opacity-100`:`opacity-50`}`:`ml-[8px] flex size-[24px] shrink-0 items-center justify-center ${x?`opacity-100`:`opacity-50`}`,nt=t===`grid`?`size-[16px] ${x?`text-[#1F1F1F]`:`text-text1`}`:x?`h-[12px] w-[12px] text-[#1F1F1F]`:`size-[16px] text-text1`,rt=o({enabled:!x&&t===`grid`,containerRef:Ie,firstRowItemRef:Le,columns:G,itemsCount:J.length,deps:[t]}),it=s({enabled:!x&&t===`waterfall`,containerRef:Fe,firstRowRef:U,deps:[t,J.length]}),at=t===`grid`?rt:it,ot=le(async()=>{if(x)return;if(W.current===q){W.current=q;return}if(b.has(q)){W.current=q;return}let t=A||!!F;if(W.current=q,t)try{if(Be(),!A){if(!F)return;L(await ce(I));return}let t=await e({page_size:K,tags:N.length>0?N:void 0,cat_id:P||void 0},{cache:`no-store`}),n=Array.isArray(t.data?.videos)?t.data.videos:[],r=t.data?.cursor;L(n),B(r)}catch(e){console.error(`推荐位刷新首屏失败(client)`,e)}finally{Ve()}},[Ve,x,A,F,q,P,K,N,I,Be]);p(()=>{ot()},[ot]);let st=le(async()=>{let t=z;if(!(!M||!t||Re.current)){Re.current=!0,Pe(!0);try{let n=await e({cursor:t,page_size:K,tags:N.length>0?N:void 0,cat_id:P||void 0}),r=Array.isArray(n.data?.videos)?n.data.videos:[],i=n.data?.cursor;r.length>0&&L(e=>e.concat(r)),B(e=>{if(!(!r.length||!i))return i===e?void 0:i})}catch(e){console.error(`推荐位加载下一页失败(client)`,e),B(void 0)}finally{Re.current=!1,Pe(!1)}}},[z,P,K,N,M]);p(()=>{let e=H.current;if(!e||!M||!Je)return;let t=new IntersectionObserver(e=>{!e[0]?.isIntersecting||V||st()},{root:null,threshold:0});return t.observe(e),()=>{t.disconnect()}},[st,Je,V,J.length,K,M,qe]),ue(()=>{let e=Fe.current;if(!e||t!==`waterfall`)return;let n=()=>{let t=e.clientWidth||0;Me(t>0?(t-15)/2:0)};n();let r=new ResizeObserver(n);return r.observe(e),()=>{r.disconnect()}},[t]);let Q=h(()=>t===`waterfall`?ke(J,Ge,je):{left:[],right:[]},[je,Ge,J,t]),ct=h(()=>t===`waterfall`?{left:Q.left.map(e=>Oe(e,Y,X,Z)),right:Q.right.map(e=>Oe(e,Y,X,Z))}:{left:[],right:[]},[X,Z,Y,t,Q.left,Q.right]);if(p(()=>{t===`waterfall`&&(Q.left.length||(U.current.left=null),Q.right.length||(U.current.right=null))},[t,Q.left.length,Q.right.length]),!J.length)return null;let $=!x&&ze,lt=!x&&V,ut=at>0?at/2:160;return y(n,{className:`w-full mt-[16px]`,children:[t===`grid`&&y(n,{className:`flex items-center justify-between pl-[16px] pr-0 mb-[16px]`,children:[v(r,{className:Xe,children:Ye}),$e&&v(a,{href:et,"aria-label":`更多`,className:tt,children:v(Ze,{className:nt})})]}),t===`grid`&&y(n,{ref:Ie,className:`relative flex w-full items-start gap-[16px] overflow-x-auto pl-[16px] pr-0`,children:[J.map((e,t)=>{let n=Ge[t],r=ye(e);return v(`div`,{ref:e=>{t===qe&&(H.current=e),t<G&&(Le.current[t]=e)},className:`shrink-0 w-[109px]`,children:v(he,{item:e,icon:n,index:t,showPlayCount:Y&&(r?.showPlayCount??!0),playCountDelta:r?.playCountDelta??X,showEpisode:r?.showEpisode??Z,widthStyle:{width:`100%`}})},Ae(e,t))}),$&&v(n,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),$&&v(n,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:ut},"aria-hidden":!0,children:v(i,{size:`large`,showLabel:!1,className:`text-theme5`})})]}),t===`waterfall`&&v(d,{title:Ye,moreHref:et||void 0,moreIcon:$e?v(Ze,{className:nt}):void 0,titleClassName:Xe,moreLinkClassName:tt,columns:ct,containerClassName:`relative flex w-full gap-[15px] px-[16px]`,getItemRef:({item:e,column:t,columnIndex:n})=>r=>{e.sourceIndex===qe&&(H.current=r),n===0&&(U.current[t]=r)},overlay:$?y(de,{children:[v(n,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),v(n,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:ut},"aria-hidden":!0,children:v(i,{size:`large`,showLabel:!1,className:`text-theme5`})})]}):void 0}),lt&&v(n,{className:`w-full flex justify-center py-[12px]`,children:v(i,{size:`medium`,showLabel:!1,className:`text-theme5`})})]})}function he({item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o}){return v(S,{item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o})}function S({item:e,icon:i,index:o,showPlayCount:s,playCountDelta:c,showEpisode:l,widthStyle:u}){let d=T(e),f=e.name||e?.title||``,ee=e.id?w(e):`#`,te=M(e,i,o),ne=De(e,l),re=s?E(e.static?.browse_cnt??0,c):``;return v(a,{href:ee,className:`block w-full`,style:u,children:y(n,{className:`relative w-full overflow-hidden rounded-[8px] bg-bg3`,style:{aspectRatio:`109 / 150`},children:[d&&v(t,{src:d,alt:f||`推荐封面`,fill:!0,objectFit:`cover`,className:`object-cover object-top`}),v(n,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:fe,"aria-hidden":!0}),te&&v(n,{className:`absolute left-[8px] top-[8px] z-10`,children:v(ge,{url:te})}),ne&&v(n,{className:`absolute right-[8px] top-[10px] z-10 max-w-[56px]`,children:v(r,{as:`span`,className:`block text-right text-[10px] leading-[14px] font-medium not-italic text-text1 line-clamp-1 font-['PingFang_SC']`,children:ne})}),y(n,{className:`absolute left-[8px] right-[8px] bottom-[8px] top-[78px] z-10 flex flex-col justify-end`,children:[v(n,{className:`flex min-h-[40px] w-full items-end`,children:v(r,{as:`h3`,className:`w-full line-clamp-2 text-[14px] font-medium not-italic leading-normal text-white font-['PingFang_SC']`,children:f})}),re&&y(n,{className:`flex h-[20px] items-center gap-[6px]`,children:[v(C,{className:`h-[15px] w-[12px] shrink-0`}),v(r,{as:`span`,className:`shrink-0 whitespace-nowrap text-[14px] font-normal not-italic leading-normal text-text3 font-['PingFang_SC']`,children:re})]})]})]})})}function ge({url:e}){return v(t,{src:e,alt:`角标`,width:96,height:18,className:`h-[18px] w-auto max-w-[96px] object-contain`})}function C({className:e}){let t=m().replace(/:/g,``),n=`grid-heat-outer-${t}`,r=`grid-heat-highlight-left-${t}`,i=`grid-heat-highlight-right-${t}`;return y(`svg`,{viewBox:`0 0 11.9811 15`,fill:`none`,"aria-hidden":!0,className:e,children:[v(`path`,{d:`M2.94686 4.47572C4.52521 4.03871 4.39118 0.994604 4.39118 0C7.76131 0.497302 8.72372 3.31535 9.20563 4.97302C14.02 7.45953 12.568 15.9138 4.87263 14.9191C-2.42073 13.9763 -0.183446 5.34241 2.94686 4.47572Z`,fill:`url(#${n})`}),v(`path`,{d:`M5.66995 6.45327C6.82541 4.06622 5.16406 1.16037 4.20118 0C4.13684 1.21533 4.37554 3.91735 2.75432 4.45159C1.0513 5.01279 0.16048 7.16814 0 8.16274L3.26275 9.93438C3.58371 9.76861 4.51449 8.84032 5.66995 6.45327Z`,fill:`url(#${r})`,transform:`translate(0.19 0.01)`}),v(`path`,{d:`M3.55359 3.57102C2.65587 2.53581 3.298 0.846416 3.48828 0C0.514078 0.39887 -0.0720454 5.22416 0.0066677 7.58695L4.28508 8.57876C4.99512 7.12607 4.45131 4.60622 3.55359 3.57102Z`,fill:`url(#${i})`,transform:`translate(7.39 2.85)`}),y(`defs`,{children:[y(`linearGradient`,{id:n,x1:`7.35676`,y1:`1.93157`,x2:`3.49864`,y2:`15.4663`,gradientUnits:`userSpaceOnUse`,children:[v(`stop`,{offset:`0.0817308`,stopColor:`#FF3F49`}),v(`stop`,{offset:`0.6`,stopColor:`#FF4D56`}),v(`stop`,{offset:`1`,stopColor:`#FFA060`})]}),y(`linearGradient`,{id:r,x1:`4.39349`,y1:`0`,x2:`0.834125`,y2:`10.4383`,gradientUnits:`userSpaceOnUse`,children:[v(`stop`,{stopColor:`#FFBCB5`}),v(`stop`,{offset:`0.834055`,stopColor:`#FE676F`,stopOpacity:`0`})]}),y(`linearGradient`,{id:i,x1:`2.30551`,y1:`2.82163`,x2:`0.860506`,y2:`6.96924`,gradientUnits:`userSpaceOnUse`,children:[v(`stop`,{stopColor:`#FFA49B`}),v(`stop`,{offset:`1`,stopColor:`#FE676F`,stopOpacity:`0`})]})]})]})}function w(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id||``}/${t}/episode/1`}function _e(e){return e?e.trim():``}function ve(e,t,n){let r=Number(e);return!Number.isFinite(r)||r<=0?t:Math.min(n,Math.floor(r))}function ye(e){return e[se]}function T(e){return e.img_y||e.img_x||e?.coverUrl}function be(e){return typeof e==`string`?e:``}function xe(e){return typeof e==`string`?e.trim():``}function Se(e){return xe(e.img_type).toLowerCase()===`long`?`short`:`tall`}function Ce(e,t){return t===`short`?e.img_x||e.img_y||e?.coverUrl:e.img_y||e.img_x||e?.coverUrl}function we(e,t){return xe(e.cat_name)||(t?Ee(e,!0):``)}function E(e,t){let n=A(e,t);return n<=0?``:`${D(n)}热度`}function D(e){return!Number.isFinite(e)||e<=0?`0`:e>=1e4?`${Math.floor(e/1e4)}万`:Math.floor(e).toString()}function Te(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t>10&&t<=100?t/10:Math.min(t,10)}function Ee(e,t){return t?O(e)||j(Number(e.duration||0)):``}function De(e,t){return t?O(e):``}function O(e){if(!k(e))return``;let t=e.update_status===`0`,n=Number(e.episode_cnt||e.links?.length||0);return n>0?`${t?`更新至`:`全`}${n}集`:``}function k(e){if(Number(e.type??0)===2)return!0;let t=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(t)&&t>1}function A(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 j(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 M(e,t,n){return be(e.badge_url)||be(t?.material_url)||``}function Oe(e,t,n,r){let i=Se(e.item),a=Ce(e.item,i),o=e.item.name||e.item?.title||``,s=e.item.id?w(e.item):`#`,c=M(e.item,e.icon,e.index),l=we(e.item,r),u=t?E(e.item.static?.browse_cnt??0,n):``,d=Te(e.item.score);return{key:Ae(e.item,e.index),sourceIndex:e.index,href:s,cardKind:i,coverUrl:a,title:o,badgeImageUrl:c,metaPrimaryText:l,heatText:u,score:d}}function ke(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=N(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 N(e,t){return e?(Se(t)===`tall`?218:120)+16:0}function Ae(e,t){return e.id?`home-recommend-${e.id}`:`home-recommend-${t}`}export{x as default};
@@ -1,2 +1,2 @@
1
1
 
2
- import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as e,HOME_RECOMMEND_DEFAULT_GRID_ROWS as t,HOME_RECOMMEND_DEFAULT_TITLE as n,HOME_RECOMMEND_MAX_GRID_COLUMNS as r,HOME_RECOMMEND_MAX_GRID_ROWS as i}from"./home-recommend-default-config.mjs";const a=`/static/components-thumb/video_player.png`,o=`__homeRecommendCardConfig`,s=Array.from({length:60},(e,t)=>{let n=t%2==1,r={browse_cnt:12345+t*731};return{id:`preview-recommend-${t+1}`,name:`${`媒资标题`.repeat((t+1)*2)}`,img_y:a,img_x:a,type:n?2:1,duration:n?0:60*(18+t),episode_cnt:n?12+t%3*6:0,static:r}});function c({variant:e,enableInfinite:t,rows:n,columns:r,items:i}){let a=Array.isArray(i)?i.length:0;return e===`grid`?a>0?a:Math.max(f(n,r),2,a):t?Math.max(8,a):e===`waterfall`?Math.max(4,a):Math.max(2,a)}function l(e){let t=Math.max(1,Math.floor(e));return Array.from({length:t},(e,t)=>{let n=s[t%s.length];return{...n,id:`preview-recommend-${t+1}`,name:n.name}})}function u(e,t,n){return t.length?e.map((e,r)=>{let i=t[r];if(!i)return e;let a=(i.contentId?n.get(i.contentId):void 0)||e,s=i.titleMode===`custom`?i.title?.trim()||a.name||e.name||``:a.name||e.name||``,c=i.coverUrl?.trim()||``,l=i.coverMode===`content`,u=l?a.img_y||a.img_x||e.img_y||e.img_x||c||``:c||a.img_y||a.img_x||e.img_y||e.img_x||``,f=l?a.img_x||a.img_y||e.img_x||e.img_y||c||``:c||a.img_x||a.img_y||e.img_x||e.img_y||``,p=a.badge_url||e.badge_url||``,m=i.badge_url??p,h=d(i,a),g=i.is_ad===!0;return{...e,...a,id:a.id||e.id||`preview-recommend-${r+1}`,name:s,img_y:u,img_x:f,is_ad:g,ad_advertise_url:g?i.ad_advertise_url?.trim()||``:void 0,ad_advertise_icon:g?i.ad_advertise_icon?.trim()||u||f||``:void 0,badge_url:m||void 0,[o]:h}}):e}function d(e,t){let n=t[o],r={showPlayCount:e.showPlayCount??n?.showPlayCount,playCountDelta:e.playCountDelta??n?.playCountDelta,showEpisode:e.showEpisode??n?.showEpisode};if(!(r.showPlayCount===void 0&&r.playCountDelta===void 0&&r.showEpisode===void 0))return r}function f(n,a){return p(n,t,1,i)*p(a,e,1,r)}function p(e,t,n,r){let i=Number(e);return Number.isFinite(i)?Math.min(r,Math.max(n,Math.floor(i))):t}function m({variant:e,schemaTitle:t,enableInfinite:r,smartTagEnabled:i,rows:a,columns:o,items:s}){let d=new Map,f=i?[]:Array.isArray(s)?s.filter(Boolean):[],p=u(l(c({variant:e,enableInfinite:r,rows:a,columns:o,items:f})),f,d);return{title:t&&t.trim()||n,list:p,icons:[],cursor:``,show_style:void 0}}export{o as HOME_RECOMMEND_CARD_CONFIG_FIELD,m as buildHomeRecommendEditorPreviewData};
2
+ import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as e,HOME_RECOMMEND_DEFAULT_GRID_ROWS as t,HOME_RECOMMEND_DEFAULT_TITLE as n,HOME_RECOMMEND_MAX_GRID_COLUMNS as r,HOME_RECOMMEND_MAX_GRID_ROWS as i}from"./home-recommend-default-config.mjs";const a=`/static/components-thumb/video_player.png`,o=`__homeRecommendCardConfig`,s=[`东野圭吾作品:11字谜案`,`诡异纸嫁衣:深夜回魂`,`夜行者档案:无声证词`,`狐面新娘:冥婚谜局`,`赤焰长歌:风雪诛心`,`山海禁术:九尾秘闻`],c=[`烧脑悬疑`,`民俗怪谈`,`悬疑推理`,`东方奇幻`,`古风权谋`,`奇诡冒险`],l=[8.9,9.1,8.7,9.3,8.8,9],u=[``,`独播`,``,`巅峰榜·历史上榜`,``,`独播`],d=Array.from({length:60},(e,t)=>{let n=t%2==0,r=s[t%s.length],i=c[t%c.length],o=l[t%l.length],d=u[t%u.length],f=d?[{id:`preview-tag-${t+1}`,name:d}]:void 0,p={browse_cnt:2242e4+t*186e3};return{id:`preview-recommend-${t+1}`,name:r,img_y:a,img_x:a,img_type:t%3==1?`long`:`short`,cat_name:i,score:o,tags:f,type:n?2:1,duration:n?0:60*(18+t),episode_cnt:n?24+t%3*6:0,static:p}});function f({variant:e,enableInfinite:t,rows:n,columns:r,items:i}){let a=Array.isArray(i)?i.length:0;return e===`grid`?a>0?a:Math.max(g(n,r),2,a):t?Math.max(8,a):e===`waterfall`?Math.max(4,a):Math.max(2,a)}function p(e){let t=Math.max(1,Math.floor(e));return Array.from({length:t},(e,t)=>{let n=d[t%d.length];return{...n,id:`preview-recommend-${t+1}`,name:n.name}})}function m(e,t,n){return t.length?e.map((e,r)=>{let i=t[r];if(!i)return e;let a=(i.contentId?n.get(i.contentId):void 0)||e,s=i.titleMode===`custom`?i.title?.trim()||a.name||e.name||``:a.name||e.name||``,c=i.coverUrl?.trim()||``,l=i.coverMode===`content`,u=l?a.img_y||a.img_x||e.img_y||e.img_x||c||``:c||a.img_y||a.img_x||e.img_y||e.img_x||``,d=l?a.img_x||a.img_y||e.img_x||e.img_y||c||``:c||a.img_x||a.img_y||e.img_x||e.img_y||``,f=a.badge_url||e.badge_url||``,p=i.badge_url??f,m=h(i,a),g=i.is_ad===!0;return{...e,...a,id:a.id||e.id||`preview-recommend-${r+1}`,name:s,img_y:u,img_x:d,is_ad:g,ad_advertise_url:g?i.ad_advertise_url?.trim()||``:void 0,ad_advertise_icon:g?i.ad_advertise_icon?.trim()||u||d||``:void 0,badge_url:p||void 0,[o]:m}}):e}function h(e,t){let n=t[o],r={showPlayCount:e.showPlayCount??n?.showPlayCount,playCountDelta:e.playCountDelta??n?.playCountDelta,showEpisode:e.showEpisode??n?.showEpisode};if(!(r.showPlayCount===void 0&&r.playCountDelta===void 0&&r.showEpisode===void 0))return r}function g(n,a){return _(n,t,1,i)*_(a,e,1,r)}function _(e,t,n,r){let i=Number(e);return Number.isFinite(i)?Math.min(r,Math.max(n,Math.floor(i))):t}function v({variant:e,schemaTitle:t,enableInfinite:r,smartTagEnabled:i,rows:a,columns:o,items:s}){let c=new Map,l=i?[]:Array.isArray(s)?s.filter(Boolean):[],u=m(p(f({variant:e,enableInfinite:r,rows:a,columns:o,items:l})),l,c);return{title:t&&t.trim()||n,list:u,icons:[],cursor:``,show_style:void 0}}export{o as HOME_RECOMMEND_CARD_CONFIG_FIELD,v as buildHomeRecommendEditorPreviewData};
@@ -0,0 +1,17 @@
1
+
2
+ import { InferSchemaProps } from "../../../../utils/schema/schema.mjs";
3
+ import "../../../../utils.mjs";
4
+ import { hotRecommendInspectorPropsSchema } from "./schema.mjs";
5
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
6
+
7
+ //#region components/biz/business/hot-recommend/client.d.ts
8
+ type HotRecommendProps = InferSchemaProps<typeof hotRecommendInspectorPropsSchema>;
9
+ interface ClientProps extends HotRecommendProps {
10
+ onItemClick?: (keyword: string) => void;
11
+ }
12
+ /**
13
+ * 热门推荐物料组件 - 客户端部分
14
+ */
15
+ declare function HotRecommendClient(props: ClientProps): react_jsx_runtime0.JSX.Element | null;
16
+ //#endregion
17
+ export { HotRecommendClient, HotRecommendProps };
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import{useRouter as e}from"../../../../utils/use-compatible-router.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import{useCallback as r,useId as i,useMemo as a,useRef as o,useState as s}from"react";import{jsx as c,jsxs as l}from"react/jsx-runtime";import{usePathname as u,useSearchParams as d}from"next/navigation";const f=[];function p(e,t){if(e.length<=t)return[...e];let n=[...e];for(let e=0;e<t;e++){let t=e+Math.floor(Math.random()*(n.length-e));[n[e],n[t]]=[n[t],n[e]]}return n.slice(0,t)}function m({className:e=``}){let t=i().replace(/:/g,``);return l(`svg`,{viewBox:`0 0 62.4481 14.192`,fill:`none`,"aria-hidden":!0,className:e,children:[l(`g`,{children:[c(`path`,{d:`M50.7201 4V3.04H47.9841V0.768H50.7201V0H53.3281V0.768H57.1201V0H59.7441V0.768H62.4481V3.04H59.7441V4H57.1201V3.04H53.3281V4H50.7201ZM48.1281 8.32C48.4587 8.32 48.8054 8.27733 49.1681 8.192C49.5307 8.096 49.8934 7.968 50.2561 7.808C50.6294 7.63733 50.9867 7.43467 51.3281 7.2C51.6801 6.95467 52.0054 6.688 52.3041 6.4H48.3041V4.464H53.5681C53.7067 4.112 53.7761 3.72267 53.7761 3.296H56.4641C56.4641 3.68 56.4107 4.06933 56.3041 4.464H62.1121V6.4H55.5041C55.4401 6.51733 55.3707 6.62933 55.2961 6.736C55.2321 6.832 55.1574 6.93867 55.0721 7.056H61.1841V7.536C61.1841 7.94133 61.1147 8.33067 60.9761 8.704C60.8481 9.07733 60.5921 9.39733 60.2081 9.664H62.3041V11.488H59.2801V11.696C59.2801 12.1653 59.2267 12.5547 59.1201 12.864C59.0134 13.1733 58.8534 13.4187 58.6401 13.6C58.4267 13.792 58.1601 13.9253 57.8401 14C57.5201 14.0747 57.1521 14.112 56.7361 14.112H54.7361V12.432H55.2481C55.5894 12.4213 55.8561 12.4 56.0481 12.368C56.2507 12.336 56.4001 12.288 56.4961 12.224C56.6027 12.16 56.6721 12.0853 56.7041 12C56.7361 11.9147 56.7521 11.8133 56.7521 11.696V11.488H53.2161V9.664H56.7521V9.44C57.2321 9.44 57.6267 9.39733 57.9361 9.312C58.2454 9.216 58.4747 9.04 58.6241 8.784H54.4641V7.856C54.1547 8.208 53.8187 8.544 53.4561 8.864C53.1041 9.17333 52.7254 9.456 52.3201 9.712V14.176H49.7761V10.784C49.2534 10.912 48.7041 10.976 48.1281 10.976V8.32Z`,fill:`url(#${t})`}),c(`path`,{d:`M40.3361 0.0159912C40.3361 0.805325 40.2614 1.53066 40.1121 2.19199H46.3841V4.28799H44.3361V5.45599H46.1601V7.31199H44.3361V8.47999H46.1601V10.352H44.3361V11.648H46.4961V13.968H40.1121V14.192H37.5681V5.63199C37.3441 5.69599 37.1201 5.72799 36.8961 5.72799V2.92799C37.2694 2.92799 37.5361 2.68799 37.6961 2.20799C37.8561 1.72799 37.9361 0.997325 37.9361 0.0159912H40.3361ZM33.2641 0.0159912H35.6641V2.20799H36.6721V4.57599H35.6641V6.20799L36.6881 6.09599V8.47999L35.6641 8.62399V10.992C35.6641 11.408 35.6427 11.8027 35.6001 12.176C35.5574 12.56 35.4507 12.8907 35.2801 13.168C35.1201 13.456 34.8801 13.68 34.5601 13.84C34.2401 14.0107 33.8081 14.096 33.2641 14.096H32.1921V11.872H32.6241C32.9014 11.872 33.0774 11.7973 33.1521 11.648C33.2267 11.488 33.2641 11.184 33.2641 10.736V8.97599L31.9841 9.15199V6.63999L33.2641 6.49599V4.57599H32.0641V2.20799H33.2641V0.0159912ZM41.6001 0.0159912H44.4161L44.4641 1.90399H41.6481L41.6001 0.0159912ZM40.1121 5.45599H41.8881V4.28799H40.1121V5.45599ZM40.1121 8.47999H41.8881V7.31199H40.1121V8.47999ZM40.1121 11.648H41.8881V10.352H40.1121V11.648Z`,fill:`url(#${t})`}),c(`path`,{d:`M16.6721 2.49599L16.6081 0.0159912H19.8401L19.9041 2.49599H16.6721ZM24.9601 14.192V11.68H25.7121C26.0427 11.68 26.2987 11.6587 26.4801 11.616C26.6721 11.5733 26.8161 11.4987 26.9121 11.392C27.0081 11.2747 27.0667 11.12 27.0881 10.928C27.1094 10.736 27.1201 10.4907 27.1201 10.192V2.68799H20.8001V0.175991H29.9521V10.448C29.9521 11.2267 29.8827 11.8613 29.7441 12.352C29.6161 12.8427 29.3921 13.2213 29.0721 13.488C28.7521 13.7653 28.3201 13.952 27.7761 14.048C27.2321 14.144 26.5494 14.192 25.7281 14.192H24.9601ZM16.5441 14.192V3.23199H19.3761V14.192H16.5441Z`,fill:`url(#${t})`}),c(`path`,{d:`M6.48499e-05 7.18399V5.10399L1.87206 5.02399V3.82399H0.176065V1.45599H1.87206V0.0159912H4.25607V1.45599H6.00007V3.82399H4.25607V4.91199L5.84007 4.84799V6.92799L4.25607 6.99199V8.36799C4.25607 8.73066 4.22407 9.06132 4.16007 9.35999C4.09607 9.65866 3.97873 9.91466 3.80806 10.128C3.64807 10.3413 3.41873 10.5067 3.12007 10.624C2.83207 10.7413 2.45873 10.8 2.00006 10.8H0.592065V8.68799H1.05606C1.24806 8.68799 1.3974 8.66666 1.50406 8.62399C1.6214 8.58132 1.70673 8.52266 1.76006 8.44799C1.8134 8.36266 1.8454 8.26666 1.85606 8.15999C1.86673 8.04266 1.87206 7.91999 1.87206 7.79199V7.10399L6.48499e-05 7.18399ZM13.8081 10.864C12.7627 10.864 12.0054 10.624 11.5361 10.144C11.0774 9.66399 10.8481 8.86933 10.8481 7.75999V3.82399H9.84007V4.87999V5.02399H10.5121V6.68799H9.76007C9.6854 7.46666 9.55206 8.12266 9.36006 8.65599C9.17873 9.18932 8.9174 9.62133 8.57607 9.95199C8.2454 10.2827 7.8294 10.5227 7.32807 10.672C6.82673 10.8213 6.2294 10.896 5.53607 10.896V8.79999C5.8774 8.79999 6.1654 8.76799 6.40007 8.70399C6.6454 8.63999 6.84273 8.52799 6.99207 8.36799C7.1414 8.20799 7.25873 7.99466 7.34407 7.72799C7.4294 7.45066 7.48807 7.10399 7.52007 6.68799H6.35207V5.02399H7.58406V4.84799V3.82399H6.44807V1.45599H7.60007V0.0159912H9.85606V1.45599H13.2321V7.24799C13.2321 7.66399 13.2747 7.92533 13.3601 8.03199C13.4561 8.13866 13.6321 8.19199 13.8881 8.19199H14.3521V10.864H13.8081ZM0.144065 14.192L0.256065 11.232H3.21606L3.10406 14.192H0.144065ZM11.3921 14.192L11.2481 11.232H14.2241L14.3681 14.192H11.3921ZM4.17606 14.192L4.03207 11.296H6.73607L6.86407 14.192H4.17606ZM7.77607 14.192L7.63207 11.296H10.3841L10.5121 14.192H7.77607Z`,fill:`url(#${t})`})]}),c(`defs`,{children:l(`linearGradient`,{id:t,x1:`33.7161`,y1:`-4.59601`,x2:`60.7161`,y2:`18.404`,gradientUnits:`userSpaceOnUse`,children:[c(`stop`,{stopColor:`#E914E9`}),c(`stop`,{offset:`1`,stopColor:`#6C43EE`})]})})]})}function h({className:e=``}){return c(`svg`,{viewBox:`0 0 16.6667 16.6667`,fill:`none`,"aria-hidden":!0,className:e,children:c(`path`,{d:`M8.33333 1.66667C6.04287 1.66667 4.0209 2.82188 2.82036 4.58333H5V6.25H0V1.25H1.66667V3.3328C3.18651 1.30972 5.60637 0 8.33333 0C12.9357 0 16.6667 3.73096 16.6667 8.33333H15C15 4.65143 12.0152 1.66667 8.33333 1.66667ZM1.66667 8.33333C1.66667 12.0152 4.65143 15 8.33333 15C10.6238 15 12.6458 13.8447 13.8463 12.0833H11.6667V10.4167H16.6667V15.4167H15V13.3338C13.4802 15.3569 11.0603 16.6667 8.33333 16.6667C3.73096 16.6667 0 12.9357 0 8.33333H1.66667Z`,fill:`currentColor`})})}function g({variant:e,className:t=``}){let n=i().replace(/:/g,``),r=e===`gold`?`#FFF047`:`#D7D7D7`;return l(`svg`,{viewBox:`0 0 10 8`,fill:`none`,"aria-hidden":!0,className:t,children:[c(`path`,{d:`M0.72289 1.44405L2.67531 2.6057L4.62168 0.173795C4.77092 -0.0126857 5.06132 -0.0558774 5.27027 0.0773202C5.31202 0.103935 5.34852 0.136533 5.37837 0.173795L7.32476 2.6057L9.27714 1.44405C9.49083 1.31693 9.77946 1.36845 9.92192 1.55913C9.98315 1.64113 10.0097 1.73991 9.99682 1.83779L9.23283 7.63352C9.20526 7.84249 9.00682 8 8.77105 8H1.22899C0.99323 8 0.794784 7.84249 0.767236 7.63352L0.00322932 1.83779C-0.0267734 1.61019 0.155642 1.40398 0.410663 1.3772C0.520333 1.36569 0.631013 1.38938 0.72289 1.44405ZM5.00005 5.51033C5.51357 5.51033 5.92993 5.13878 5.92993 4.68043C5.92993 4.22209 5.51357 3.85054 5.00005 3.85054C4.48647 3.85054 4.07016 4.22209 4.07016 4.68043C4.07016 5.13878 4.48647 5.51033 5.00005 5.51033Z`,fill:`url(#${n})`}),c(`defs`,{children:l(`linearGradient`,{id:n,x1:`5`,y1:`0`,x2:`5`,y2:`8`,gradientUnits:`userSpaceOnUse`,children:[c(`stop`,{stopColor:r}),c(`stop`,{offset:`1`,stopColor:r,stopOpacity:`0`})]})})]})}function _(i){let{title:_,displayCount:v=4,items:y=f,onItemClick:b,mode:x=`renderer`}=i,S=x===`editor`,C=e(),w=u(),T=d(),E=_.trim()||`热门推荐`,D=Math.max(1,v||0),[O,k]=s(0),[A,j]=s(!1),M=o(null),N=r(()=>{A||(j(!0),M.current&&clearTimeout(M.current),M.current=setTimeout(()=>{k(e=>e+1),j(!1),M.current=null},500))},[A]),P=a(()=>p(y,D),[D,y,O]);if(y.length===0)return null;let F=e=>{if(b){b(e);return}let t=new URLSearchParams(T.toString());t.set(`q`,e);let n=w.includes(`/search-result`)?w:`/search-result`;C.push(`${n}?${t.toString()}`)};return l(t,{className:`relative mx-[16px] mt-[24px] overflow-hidden rounded-[12px] bg-black${S?` pointer-events-none`:``}`,children:[c(t,{className:`pointer-events-none absolute inset-0 rounded-[12px]`,style:{background:`linear-gradient(180deg, #9756E3 0%, #6C43EE 100%), linear-gradient(180deg, rgba(255,30,255,0.7) 0%, rgba(108,67,238,0) 100%)`,padding:`0.5px`,WebkitMask:`linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)`,WebkitMaskComposite:`xor`,mask:`linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)`,maskComposite:`exclude`}}),c(t,{className:`pointer-events-none absolute inset-x-0 top-0 rounded-t-[12px] mix-blend-plus-lighter`,style:{height:`259px`,background:`linear-gradient(180deg, rgba(151,86,227,0.4) 0%, rgba(151,86,227,0) 85%)`}}),l(t,{className:`relative px-[24px] pb-[18px] pt-[22px]`,children:[l(t,{className:`flex items-center justify-between`,children:[E===`热门推荐`?c(m,{className:`h-[14.192px] w-[62.448px] shrink-0`}):c(n,{className:`shrink-0 bg-[linear-gradient(90deg,#E914E9_0%,#6C43EE_100%)] bg-clip-text font-["PingFang_SC"] text-[16px] font-semibold leading-none text-transparent`,children:E}),c(`button`,{type:`button`,"aria-label":`刷新`,className:`flex h-[20px] w-[20px] shrink-0 items-center justify-center text-white/40 transition-opacity active:opacity-70`,onClick:N,children:c(h,{className:`h-[16.6667px] w-[16.6667px] ${A?`animate-spin`:``}`})})]}),c(t,{className:`mt-[7px]`,children:P.map((e,r)=>{let i=r<3,a=r<2,o=i?`text-[#C922EF]`:`text-white/70`,s=i?`text-white/90`:`text-white/70`;return l(t,{children:[l(`button`,{type:`button`,className:`flex h-[48px] w-full items-center gap-[4px] text-left transition-opacity active:opacity-70`,onClick:()=>F(e.label),children:[l(t,{className:`relative flex h-[24px] w-[20px] shrink-0 items-end justify-center`,children:[a?c(g,{variant:r===0?`gold`:`silver`,className:`absolute left-1/2 top-0 h-[8px] w-[10px] -translate-x-1/2`}):null,c(n,{className:`font-['DIN_Black'] text-[14px] font-normal not-italic leading-[24px] ${o}`,children:r+1})]}),c(n,{className:`min-w-0 flex-1 truncate font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] ${s}`,children:e.label})]}),r<P.length-1?c(t,{className:`h-px w-full bg-white/[0.08]`}):null]},`${e.label}-${r}`)})})]})]})}export{_ as HotRecommendClient};
@@ -0,0 +1,5 @@
1
+
2
+ import { hotRecommendInspectorPropsSchema } from "./schema.mjs";
3
+ import { HotRecommendClient, HotRecommendProps } from "./client.mjs";
4
+ import { HotRecommendServer } from "./server.mjs";
5
+ import { hotRecommendMaterial } from "./material.mjs";
@@ -0,0 +1,24 @@
1
+
2
+ import { SchemaHasDefaultValue } from "../../../../utils/schema/schema.mjs";
3
+ import { DefineMaterialOption } from "../../../../utils/schema/material.mjs";
4
+ import "../../../../utils.mjs";
5
+ import { HotRecommendClient } from "./client.mjs";
6
+ import { HotRecommendServer } from "./server.mjs";
7
+ import * as zod from "zod";
8
+ import * as zod_v4_core0 from "zod/v4/core";
9
+
10
+ //#region components/biz/business/hot-recommend/material.d.ts
11
+ declare const hotRecommendMaterial: DefineMaterialOption<typeof HotRecommendServer, typeof HotRecommendClient, zod.ZodObject<{
12
+ readonly title: zod.ZodString & SchemaHasDefaultValue;
13
+ readonly displayCount: zod.ZodNumber & SchemaHasDefaultValue;
14
+ readonly items: zod.ZodArray<zod.ZodObject<{
15
+ label: zod.ZodString & SchemaHasDefaultValue;
16
+ }, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
17
+ } & {
18
+ mode: zod.ZodOptional<zod.ZodEnum<{
19
+ renderer: "renderer";
20
+ editor: "editor";
21
+ }>>;
22
+ }, zod_v4_core0.$strip>, "hot-recommend", "内容组件">;
23
+ //#endregion
24
+ export { hotRecommendMaterial };
@@ -0,0 +1,2 @@
1
+
2
+ import{defineMaterial as e}from"../../../../utils/schema/material.mjs";import{HotRecommendClient as t}from"./client.mjs";import{hotRecommendInspectorPropsSchema as n}from"./schema.mjs";import{HotRecommendServer as r}from"./server.mjs";const i=e({type:`hot-recommend`,name:`热门推荐`,icon:`/static/components-thumb/search_recommend_text.png`,category:`内容组件`,serverComponent:r,clientComponent:t,propsSchema:n});export{i as hotRecommendMaterial};
@@ -0,0 +1,23 @@
1
+
2
+ import { SchemaHasDefaultValue } from "../../../../utils/schema/schema.mjs";
3
+ import "../../../../utils.mjs";
4
+ import { z } from "zod";
5
+
6
+ //#region components/biz/business/hot-recommend/schema.d.ts
7
+ /**
8
+ * 热门推荐物料属性定义
9
+ */
10
+ declare const hotRecommendInspectorPropsSchema: z.ZodObject<{
11
+ readonly title: z.ZodString & SchemaHasDefaultValue;
12
+ readonly displayCount: z.ZodNumber & SchemaHasDefaultValue;
13
+ readonly items: z.ZodArray<z.ZodObject<{
14
+ label: z.ZodString & SchemaHasDefaultValue;
15
+ }, z.core.$strip>> & SchemaHasDefaultValue;
16
+ } & {
17
+ mode: z.ZodOptional<z.ZodEnum<{
18
+ renderer: "renderer";
19
+ editor: "editor";
20
+ }>>;
21
+ }, z.core.$strip>;
22
+ //#endregion
23
+ export { hotRecommendInspectorPropsSchema };
@@ -0,0 +1,2 @@
1
+
2
+ import{defineComponentPropsSchema as e}from"../../../../utils/schema/schema.mjs";import{z as t}from"zod";const n=e(e=>({title:e.string(`热门推荐`,{label:`标题名称`,description:`支持输入,中/英/数/符,6个字符`}),displayCount:e.number(4,{label:`展示数`}),items:e.array(t.object({label:e.string(`东野圭吾作品:11字迷案`,{label:`热词`})}),{label:`推荐位模块`,defaultValue:[{label:`东野圭吾作品:11字迷案`},{label:`嫌疑人X的献身:高智商博弈`},{label:`白夜行:原著同名悬疑改编`},{label:`神探伽利略:校园连环谜案`},{label:`假面饭店:密室追凶夜`},{label:`恶意:东野圭吾高分作品`}]})}));export{n as hotRecommendInspectorPropsSchema};
@@ -0,0 +1,11 @@
1
+
2
+ import { HotRecommendProps } from "./client.mjs";
3
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
4
+
5
+ //#region components/biz/business/hot-recommend/server.d.ts
6
+ /**
7
+ * 热门推荐物料组件 - 服务端部分
8
+ */
9
+ declare function HotRecommendServer(props: HotRecommendProps): Promise<react_jsx_runtime0.JSX.Element>;
10
+ //#endregion
11
+ export { HotRecommendServer };
@@ -0,0 +1,2 @@
1
+
2
+ import{HotRecommendClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";async function n(n){let{mode:r=`renderer`,...i}=n;return t(e,{...i,mode:r})}export{n as HotRecommendServer};
@@ -20,7 +20,7 @@ import { floatingAdMaterial } from "./advertisement/floating-ad/material.mjs";
20
20
  import { IconAd } from "./advertisement/icon-ad/client.mjs";
21
21
  import { IconAdServer } from "./advertisement/icon-ad/server.mjs";
22
22
  import { iconAdMaterial } from "./advertisement/icon-ad/material.mjs";
23
- import { PopupAdBaseProps, PopupAdInspectorProps, PopupAdItem, PopupAdProps, popupAdInspectorDefaultProps, popupAdInspectorPropsSchema } from "./advertisement/popup-ad/schema.mjs";
23
+ import { PopupAdInspectorProps, PopupAdItem, PopupAdProps, popupAdInspectorDefaultProps, popupAdInspectorPropsSchema } from "./advertisement/popup-ad/schema.mjs";
24
24
  import { PopupAd } from "./advertisement/popup-ad/client.mjs";
25
25
  import { PopupAdServer } from "./advertisement/popup-ad/server.mjs";
26
26
  import { popupAdMaterial } from "./advertisement/popup-ad/material.mjs";
@@ -78,6 +78,11 @@ import { schema as schema$11 } from "./home-recommend/home-recommend-waterfall/s
78
78
  import { HomeRecommendWaterfall } from "./home-recommend/home-recommend-waterfall/server.mjs";
79
79
  import { homeRecommendWaterfallMaterial } from "./home-recommend/home-recommend-waterfall/material.mjs";
80
80
  import "./home-recommend/index.mjs";
81
+ import { hotRecommendInspectorPropsSchema } from "./hot-recommend/schema.mjs";
82
+ import { HotRecommendClient, HotRecommendProps } from "./hot-recommend/client.mjs";
83
+ import { HotRecommendServer } from "./hot-recommend/server.mjs";
84
+ import { hotRecommendMaterial } from "./hot-recommend/material.mjs";
85
+ import "./hot-recommend/index.mjs";
81
86
  import { imageTextRecommendInspectorPropsSchema } from "./image-text-recommend/schema.mjs";
82
87
  import { ImageTextRecommendClient, ImageTextRecommendProps } from "./image-text-recommend/client.mjs";
83
88
  import { ImageTextRecommendServer } from "./image-text-recommend/server.mjs";
@@ -97,7 +102,7 @@ import { BasicPostCardClient } from "./post-card/variants/basic-post-card/runtim
97
102
  import { schema as schema$13 } from "./post-card/variants/basic-post-card/schema/index.mjs";
98
103
  import "./post-card/index.mjs";
99
104
  import { ProfileHeaderInspectorProps, UserProfileHeaderAuthConfig, UserProfileHeaderClientProps, profileHeaderInspectorDefaultProps, profileHeaderInspectorPropsSchema } from "./profile/profile-header/schema.mjs";
100
- import { UserProfileHeaderClient } from "./profile/profile-header/client.mjs";
105
+ import { UserProfileHeaderClient, defaultBackground } from "./profile/profile-header/client.mjs";
101
106
  import { profileHeaderMaterial, profileHeaderMaterialWithDisabledBackground } from "./profile/profile-header/material.mjs";
102
107
  import { ProfileMainInspectorProps, UserProfileMainProps, profileMainInspectorDefaultProps, profileMainInspectorPropsSchema } from "./profile/profile-main/schema.mjs";
103
108
  import { UserProfileMainClient } from "./profile/profile-main/client.mjs";
@@ -141,6 +146,10 @@ import { SearchInputClient, SearchInputProps } from "./search-input/client.mjs";
141
146
  import { SearchInputServer } from "./search-input/server.mjs";
142
147
  import { searchInputMaterial } from "./search-input/material.mjs";
143
148
  import "./search-input/index.mjs";
149
+ import { SearchWaterfallRecommendClient, SearchWaterfallRecommendProps } from "./search-waterfall-recommend/client.mjs";
150
+ import { SearchWaterfallRecommendServer } from "./search-waterfall-recommend/server.mjs";
151
+ import { searchWaterfallRecommendMaterial } from "./search-waterfall-recommend/material.mjs";
152
+ import "./search-waterfall-recommend/index.mjs";
144
153
  import { TabBarInspectorProps, tabBarInspectorDefaultProps, tabBarInspectorPropsSchema } from "./tab-bar/schema.mjs";
145
154
  import { TabBarClient, TabBarItem, TabBarItemConfigType, TabBarProps } from "./tab-bar/client.mjs";
146
155
  import { TabBarServer } from "./tab-bar/server.mjs";
@@ -1,2 +1,2 @@
1
1
 
2
- import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../ui/link.mjs";import{getFeedAdIcon as i,getFeedAdJumpUrl as a,isFeedAdItem as o}from"../advertisement/feed-ad/index.mjs";import s from"../../../../assets/icons/view.mjs";import{jsx as c,jsxs as l}from"react/jsx-runtime";function u(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({data:d}){return d?c(t,{children:(Array.isArray(d)?d:[d]).map((d,f)=>{if(!d||typeof d!=`object`)return null;let{id:p,title:m,desc:h,cover:g,tagImageUrl:_,showEpisode:v,episodeText:y,showPlayCount:b,play_count:x}=d,S=o(d),C=m||``,w=(S?i(d):``)||g,T=S?a(d):p?`/video/${p}/${C?encodeURIComponent(C):``}`:`#`,E=_?String(_):null,D=y==null?``:String(y).trim(),O=!S&&(v??!0)&&D!==``,k=!S&&(b??!0),A=u(x);return S?c(t,{children:c(r,{href:T,children:l(t,{className:`relative w-full overflow-hidden rounded-[8px] bg-[rgba(90,90,90,0.48)]`,style:{aspectRatio:`358 / 263`},children:[l(t,{className:`absolute inset-x-0 top-0 overflow-hidden`,style:{height:`83.65%`},children:[w&&c(t,{className:`absolute top-0`,style:{left:`-6.42%`,width:`202.24%`,height:`163.64%`},children:c(e,{src:w,alt:C||`广告封面`,fill:!0,objectFit:`cover`})}),c(t,{className:`absolute right-0 top-0 flex items-center justify-center`,style:{width:`15.64%`,height:`9.51%`,minWidth:`56px`,minHeight:`25px`,borderBottomLeftRadius:`16px`,backgroundColor:`rgba(0, 0, 0, 0.33)`},children:c(n,{className:`text-white`,style:{fontSize:`clamp(12px, 3.35vw, 16px)`,lineHeight:`normal`},children:`广告`})})]}),l(t,{className:`absolute inset-x-0 bottom-0 flex items-center justify-between bg-white`,style:{height:`16.35%`,minHeight:`43px`,padding:`0 3.35%`},children:[c(t,{className:`min-w-0 flex-1`,style:{paddingRight:`3.35%`},children:c(n,{as:`h3`,className:`line-clamp-1 text-[#161616]`,style:{fontSize:`clamp(14px, 3.9vw, 18px)`,lineHeight:`normal`},children:C})}),c(t,{className:`flex shrink-0 items-center justify-center rounded-[16px] border border-[#FD4C5E]`,style:{width:`14.53%`,height:`10.27%`,minWidth:`52px`,minHeight:`27px`},children:c(n,{className:`text-[#FD4C5E]`,style:{fontSize:`clamp(14px, 3.9vw, 18px)`,lineHeight:`normal`},children:`前往`})})]})]})})},p||C||`large-grid-item-${f}`):c(t,{children:l(r,{href:T,children:[l(t,{className:`relative w-full overflow-hidden rounded-[12px] bg-neutral-800`,style:{aspectRatio:`16/9`},children:[w&&c(e,{src:w,alt:C||`封面`,fill:!0,objectFit:`cover`}),E&&c(t,{className:`absolute top-0 right-0 z-10 w-[37px] h-[20px]`,children:c(e,{src:E,alt:C||`角标`,fill:!0,sizes:`37px`,className:`object-contain`})}),c(t,{className:`absolute inset-x-0 bottom-0 h-[40px] bg-gradient-to-t from-black/80 to-transparent z-0 pointer-events-none`}),k&&l(t,{className:`absolute bottom-0 left-[8px] mb-[6px] z-10 flex items-center gap-[4px]`,children:[c(s,{className:`h-[14px] w-[14px] text-white`}),c(n,{as:`span`,className:`text-[12px] font-medium text-white drop-shadow-md`,children:A})]}),O&&c(t,{className:`absolute bottom-0 right-[8px] mb-[6px] z-10 flex items-center`,children:c(n,{as:`span`,className:`text-[12px] font-medium text-white drop-shadow-md`,children:D})})]}),l(t,{className:`flex items-center justify-between gap-[12px] pt-[10px] px-2`,children:[l(t,{className:`flex-1 min-w-0`,children:[c(n,{as:`h3`,className:`text-[16px] font-semibold leading-[24px] text-text1 line-clamp-1`,children:C}),h&&c(n,{as:`p`,className:`mt-[4px] text-[13px] leading-[20px] text-text2 line-clamp-1`,children:h})]}),c(n,{className:`shrink-0 rounded-[20px] border border-[#FD4C5E] px-[24px] py-[8px] text-[14px] font-normal text-[#FD4C5E]`,children:`观看`})]})]})},p||C||`large-grid-item-${f}`)})}):null}export{d as LargeGridItemClient};
2
+ import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../ui/link.mjs";import i from"../../../../assets/icons/view.mjs";import{Fragment as a,jsx as o,jsxs as s}from"react/jsx-runtime";function c(e){let t=Number(e||0);if(Number.isNaN(t)||t<=0)return``;if(t>=1e6){let e=(t/1e6).toFixed(1);return e.endsWith(`.0`)?`${e.slice(0,-2)}M`:`${e}M`}return t>=1e3?`${(t/1e3).toFixed(1)}k`:String(Math.floor(t))}function l({data:l}){return l?o(t,{className:`flex flex-col gap-[12px]`,children:(Array.isArray(l)?l:[l]).map((l,u)=>{if(!l||typeof l!=`object`)return null;let{id:d,title:f,desc:p,cover:m,tagImageUrl:h,showEpisode:g,episodeText:_,showPlayCount:v,play_count:y}=l,b=f||``,x=d?`/video/${d}/${b?encodeURIComponent(b):``}`:`#`,S=_==null?``:String(_).trim(),C=(g??!0)&&S!==``,w=v??!0,T=c(y)||`0`;return o(t,{children:o(r,{href:x,className:`block`,children:s(t,{className:`relative h-[204px] w-full overflow-hidden rounded-[8px] bg-[rgba(6,3,20,0.5)]`,children:[s(t,{className:`relative h-[134px] w-full overflow-hidden rounded-t-[8px]`,children:[m&&o(e,{src:m,alt:b||`封面`,fill:!0,objectFit:`cover`}),h&&String(h).trim()&&o(t,{className:`absolute left-[16px] top-[12px]`,children:o(t,{className:`inline-flex items-center justify-center rounded-[4px] px-[4px] py-[4px]`,style:{background:`linear-gradient(90deg, #CA3FE9 0%, #9756E3 100%)`},children:o(e,{src:String(h),alt:``,width:75,height:14,className:`h-[14px] w-auto object-contain`})})}),s(t,{className:`absolute bottom-[12px] left-[16px] right-[16px] flex items-center justify-between`,children:[o(t,{className:`flex items-center gap-[4px]`,children:w&&s(a,{children:[o(i,{className:`size-[22px] text-white opacity-80`}),o(n,{className:`text-[14px] leading-[20px] text-white`,children:T})]})}),C&&o(n,{className:`text-[14px] leading-[20px] text-white`,children:S})]})]}),o(t,{className:`px-[16px] pt-[12px]`,children:s(t,{className:`flex flex-col gap-[2px]`,children:[o(n,{className:`line-clamp-1 text-[16px] font-medium leading-[22px] text-white`,children:b}),p&&o(n,{className:`line-clamp-1 text-[14px] leading-[20px] text-white/50`,children:p})]})})]})})},d||b||`large-grid-item-${u}`)})}):null}export{l as LargeGridItemClient};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{isClient as e}from"../../../../utils/common.mjs";import{pContentBatchGetVideoDetail as t}from"../../../../service/generated/client.mjs";import{Box as n}from"../../../ui/box.mjs";import{Text as r}from"../../../ui/text.mjs";import i from"../../../ui/loading.mjs";import a from"../../../ui/link.mjs";import{useSingleFirstRowHeight as o}from"../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as s}from"../../../../hooks/use-min-duration-loading.mjs";import c from"../../../../assets/icons/common/right_arrow.mjs";import{isFeedAdItem as l}from"../advertisement/feed-ad/index.mjs";import{LargeGridItemClient as u}from"./card-item.mjs";import{largeFeatureGridInspectorDefaultProps as d}from"./schema.mjs";import{useEffect as f,useMemo as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v=[],y=d.data??[];function b(e){return e==null}function x(e,t){return b(e)?t:e}function S(e){return typeof e==`string`?e.trim():``}function C(e){return S(e)}function w(e){let t=Number(e);if(!(!Number.isFinite(t)||t<0))return t}function T(e){let t=e,n=S(e.update_status)===`0`,r=(Array.isArray(t.episodes)?t.episodes.length:0)||(Array.isArray(e.video_episodes)?e.video_episodes.length:0)||(Array.isArray(e.links)?e.links.length:0)||(w(e.episode_cnt)??0);return!Number.isFinite(r)||r<=0?``:`${n?`更新至`:`全`}${Math.floor(r)}集`}function E(e,t){return t?{...e,...t,id:x(t.id,e.id),cover:x(t.cover,e.cover),title:x(t.title,e.title),desc:x(t.desc,e.desc),play_count:x(t.play_count,e.play_count),showPlayCount:t.showPlayCount??e.showPlayCount,episodeText:x(t.episodeText,e.episodeText),showEpisode:t.showEpisode??e.showEpisode,useContentCover:t.useContentCover??e.useContentCover,tagImageUrl:x(t.tagImageUrl,e.tagImageUrl)}:e}function D(e,t){if(!t)return e;let n=e.items;return{...e,...t,title:x(t.title,e.title),moreUrl:x(t.moreUrl,e.moreUrl),moreLinkType:t.moreLinkType??e.moreLinkType,items:n?E(n,t.items):t.items}}function O({mode:d=`renderer`,data:b=v}){let x=d===`editor`,S=b??v,E=Array.isArray(S)&&S.length>0,O=p(()=>E?[D(y[0],S[0])]:y,[E,S]),[k,A]=h(O),j=m(``),M=m(null),{isLoading:N,show:P,hide:F,cancel:I}=s(500);f(()=>{A(O)},[O]);let L=o({enabled:!x,containerRef:M,itemRef:M,deps:[k.length]}),R=p(()=>{if(x||!E)return``;let e=O.map(e=>C(e?.items?.id)).filter(Boolean);return Array.from(new Set(e)).join(`,`)},[E,x,O]);if(f(()=>{if(x||!e()||!R||j.current===R)return;j.current=R;let n=!1;async function r(){try{P();let e=await t({ids:R.split(`,`).filter(Boolean)},{cache:`no-store`}),r=Array.isArray(e.data?.videos)?e.data.videos:[],i=new Map;if(r.forEach(e=>{let t=C(e.video_id||e.id||e.mid);t&&i.set(t,e)}),n)return;A(e=>e.map(e=>{let t=e.items;if(!t||l(t))return e;let n=C(t.id),r=n?i.get(n):void 0;if(!r)return e;let a=w(r.play_count)??w(r.browse_count),o=T(r);return{...e,items:{...t,play_count:a??t.play_count,episodeText:o||t.episodeText}}}))}catch(e){console.error(`大图推荐刷新首屏失败(client)`,e)}finally{n||F()}}return r(),()=>{n=!0,I()}},[I,R,F,x,P]),!k||k.length===0)return null;let z=k[0],B=z?.title,V=z?.moreUrl,H=L>0?L/2:160,U=!x&&N;return _(n,{className:x?`p-3 pointer-events-none`:`p-3`,children:[_(n,{className:`flex items-center justify-between mb-[10px] h-[24px]`,children:[B&&g(r,{as:`h2`,className:`text-[18px] font-bold text-text1 line-clamp-1 flex-1 min-w-0 mr-[12px]`,children:B}),V&&_(a,{href:V,className:`flex items-center text-[14px] text-text2 ml-auto`,children:[`更多`,g(c,{className:`ml-[2px] h-[12px] w-[12px] text-text2`})]})]}),_(n,{className:`relative`,children:[k.map((e,t)=>{let{items:r}=e;return r?g(n,{ref:t===0?M:void 0,className:t>0?`mt-3`:``,children:g(u,{data:r})},`large-feature-grid-items-${t}`):null}),U&&g(n,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),U&&g(n,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:H},"aria-hidden":!0,children:g(i,{size:`large`,showLabel:!1,className:`text-theme5`})})]})]})}export{O as LargeFeatureGridClient};
2
+ "use client";import{isClient as e}from"../../../../utils/common.mjs";import{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 i from"../../../ui/loading.mjs";import a from"../../../ui/link.mjs";import{useSingleFirstRowHeight as o}from"../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as s}from"../../../../hooks/use-min-duration-loading.mjs";import c from"../../../../assets/icons/common/right_arrow.mjs";import{isFeedAdItem as l}from"../advertisement/feed-ad/index.mjs";import{LargeGridItemClient as u}from"./card-item.mjs";import{largeFeatureGridInspectorDefaultProps as d}from"./schema.mjs";import{useEffect as f,useMemo as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v=[],y=d.data??[];function b(e){return e==null}function x(e,t){return b(e)?t:e}function S(e){return typeof e==`string`?e.trim():``}function C(e){return S(e)}function w(e){let t=Number(e);if(!(!Number.isFinite(t)||t<0))return t}function T(e){let t=e,n=S(e.update_status)===`0`,r=(Array.isArray(t.episodes)?t.episodes.length:0)||(Array.isArray(e.video_episodes)?e.video_episodes.length:0)||(Array.isArray(e.links)?e.links.length:0)||(w(e.episode_cnt)??0);return!Number.isFinite(r)||r<=0?``:`${n?`更新至`:`全`}${Math.floor(r)}集`}function E(e,t){return t?{...e,...t,id:x(t.id,e.id),cover:x(t.cover,e.cover),title:x(t.title,e.title),desc:x(t.desc,e.desc),play_count:x(t.play_count,e.play_count),showPlayCount:t.showPlayCount??e.showPlayCount,episodeText:x(t.episodeText,e.episodeText),showEpisode:t.showEpisode??e.showEpisode,useContentCover:t.useContentCover??e.useContentCover,tagImageUrl:x(t.tagImageUrl,e.tagImageUrl)}:e}function D(e,t){if(!t)return e;let n=e.items;return{...e,...t,title:x(t.title,e.title),moreUrl:x(t.moreUrl,e.moreUrl),moreLinkType:t.moreLinkType??e.moreLinkType,items:n?E(n,t.items):t.items}}function O({mode:d=`renderer`,data:b=v}){let x=d===`editor`,S=b??v,E=Array.isArray(S)&&S.length>0,O=p(()=>E?[D(y[0],S[0])]:y,[E,S]),[k,A]=h(O),j=m(``),M=m(null),{isLoading:N,show:P,hide:F,cancel:I}=s(500);f(()=>{A(O)},[O]);let L=o({enabled:!x,containerRef:M,itemRef:M,deps:[k.length]}),R=p(()=>{if(x||!E)return``;let e=O.map(e=>C(e?.items?.id)).filter(Boolean);return Array.from(new Set(e)).join(`,`)},[E,x,O]);if(f(()=>{if(x||!e()||!R||j.current===R)return;j.current=R;let n=!1;async function r(){try{P();let e=await t({ids:R.split(`,`).filter(Boolean)},{cache:`no-store`}),r=Array.isArray(e.data?.videos)?e.data.videos:[],i=new Map;if(r.forEach(e=>{let t=C(e.video_id||e.id||e.mid);t&&i.set(t,e)}),n)return;A(e=>e.map(e=>{let t=e.items;if(!t||l(t))return e;let n=C(t.id),r=n?i.get(n):void 0;if(!r)return e;let a=w(r.play_count)??w(r.browse_count)??w(r.view_count),o=T(r);return{...e,items:{...t,play_count:a??t.play_count,episodeText:o||t.episodeText}}}))}catch(e){console.error(`大图推荐刷新首屏失败(client)`,e)}finally{n||F()}}return r(),()=>{n=!0,I()}},[I,R,F,x,P]),!k||k.length===0)return null;let z=k[0],B=z?.title,V=z?.moreUrl,H=L>0?L/2:160,U=!x&&N;return _(n,{className:x?`p-3 pointer-events-none`:`p-3`,children:[_(n,{className:`flex items-center justify-between mb-[10px] h-[24px]`,children:[B&&g(r,{as:`h2`,className:`text-[18px] font-bold text-text1 line-clamp-1 flex-1 min-w-0 mr-[12px]`,children:B}),V&&_(a,{href:V,className:`flex items-center text-[14px] text-text2 ml-auto`,children:[`更多`,g(c,{className:`ml-[2px] h-[12px] w-[12px] text-text2`})]})]}),_(n,{className:`relative`,children:[k.map((e,t)=>{let{items:r}=e;return r?g(n,{ref:t===0?M:void 0,className:t>0?`mt-3`:``,children:g(u,{data:r})},`large-feature-grid-items-${t}`):null}),U&&g(n,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),U&&g(n,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:H},"aria-hidden":!0,children:g(i,{size:`large`,showLabel:!1,className:`text-theme5`})})]})]})}export{O as LargeFeatureGridClient};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useRouter as e}from"../../../../utils/use-compatible-router.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/marquee-enter.mjs";import a from"../../../../assets/images/marquee.mjs";import o from"./marquee.module.mjs";import{defaultMarqueePeriod as s}from"./schema.mjs";import{useEffect as c,useMemo as l,useRef as u,useState as d}from"react";import{X as f}from"lucide-react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{useTranslations as h}from"next-intl";const g=[],_=`marquee_list`;let v=null;function y(e,t=20){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function b(e,t){if(!e)return!1;if(t===`once`)return!0;let n=new Date(e),r=new Date;return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function x(){if(v)return v;let e=localStorage.getItem(_);if(!e)return v={},{};try{let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};return Object.entries(t).forEach(([e,t])=>{if(!t||typeof t!=`object`)return;let r=t.closedAt;typeof r!=`number`||Number.isNaN(r)||(n[e]={closedAt:r})}),v=n,n}catch{return v={},{}}}function S(e){v=e,localStorage.setItem(_,JSON.stringify(e))}function C(e){return x()[e]??{}}function w(e,t){S({...x(),[e]:t})}function T(e,t){return b(e.closedAt,t)}function E(_){let v=h(`components.biz.business.marquee`),{marqueeKey:b,contents:x=g,click:S,close:E,displayStrategy:D,mode:O=`renderer`}=_,k=O===`editor`,A=e(),j=u(!1),[M,N]=d(k),[P,F]=d(k),[I,L]=d(!1),[R,z]=d(0);c(()=>{L(!0)},[]);let B=l(()=>{let e=D?.period??s,t=e.start,n=e.end;if(!t&&!n)return!0;let r=Date.now(),i=t?new Date(t).getTime():0,a=n?new Date(n).getTime():2**53-1;return r>=i&&r<=a},[D?.period]),V=l(()=>(x??[]).map(e=>({...e,text:y(String(e?.text??``))})).filter(e=>!!e.text),[x]),H=b?.trim()??``;if(c(()=>{z(0)},[l(()=>V.map(e=>`${e.text??``}::${e.link??``}`).join(`|`),[V]),H]),c(()=>{k||H||j.current||process.env.NODE_ENV===`production`||(j.current=!0,console.warn(`[MarqueeClient] marqueeKey is required in renderer mode.`))},[k,H]),c(()=>{if(I){if(k){N(!0),F(!0);return}if(!D?.rule||!B||V.length===0){N(!1),F(!0);return}if(!H){N(!1),F(!0);return}N(!T(C(H),D.rule)),F(!0)}},[D?.rule,k,I,B,V.length,H]),!k&&(!I||!P||!M||!B)||V.length===0)return null;let U=V[R%V.length],W=S?.enabled===!0,G=S?.link||U.link,K=W&&!!G,q=E?.enabled===!0;function J(){!H||!D?.rule||V.length===0||w(H,{...C(H),closedAt:Date.now()})}let Y=e=>{e.stopPropagation(),N(!1),J()};function X(e){if(typeof window>`u`){A.push(e);return}if(window.isWebView===!0)try{let t=new URL(e,window.location.href);if(t.origin===window.location.origin){let e=t.pathname.split(`/`).filter(Boolean),n=e.findIndex(e=>e===`video`);n>=0&&(e[n]=`webview`,t.pathname=`/${e.join(`/`)}`)}window.location.href=t.toString();return}catch{window.location.href=e;return}A.push(e)}function Z(){k||K&&G&&(N(!1),J(),X(G))}let Q=()=>{k||!M||V.length<=1||z(e=>(e+1)%V.length)},$=k?o[`marquee-item-paused`]:V.length>1?o[`marquee-item-once`]:o[`marquee-item-loop`];return p(n,{className:k?`px-3 py-2 w-full bg-bg1 pointer-events-none`:`px-3 py-2 w-full bg-bg1`,children:m(n,{className:`pl-[2px] pr-[12px] py-[2px] flex items-center w-full cursor-pointer relative rounded-[8px] overflow-hidden ${o[`marquee-shell`]}`,onClick:Z,children:[p(n,{className:`relative shrink-0 w-[36px] h-[36px] mr-[4px]`,children:p(t,{src:typeof a==`string`?a:a.src,alt:v(`noticeAlt`),fill:!0,className:`object-cover`,unoptimized:!0})}),p(n,{className:`flex-1 overflow-hidden relative h-[22px] ml-1`,children:p(n,{className:`absolute inset-y-0 left-0 flex items-center whitespace-nowrap ${$}`,onAnimationEnd:Q,children:p(r,{className:`inline-block text-[14px] text-[#f59e0b] leading-[22px] font-medium`,children:U.text})},`marquee-item-${R}`)}),m(n,{className:`flex items-center gap-[12px] shrink-0 ml-[4px]`,children:[K&&p(i,{className:`h-[16px] w-[16px] shrink-0`}),q&&p(n,{className:`opacity-30 hover:opacity-100 transition-opacity`,onClick:Y,children:p(f,{className:`w-[12px] h-[12px] text-[#F59E0B]`})})]})]})})}export{E as MarqueeClient};
2
+ "use client";import{useRouter as e}from"../../../../utils/use-compatible-router.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../../assets/icons/marquee-close.mjs";import i from"../../../../assets/icons/marquee-speaker.mjs";import a from"./marquee.module.mjs";import{defaultMarqueePeriod as o}from"./schema.mjs";import{useEffect as s,useMemo as c,useRef as l,useState as u}from"react";import{jsx as d,jsxs as f}from"react/jsx-runtime";const p=[],m=`marquee_list`;let h=null;function g(e,t=20){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function _(e,t){if(!e)return!1;if(t===`once`)return!0;let n=new Date(e),r=new Date;return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function v(){if(h)return h;let e=localStorage.getItem(m);if(!e)return h={},{};try{let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};return Object.entries(t).forEach(([e,t])=>{if(!t||typeof t!=`object`)return;let r=t.closedAt;typeof r!=`number`||Number.isNaN(r)||(n[e]={closedAt:r})}),h=n,n}catch{return h={},{}}}function y(e){h=e,localStorage.setItem(m,JSON.stringify(e))}function b(e){return v()[e]??{}}function x(e,t){y({...v(),[e]:t})}function S(e,t){return _(e.closedAt,t)}function C(m){let{marqueeKey:h,contents:_=p,click:v,close:y,displayStrategy:C,mode:w=`renderer`}=m,T=w===`editor`,E=e(),D=l(!1),[O,k]=u(T),[A,j]=u(T),[M,N]=u(!1),[P,F]=u(0);s(()=>{N(!0)},[]);let I=c(()=>{let e=C?.period??o,t=e.start,n=e.end;if(!t&&!n)return!0;let r=Date.now(),i=t?new Date(t).getTime():0,a=n?new Date(n).getTime():2**53-1;return r>=i&&r<=a},[C?.period]),L=c(()=>(_??[]).map(e=>({...e,text:g(String(e?.text??``))})).filter(e=>!!e.text),[_]),R=h?.trim()??``;if(s(()=>{F(0)},[c(()=>L.map(e=>`${e.text??``}::${e.link??``}`).join(`|`),[L]),R]),s(()=>{T||R||D.current||process.env.NODE_ENV===`production`||(D.current=!0,console.warn(`[MarqueeClient] marqueeKey is required in renderer mode.`))},[T,R]),s(()=>{if(M){if(T){k(!0),j(!0);return}if(!C?.rule||!I||L.length===0){k(!1),j(!0);return}if(!R){k(!1),j(!0);return}k(!S(b(R),C.rule)),j(!0)}},[C?.rule,T,M,I,L.length,R]),!T&&(!M||!A||!O||!I)||L.length===0)return null;let z=L[P%L.length],B=v?.enabled===!0,V=v?.link||z.link,H=B&&!!V,U=y?.enabled===!0;function W(){!R||!C?.rule||L.length===0||x(R,{...b(R),closedAt:Date.now()})}let G=e=>{e.stopPropagation(),k(!1),W()};function K(e){if(typeof window>`u`){E.push(e);return}if(window.isWebView===!0)try{let t=new URL(e,window.location.href);if(t.origin===window.location.origin){let e=t.pathname.split(`/`).filter(Boolean),n=e.findIndex(e=>e===`video`);n>=0&&(e[n]=`webview`,t.pathname=`/${e.join(`/`)}`)}window.location.href=t.toString();return}catch{window.location.href=e;return}E.push(e)}function q(){T||H&&V&&(k(!1),W(),K(V))}let J=()=>{T||!O||L.length<=1||F(e=>(e+1)%L.length)},Y=T?a[`marquee-item-paused`]:L.length>1?a[`marquee-item-once`]:a[`marquee-item-loop`],X=U?d(`button`,{type:`button`,"aria-label":`关闭`,className:`flex size-6 shrink-0 items-center justify-center overflow-hidden p-0.5`,onClick:G,children:d(r,{className:`h-5 w-5`,"aria-hidden":!0})}):d(t,{className:`flex size-6 shrink-0 items-center justify-center overflow-hidden p-0.5`,"aria-hidden":!0});return f(t,{className:`grid h-8 w-full grid-cols-[20px_1fr_24px] items-center gap-2 bg-white/10 px-4 py-1 backdrop-blur-[2px] ${H?`cursor-pointer`:``} ${T?`pointer-events-none`:``}`,onClick:q,children:[d(i,{className:`h-5 w-5 shrink-0`,"aria-hidden":!0}),d(t,{className:`relative h-5 min-w-0 w-full overflow-hidden`,children:d(t,{className:`absolute inset-y-0 left-0 flex items-center whitespace-nowrap ${Y}`,onAnimationEnd:J,children:d(n,{className:`inline-block font-sans text-[14px] font-normal leading-[20px] not-italic text-white/90`,children:z.text})},`marquee-item-${P}`)}),X]})}export{C as MarqueeClient};
@@ -1,9 +1,5 @@
1
1
 
2
- import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t=`.marquee-module_marquee-shell__UrSDr {
3
- background-image: linear-gradient(154deg, rgba(255, 228, 133, 0.2) 9.14%, rgba(207, 129, 37, 0.05) 90.86%);
4
- }
5
-
6
- .marquee-module_marquee-item-loop__xI-aW {
2
+ import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t=`.marquee-module_marquee-item-loop__xI-aW {
7
3
  animation: marquee-module_funhub-marquee-run__evIQh 12s linear infinite;
8
4
  }
9
5
 
@@ -25,4 +21,4 @@ import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/sty
25
21
  transform: translateX(-100%);
26
22
  }
27
23
  }
28
- `,n={"marquee-shell":`marquee-module_marquee-shell__UrSDr`,"marquee-item-loop":`marquee-module_marquee-item-loop__xI-aW`,"funhub-marquee-run":`marquee-module_funhub-marquee-run__evIQh`,"marquee-item-once":`marquee-module_marquee-item-once__KFzcv`,"marquee-item-paused":`marquee-module_marquee-item-paused__edGch`};e(t);export{n as default};
24
+ `,n={"marquee-item-loop":`marquee-module_marquee-item-loop__xI-aW`,"funhub-marquee-run":`marquee-module_funhub-marquee-run__evIQh`,"marquee-item-once":`marquee-module_marquee-item-once__KFzcv`,"marquee-item-paused":`marquee-module_marquee-item-paused__edGch`};e(t);export{n as default};
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { ProfileHeaderInspectorProps, UserProfileHeaderAuthConfig, UserProfileHeaderClientProps, profileHeaderInspectorDefaultProps, profileHeaderInspectorPropsSchema } from "./profile-header/schema.mjs";
3
- import { UserProfileHeaderClient } from "./profile-header/client.mjs";
3
+ import { UserProfileHeaderClient, defaultBackground } from "./profile-header/client.mjs";
4
4
  import { profileHeaderMaterial, profileHeaderMaterialWithDisabledBackground } from "./profile-header/material.mjs";
5
5
  import "./profile-header/index.mjs";
6
6
  import { ProfileMainInspectorProps, UserProfileMainProps, profileMainInspectorDefaultProps, profileMainInspectorPropsSchema } from "./profile-main/schema.mjs";
@@ -3,6 +3,7 @@ import { UserProfileHeaderClientProps } from "./schema.mjs";
3
3
  import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
5
5
  //#region components/biz/business/profile/profile-header/client.d.ts
6
+ declare const defaultBackground = "/images/mine/img_mine_head_bg.png";
6
7
  /**
7
8
  * 用户资料头部组件,包含资料请求与头部交互。
8
9
  */
@@ -16,4 +17,4 @@ declare function UserProfileHeaderClient({
16
17
  mode
17
18
  }: UserProfileHeaderClientProps): react_jsx_runtime0.JSX.Element;
18
19
  //#endregion
19
- export { UserProfileHeaderClient };
20
+ export { UserProfileHeaderClient, defaultBackground };
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserInfo as r,gUserViewUserInfo as i}from"../../../../../service/generated/client.mjs";import{useRouter as a}from"../../../../../utils/use-compatible-router.mjs";import{Box as o}from"../../../../ui/box.mjs";import{Text as s}from"../../../../ui/text.mjs";import{Skeleton as c}from"../../../../ui/skeleton.mjs";import{useLoginModalStore as l}from"../../../../../store/modules/login-modal-store.mjs";import{useRequest as u}from"../../../../../hooks/query/use-query.mjs";import{LeftArrowIcon as d}from"../../../../common/icons/left-arrow.mjs";import{SettingIcon as f}from"../../../../common/icons/setting.mjs";import{UserProfileAvatar as p}from"./user-profile-avatar.mjs";import{UserProfileCoverBackground as m}from"./user-profile-cover-background.mjs";import{useEffect as ee,useMemo as te,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";import{useTranslations as v}from"next-intl";import y from"next/link";const b=n.persist,x=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,S=`/images/mine/img_mine_head_bg.png`;function C({showBackButton:n,isMine:r,enableCustomBackground:i,className:a}){return _(o,{className:e(`flex flex-col relative`,a),children:[_(o,{className:`absolute top-0 p-3 z-10 flex items-center justify-between w-full`,children:[g(t,{variant:`ghost`,size:`icon-xs`,className:e(`h-4 w-4 p-0 hover:bg-transparent`,{invisible:!n}),disabled:!0,children:g(d,{className:`w-4 h-4`})}),g(o,{className:e({invisible:!r}),children:g(f,{})})]}),g(o,{className:i?`h-33.75`:`h-24`,children:g(c,{className:`h-full w-full rounded-none`})}),_(o,{className:`flex-1 px-3`,children:[_(o,{className:`relative flex justify-end`,children:[g(c,{className:`absolute bottom-3 left-0 h-22 w-22 rounded-full`}),g(o,{className:`py-4 h-12`})]}),_(o,{className:`flex items-center justify-between gap-1`,children:[g(c,{className:`h-7 w-[132px]`}),g(c,{className:`h-10 w-[104px] rounded-full shrink-0`})]}),_(o,{className:`min-h-11 pt-1 pb-0 flex flex-col gap-2`,children:[g(c,{className:`h-4 w-[76%]`}),g(c,{className:`h-4 w-[58%]`})]})]})]})}function w({id:c,enableCustomBackground:w=!0,showBackButton:T=!0,requireLogin:E=!1,isEditorPreview:D=!1,className:O,mode:k=`renderer`}){let A=v(`components.pages.profile`),j=D||k===`editor`,M=!j,N=a(),{open:ne}=l(),{isLogin:P,userId:F,token:re}=n(),[ie,I]=h(!1);ee(()=>{if(!b){I(!0);return}I(b.hasHydrated());let e=b.onHydrate(()=>{I(!1)}),t=b.onFinishHydration(()=>{I(!0)});return()=>{e(),t()}},[]);let L=j?!1:P&&!!F&&!!re,R=j?``:F,z=R,B=c==null||!!c&&!!z&&c===z,V=B?[`user-profile`,`mine`]:[`user-profile`,`profile`,c],{data:H,isLoading:U}=u(j?[`editor-preview`,...V]:V,()=>c?i({target_user_id:c,user_id:R||c}):r({user_id:c||R||``}),{staleTime:0,enabled:M&&(!!c||!!R)}),W=te(()=>{let e=H?H.data:void 0;return e?{userId:e.user_id,isFollowing:e.is_following||!1,name:e.nick_name||`User${c??``}`,avatar:e.avatar||x,followingCnt:e.following_count??0,followersCnt:e.follower_count??0,likeCnt:e.like_count??0,signature:e.signature||``,background:e.bg_image||S}:{}},[c,H]),G=j||E&&B&&!L,K=B&&L&&!G,q=!L,J=w&&K,Y=w&&q,ae={name:A(`client.welcomeToPlanet`),description:A(`client.exploreAdventures`),avatar:x,followingCnt:0,followersCnt:0,likeCnt:0,background:S};function X(){ne()}function oe(){N.back()}let se=G?g(t,{className:`rounded-full`,size:`lg`,onClick:X,children:A(`client.loginNow`)}):B?g(y,{href:`/edit`,children:g(t,{variant:`outline`,className:`rounded-full`,children:A(`client.editProfile`)})}):null,Z=G?ae:W,Q=Z.name||``,$=Z.description||Z.signature||``,ce=Z.avatar||``;return M&&U&&!H?g(C,{showBackButton:T,isMine:B,enableCustomBackground:w,className:O}):_(o,{className:e(`flex flex-col relative`,O),children:[_(o,{className:`absolute top-0 p-3 z-10 flex items-center justify-between w-full`,children:[g(t,{variant:`ghost`,size:`icon-xs`,onClick:oe,className:e(`h-4 w-4 p-0 hover:bg-transparent`,{invisible:!T}),children:g(d,{className:`w-4 h-4`})}),g(y,{href:`/settings`,className:e({invisible:!B}),children:g(f,{})})]}),g(m,{isMine:J,enableCustomBackground:w,src:Z.background,onUnauthorizedClick:Y?X:void 0}),_(o,{className:`flex-1 px-3`,children:[_(o,{className:`relative flex justify-end`,children:[g(p,{isMine:K,src:ce,alt:Q||`avatar`,onUnauthorizedClick:q?X:void 0}),g(o,{className:`flex divide-x divide-text1/5 py-4 h-12`})]}),_(o,{className:`flex items-center justify-between gap-1`,children:[P&&B?g(y,{href:`/edit`,children:g(s,{as:`p`,className:`text-text1 max-w-[14em] text-xl overflow-hidden whitespace-nowrap text-ellipsis font-bold `,children:Q})}):g(s,{as:`p`,className:`text-text1 max-w-[14em] text-xl overflow-hidden whitespace-nowrap text-ellipsis font-bold `,children:Q}),se]}),$&&g(o,{className:`min-h-11 pt-1 pb-0`,children:g(s,{as:`p`,className:`text-sm line-clamp-2 break-all text-text1/66`,children:$})})]})]})}export{w as UserProfileHeaderClient};
2
+ "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserInfo as r,gUserViewUserInfo as i,pInteractionFollow as a,pInteractionUnfollow as o}from"../../../../../service/generated/client.mjs";import{useRouter as s}from"../../../../../utils/use-compatible-router.mjs";import{Box as c}from"../../../../ui/box.mjs";import{Text as l}from"../../../../ui/text.mjs";import{Skeleton as u}from"../../../../ui/skeleton.mjs";import{toast as d}from"../../../../../ui.mjs";import{useLoginModalStore as f}from"../../../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as p,useMutation as m,useRequest as h,useUpdateRequest as g}from"../../../../../hooks/query/use-query.mjs";import{LeftArrowIcon as _}from"../../../../common/icons/left-arrow.mjs";import{SettingIcon as v}from"../../../../common/icons/setting.mjs";import{UserProfileAvatar as y}from"./user-profile-avatar.mjs";import{UserProfileCoverBackground as b}from"./user-profile-cover-background.mjs";import{useEffect as x,useMemo as S,useState as C}from"react";import{Check as w,Plus as T}from"lucide-react";import{jsx as E,jsxs as D}from"react/jsx-runtime";import{useTranslations as O}from"next-intl";import k from"next/link";const A=n.persist,j=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,M=`/images/mine/img_mine_head_bg.png`;function ee({showBackButton:n,isMine:r,enableCustomBackground:i,className:a}){return D(c,{className:e(`relative overflow-hidden px-4 pb-8 pt-[16px]`,a),children:[E(c,{className:e(`pointer-events-none absolute inset-x-0 top-0 h-[220px]`,i?`bg-[image:var(--gradient-card-mask-strong)]`:`bg-[linear-gradient(180deg,var(--color-overlay-mask-start)_0%,var(--color-overlay-mask-end80)_100%)]`)}),D(c,{className:`absolute left-4 right-4 top-[16px] z-10 flex items-center justify-between`,children:[E(t,{variant:`ghost`,size:`icon-xs`,className:e(`h-4 w-4 p-0 hover:bg-transparent`,{invisible:!n}),disabled:!0,children:E(_,{className:`w-4 h-4`})}),E(c,{className:e({invisible:!r}),children:E(v,{className:`text-text1`})})]}),D(c,{className:`relative z-10 mt-[56px] flex items-start gap-4`,children:[E(u,{className:`h-[72px] w-[72px] shrink-0 rounded-full bg-[var(--color-surface-white10)]`}),D(c,{className:`min-w-0 flex-1`,children:[E(u,{className:`h-[26px] w-[132px] rounded-md bg-[var(--color-surface-white10)]`}),D(c,{className:`mt-1 flex flex-col gap-1`,children:[E(u,{className:`h-[20px] w-[76%] rounded-md bg-[var(--color-surface-white10)]`}),E(u,{className:`h-[20px] w-[58%] rounded-md bg-[var(--color-surface-white10)]`})]})]})]})]})}function te({userId:n,currentUserId:r,isFollowing:i}){let s=O(`components.pages.profile`),{open:c}=f(),l=p(),u=g(),{mutateAsync:h,isPending:_}=m(async e=>a(e)),{mutateAsync:v,isPending:y}=m(async e=>o(e)),b=_||y;async function x(){if(!b){if(!r){c();return}try{if(i){let e=await v({app_id:0,follower_id:r,followee_id:n});e.code===0?(d.success(s(`client.unfollowSuccess`)),S(!1),l([`check-follow`,n]),l([`user-profile`,`profile`,n])):d.error(e.message||s(`client.unfollowFailed`))}else{let e=await h({app_id:0,follower_id:r,followee_id:n});e.code===0?(d.success(s(`client.followSuccess`)),S(!0),l([`check-follow`,n]),l([`user-profile`,`profile`,n])):d.error(e.message||s(`client.followFailed`))}}catch(e){console.error(`关注操作失败`,e),d.error(s(`client.operationFailed`))}}}function S(e){u([`user-profile`,`profile`,n],t=>!t||!t.data?t:{...t,data:{...t.data,is_following:e}})}return D(t,{type:`button`,variant:`ghost`,size:`xs`,className:e(`h-6 min-w-0 gap-1 rounded-full border px-2 py-0 text-[14px] font-normal leading-5 shadow-none`,`disabled:pointer-events-none disabled:opacity-100`,i?`border-[var(--color-text-tertiary)] bg-transparent text-[var(--color-text-tertiary)] hover:!bg-[var(--color-surface-white10)] hover:!text-[var(--color-text-tertiary)]`:`border-[var(--color-text-secondary)] bg-[var(--color-overlay-create-top-black50)] text-[var(--color-text-secondary)] backdrop-blur-[2px] hover:!bg-[var(--color-overlay-create-top-black50)] hover:!text-[var(--color-text-secondary)]`),onClick:x,disabled:b,children:[E(i?w:T,{className:`size-[14px]`}),s(b?`client.processing`:i?`client.followed`:`client.follow`)]})}function N({id:a,enableCustomBackground:o=!0,showBackButton:u=!0,requireLogin:d=!1,isEditorPreview:p=!1,className:m,mode:g=`renderer`}){let w=O(`components.pages.profile`),T=p||g===`editor`,N=!T,P=s(),{open:F}=f(),{isLogin:I,userId:L,token:ne}=n(),[re,R]=C(!1);x(()=>{if(!A){R(!0);return}R(A.hasHydrated());let e=A.onHydrate(()=>{R(!1)}),t=A.onFinishHydration(()=>{R(!0)});return()=>{e(),t()}},[]);let z=T?!1:I&&!!L&&!!ne,B=T?``:L,V=B,H=a==null||!!a&&!!V&&a===V,U=H?[`user-profile`,`mine`]:[`user-profile`,`profile`,a],{data:W,isLoading:ie}=h(T?[`editor-preview`,...U]:U,()=>a?i({target_user_id:a,user_id:B||a}):r({user_id:a||B||``}),{staleTime:0,enabled:N&&(!!a||!!B)}),G=S(()=>{let e=W?W.data:void 0;return e?{userId:e.user_id,isFollowing:e.is_following||!1,name:e.nick_name||`User${a??``}`,avatar:e.avatar||j,followingCnt:e.following_count??0,followersCnt:e.follower_count??0,likeCnt:e.like_count??0,signature:e.signature||``,background:e.bg_image||M}:{}},[a,W]),K=T||d&&H&&!z,q=H&&z&&!K,J=!z,ae=o&&q,oe=o&&J,se={name:w(`client.welcomeToPlanet`),description:w(`client.exploreAdventures`),avatar:j,followingCnt:0,followersCnt:0,likeCnt:0,background:M};function Y(){F()}function ce(){P.back()}let X=!K&&!H&&a?E(te,{userId:a,currentUserId:B,isFollowing:G?.isFollowing}):null,Z=K?se:G,Q=Z.name||``,$=Z.description||Z.signature||``,le=Z.avatar||``;return N&&ie&&!W?E(ee,{showBackButton:u,isMine:H,enableCustomBackground:o,className:m}):D(c,{className:e(`relative overflow-hidden px-4 pb-8 pt-[16px]`,m),children:[E(c,{className:`absolute inset-x-0 top-0 overflow-hidden`,children:E(b,{isMine:ae,enableCustomBackground:o,src:Z.background,onUnauthorizedClick:oe?Y:void 0})}),E(c,{className:e(`pointer-events-none absolute inset-x-0 top-0 h-[220px]`,o?`bg-[image:var(--gradient-card-mask-strong)]`:`bg-[linear-gradient(180deg,var(--color-overlay-mask-start)_0%,var(--color-overlay-mask-end80)_100%)]`)}),D(c,{className:`absolute left-4 right-4 top-[16px] z-10 flex items-center justify-between`,children:[E(t,{variant:`ghost`,size:`icon-xs`,onClick:ce,className:e(`h-6 w-6 p-0 text-text1 hover:bg-transparent hover:text-[var(--color-text-secondary)]`,{invisible:!u}),children:E(_,{className:`h-4 w-4`})}),E(k,{href:`/settings`,className:e(`text-[var(--color-text-secondary)] opacity-80 transition-opacity hover:opacity-100`,{invisible:!H}),children:E(v,{})})]}),D(c,{className:e(`relative z-10 mt-[56px] flex justify-between gap-3 items-center`),children:[E(y,{isMine:q,src:le,alt:Q||`avatar`,onUnauthorizedClick:J?Y:void 0}),D(c,{className:`min-w-0 flex-1`,children:[D(c,{className:e(`flex justify-between gap-3 items-center`),children:[I&&H?E(k,{href:`/edit`,className:`min-w-0`,children:E(l,{as:`p`,className:`max-w-[195px] text-[18px] font-semibold leading-[26px] text-[var(--color-text-primary)]`,children:Q})}):E(l,{as:`p`,className:`max-w-[195px] text-[18px] font-semibold leading-[26px] text-[var(--color-text-primary)]`,onClick:()=>{!I&&H&&Y()},children:Q}),X?E(c,{className:`shrink-0 pt-0.5`,children:X}):null]}),$&&E(c,{className:`pt-1`,children:E(l,{as:`p`,className:`line-clamp-2 max-w-[195px] break-words text-[14px] leading-[20px] text-[var(--color-text-white80)]`,children:$})})]})]})]})}export{N as UserProfileHeaderClient,M as defaultBackground};
@@ -1,4 +1,4 @@
1
1
 
2
2
  import { ProfileHeaderInspectorProps, UserProfileHeaderAuthConfig, UserProfileHeaderClientProps, profileHeaderInspectorDefaultProps, profileHeaderInspectorPropsSchema } from "./schema.mjs";
3
- import { UserProfileHeaderClient } from "./client.mjs";
3
+ import { UserProfileHeaderClient, defaultBackground } from "./client.mjs";
4
4
  import { profileHeaderMaterial, profileHeaderMaterialWithDisabledBackground } from "./material.mjs";
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserEditInfo as r,pUserEditUserInfo as i}from"../../../../../service/generated/client.mjs";import{uploadFile as a}from"../../../../../utils/upload-file.mjs";import{Avatar as o,AvatarFallback as s,AvatarImage as c}from"../../../../ui/avatar.mjs";import{Box as l}from"../../../../ui/box.mjs";import{Input as u}from"../../../../ui/input.mjs";import{Dialog as d,DialogContent as f}from"../../../../ui/dialog.mjs";import{Text as p}from"../../../../ui/text.mjs";import{useDeleteRequest as m}from"../../../../../hooks/query/use-query.mjs";import{ImageCropModal as h}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{useRef as g,useState as _}from"react";import{Fragment as v,jsx as y,jsxs as b}from"react/jsx-runtime";import{toast as x}from"sonner";import{useTranslations as S}from"next-intl";const C=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,w=[`image/jpeg`,`image/png`];function T(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return w.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function E({isMine:w,src:E,alt:D,onUnauthorizedClick:O}){let k=S(`components.pages.profile`),A=g(null),{userId:j,setUserInfo:M,userInfo:N}=n(),P=m(),[F,I]=_(!1),[L,R]=_(!1),[z,B]=_(``),[V,H]=_(!1);function U(){if(!V){if(w){I(!0);return}O?.()}}function W(){z&&(URL.revokeObjectURL(z),B(``))}function G(){I(!1)}function K(){V||A.current?.click()}async function q(e){let t=(await r({user_id:String(j)})).data;return{user_id:String(j),nick_name:t?.nick_name??N?.nick_name??void 0,avatar:e||void 0,signature:t?.signature??N?.signature??void 0,gender:t?.gender??N?.gender??void 0}}function J(e){let t=e.target.files?.[0];if(t){if(!T(t)){x.error(k(`client.imageTypeInvalid`)),e.target&&(e.target.value=``);return}if(t.size>5242880){x.error(k(`client.imageTooLarge`)),e.target&&(e.target.value=``);return}B(URL.createObjectURL(t)),R(!0),e.target&&(e.target.value=``)}}async function Y(e){if(!j){x.error(k(`client.loginRequiredForUpload`));return}try{H(!0);let t=await a(new File([e],`avatar.jpg`,{type:`image/jpeg`}),1),n=await q(t.objectKey);await i(n),M({...N,nick_name:n.nick_name,avatar:t.objectKey,signature:n.signature,gender:n.gender}),P([`user-profile`,`mine`]),P([`user-profile`,`profile`,String(j)]),P([`user-edit-info`,String(j)]),I(!1),R(!1),x.success(k(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传头像失败`,e),x.error(k(`client.uploadFailed`))}finally{W(),H(!1)}}function X(){R(!1),W()}return b(v,{children:[w||O?y(t,{variant:`ghost`,size:`icon`,className:`!absolute bottom-3 left-0 h-22 w-22 rounded-full p-0 hover:bg-transparent`,onClick:U,"aria-label":`打开头像预览`,children:b(o,{className:`w-22 h-22`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]})}):b(o,{className:`!absolute bottom-3 left-0 w-22 h-22`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]}),y(d,{open:F,onOpenChange:G,children:y(f,{showCloseButton:!1,className:`bg-black !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto`,children:b(l,{className:`relative flex h-full w-full flex-col items-center justify-center`,children:[y(t,{variant:`ghost`,size:`icon`,className:`absolute left-0 top-0 h-14 w-14 text-white hover:bg-transparent hover:text-white/80`,onClick:G,"aria-label":`关闭头像预览`,children:y(`svg`,{className:`w-4 h-4`,xmlns:`http://www.w3.org/2000/svg`,fill:`currentColor`,viewBox:`0 0 16 16`,children:y(`path`,{d:`M14.55.2a.889.889 0 0 1 1.25 1.25l-.06.067L9.255 8l6.483 6.482.06.069a.888.888 0 0 1-1.25 1.25l-.067-.062L8 9.256l-6.482 6.483A.888.888 0 1 1 .26 14.482L6.742 8 .26 1.517.2 1.45A.888.888 0 0 1 1.45.2l.067.062 6.482 6.482L14.482.261l.068-.062Z`})})}),b(o,{className:`w-50 h-50`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]}),b(t,{variant:`ghost`,className:e(`absolute bottom-8 left-0 right-0 mx-auto flex w-[366px] max-w-[90%] items-center justify-between rounded-3xl bg-white/10 px-3 py-3 transition-colors hover:bg-white/20`,`active:scale-95`),onClick:K,disabled:V,children:[y(p,{as:`span`,className:`text-base font-medium text-white`,children:V?`上传中...`:`更换头像`}),b(`svg`,{className:`w-6 h-6 text-white`,xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:[y(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z`}),y(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15 13a3 3 0 11-6 0 3 3 0 016 0z`})]})]})]})})}),y(u,{ref:A,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:J}),y(h,{open:L,onClose:X,imageSrc:z,onConfirm:Y})]})}export{E as UserProfileAvatar};
2
+ "use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserEditInfo as r,pUserEditUserInfo as i}from"../../../../../service/generated/client.mjs";import{uploadFile as a}from"../../../../../utils/upload-file.mjs";import{Avatar as o,AvatarFallback as s,AvatarImage as c}from"../../../../ui/avatar.mjs";import{Box as l}from"../../../../ui/box.mjs";import{Input as u}from"../../../../ui/input.mjs";import{Dialog as d,DialogContent as f}from"../../../../ui/dialog.mjs";import{Text as p}from"../../../../ui/text.mjs";import{useDeleteRequest as m}from"../../../../../hooks/query/use-query.mjs";import{ImageCropModal as h}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{useRef as g,useState as _}from"react";import{Fragment as v,jsx as y,jsxs as b}from"react/jsx-runtime";import{toast as x}from"sonner";import{useTranslations as S}from"next-intl";const C=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,w=[`image/jpeg`,`image/png`];function T(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return w.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function E({isMine:w,src:E,alt:D,onUnauthorizedClick:O}){let k=S(`components.pages.profile`),A=g(null),{userId:j,setUserInfo:M,userInfo:N}=n(),P=m(),[F,I]=_(!1),[L,R]=_(!1),[z,B]=_(``),[V,H]=_(!1);function U(){if(!V){if(w){I(!0);return}O?.()}}function W(){z&&(URL.revokeObjectURL(z),B(``))}function G(){I(!1)}function K(){V||A.current?.click()}async function q(e){let t=(await r({user_id:String(j)})).data;return{user_id:String(j),nick_name:t?.nick_name??N?.nick_name??void 0,avatar:e||void 0,signature:t?.signature??N?.signature??void 0,gender:t?.gender??N?.gender??void 0}}function J(e){let t=e.target.files?.[0];if(t){if(!T(t)){x.error(k(`client.imageTypeInvalid`)),e.target&&(e.target.value=``);return}if(t.size>5242880){x.error(k(`client.imageTooLarge`)),e.target&&(e.target.value=``);return}B(URL.createObjectURL(t)),R(!0),e.target&&(e.target.value=``)}}async function Y(e){if(!j){x.error(k(`client.loginRequiredForUpload`));return}try{H(!0);let t=await a(new File([e],`avatar.jpg`,{type:`image/jpeg`}),1),n=await q(t.objectKey);await i(n),M({...N,nick_name:n.nick_name,avatar:t.objectKey,signature:n.signature,gender:n.gender}),P([`user-profile`,`mine`]),P([`user-profile`,`profile`,String(j)]),P([`user-edit-info`,String(j)]),I(!1),R(!1),x.success(k(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传头像失败`,e),x.error(k(`client.uploadFailed`))}finally{W(),H(!1)}}function X(){R(!1),W()}return b(v,{children:[w||O?y(t,{variant:`ghost`,size:`icon`,className:`h-[72px] w-[72px] rounded-full p-0 hover:bg-transparent`,onClick:U,"aria-label":`打开头像预览`,children:y(l,{className:`flex h-[72px] w-[72px] items-center justify-center rounded-full bg-[var(--color-surface-white20)]`,children:b(o,{className:`h-[60px] w-[60px] border-[3px] border-[var(--color-surface-white20)]`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]})})}):y(l,{className:`flex h-[72px] w-[72px] items-center justify-center rounded-full bg-[var(--color-surface-white20)]`,children:b(o,{className:`h-[60px] w-[60px] border-[3px] border-[var(--color-surface-white20)]`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]})}),y(d,{open:F,onOpenChange:G,children:y(f,{showCloseButton:!1,className:`bg-black !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto`,children:b(l,{className:`relative flex h-full w-full flex-col items-center justify-center`,children:[y(t,{variant:`ghost`,size:`icon`,className:`absolute left-0 top-0 h-14 w-14 text-text1 hover:bg-transparent hover:text-[var(--color-text-secondary)]`,onClick:G,"aria-label":`关闭头像预览`,children:y(`svg`,{className:`w-4 h-4`,xmlns:`http://www.w3.org/2000/svg`,fill:`currentColor`,viewBox:`0 0 16 16`,children:y(`path`,{d:`M14.55.2a.889.889 0 0 1 1.25 1.25l-.06.067L9.255 8l6.483 6.482.06.069a.888.888 0 0 1-1.25 1.25l-.067-.062L8 9.256l-6.482 6.483A.888.888 0 1 1 .26 14.482L6.742 8 .26 1.517.2 1.45A.888.888 0 0 1 1.45.2l.067.062 6.482 6.482L14.482.261l.068-.062Z`})})}),b(o,{className:`w-50 h-50`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]}),b(t,{variant:`ghost`,className:e(`absolute bottom-8 left-0 right-0 mx-auto flex w-[366px] max-w-[90%] items-center justify-between rounded-3xl bg-[var(--color-surface-white10)] px-3 py-3 transition-colors hover:bg-[var(--color-surface-white20)]`,`active:scale-95`),onClick:K,disabled:V,children:[y(p,{as:`span`,className:`text-base font-medium text-text1`,children:V?`上传中...`:`更换头像`}),b(`svg`,{className:`w-6 h-6 text-text1`,xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:[y(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z`}),y(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15 13a3 3 0 11-6 0 3 3 0 016 0z`})]})]})]})})}),y(u,{ref:A,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:J}),y(h,{open:L,onClose:X,imageSrc:z,onConfirm:Y})]})}export{E as UserProfileAvatar};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../../../store/modules/user-store.mjs";import{pUserUploadUserBgImage as t}from"../../../../../service/generated/client.mjs";import{uploadFile as n}from"../../../../../utils/upload-file.mjs";import{Image as r}from"../../../../ui/image.mjs";import{Box as i}from"../../../../ui/box.mjs";import{Input as a}from"../../../../ui/input.mjs";import{useDeleteRequest as o}from"../../../../../hooks/query/use-query.mjs";import{ImageCropModal as s}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{BackgroundPreviewModal as c}from"../../../../common/background-preview-modal/background-preview-modal.mjs";import{useCallback as l,useEffect as u,useRef as d,useState as f}from"react";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";import{toast as g}from"sonner";import{useTranslations as _}from"next-intl";const v=[`image/jpeg`,`image/png`];function y(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return v.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function b({isMine:v,enableCustomBackground:b=!0,src:x,onUnauthorizedClick:S}){let C=_(`components.pages.profile`),w=`/images/mine/img_mine_head_bg.png`,T=d(null),{userId:E,setUserInfo:D,userInfo:O}=e(),k=o(),[A,j]=f(!1),[M,N]=f(!1),[P,F]=f(!1),[I,L]=f(``),R=b&&(!!v||typeof S==`function`),z=l(()=>{I&&(URL.revokeObjectURL(I),L(``))},[I]),B=()=>{if(b){if(v){A||N(!0);return}S?.()}},V=()=>{N(!1)};function H(){A||T.current?.click()}async function U(e){let t=e.target.files?.[0];if(e.target&&(e.target.value=``),t)try{if(!y(t)){g.error(C(`client.imageTypeInvalid`));return}if(t.size>5242880){g.error(C(`client.imageTooLarge`));return}z(),L(URL.createObjectURL(t)),N(!1),F(!0)}catch(e){console.error(`上传背景图失败`,e),g.error(C(`client.uploadFailed`))}}let W=l(()=>{F(!1),z()},[z]);u(()=>{b||(N(!1),F(!1),z())},[z,b]);async function G(e){if(!E){g.error(C(`client.loginRequiredForUpload`));return}try{j(!0);let r=await n(new File([e],`background.jpg`,{type:`image/jpeg`}),1);await t({user_id:String(E),bg_image:r.objectKey}),D({...O,bg_image:r.objectKey}),k([`user-profile`,`mine`]),N(!1),F(!1),g.success(C(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传背景图失败`,e),g.error(C(`client.uploadFailed`))}finally{z(),j(!1)}}return h(p,{children:[m(i,{className:b?`h-33.75`:`h-24`,children:b?m(i,{className:`relative h-full w-full`,onClick:R?B:void 0,children:m(r,{alt:`cover background`,fill:!0,objectFit:`cover`,className:`pointer-events-none`,src:x||w})}):m(i,{className:`h-full w-full bg-bg1`})}),b&&h(p,{children:[m(c,{open:M,onClose:V,bgUrl:x||w,onUpload:H}),m(a,{ref:T,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:U}),m(s,{open:P,onClose:W,imageSrc:I,onConfirm:G,cropShape:`rect`,aspectRatio:430/256})]})]})}export{b as UserProfileCoverBackground};
2
+ "use client";import{useUserStore as e}from"../../../../../store/modules/user-store.mjs";import{pUserUploadUserBgImage as t}from"../../../../../service/generated/client.mjs";import{uploadFile as n}from"../../../../../utils/upload-file.mjs";import{Image as r}from"../../../../ui/image.mjs";import{Box as i}from"../../../../ui/box.mjs";import{Input as a}from"../../../../ui/input.mjs";import{useDeleteRequest as o}from"../../../../../hooks/query/use-query.mjs";import{ImageCropModal as s}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{BackgroundPreviewModal as c}from"../../../../common/background-preview-modal/background-preview-modal.mjs";import{defaultBackground as l}from"./client.mjs";import{useCallback as u,useEffect as d,useRef as f,useState as p}from"react";import{Fragment as m,jsx as h,jsxs as g}from"react/jsx-runtime";import{toast as _}from"sonner";import{useTranslations as v}from"next-intl";const y=[`image/jpeg`,`image/png`];function b(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return y.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function x({isMine:y,enableCustomBackground:x=!0,src:S,onUnauthorizedClick:C}){let w=v(`components.pages.profile`),T=l,E=f(null),{userId:D,setUserInfo:O,userInfo:k}=e(),A=o(),[j,M]=p(!1),[N,P]=p(!1),[F,I]=p(!1),[L,R]=p(``),z=x&&(!!y||typeof C==`function`),B=u(()=>{L&&(URL.revokeObjectURL(L),R(``))},[L]),V=()=>{if(x){if(y){j||P(!0);return}C?.()}},H=()=>{P(!1)};function U(){j||E.current?.click()}async function W(e){let t=e.target.files?.[0];if(e.target&&(e.target.value=``),t)try{if(!b(t)){_.error(w(`client.imageTypeInvalid`));return}if(t.size>5242880){_.error(w(`client.imageTooLarge`));return}B(),R(URL.createObjectURL(t)),P(!1),I(!0)}catch(e){console.error(`上传背景图失败`,e),_.error(w(`client.uploadFailed`))}}let G=u(()=>{I(!1),B()},[B]);d(()=>{x||(P(!1),I(!1),B())},[B,x]);async function K(e){if(!D){_.error(w(`client.loginRequiredForUpload`));return}try{M(!0);let r=await n(new File([e],`background.jpg`,{type:`image/jpeg`}),1);await t({user_id:String(D),bg_image:r.objectKey}),O({...k,bg_image:r.objectKey}),A([`user-profile`,`mine`]),P(!1),I(!1),_.success(w(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传背景图失败`,e),_.error(w(`client.uploadFailed`))}finally{B(),M(!1)}}return g(m,{children:[h(i,{className:`h-[176px]`,children:x?h(i,{className:`relative h-full w-full`,onClick:z?V:void 0,children:h(r,{alt:`cover background`,fill:!0,objectFit:`cover`,className:`pointer-events-none`,src:S||T})}):h(i,{className:`h-full w-full bg-bg1`})}),x&&g(m,{children:[h(c,{open:N,onClose:H,bgUrl:S||T,onUpload:U}),h(a,{ref:E,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:W}),h(s,{open:F,onClose:G,imageSrc:L,onConfirm:K,cropShape:`rect`,aspectRatio:430/256})]})]})}export{x as UserProfileCoverBackground};