@funhub/platform 0.2.4 → 0.2.5

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 (214) hide show
  1. package/dist/assets/icons/detail/collect_nor.mjs +2 -0
  2. package/dist/assets/icons/detail/collect_sel.mjs +2 -0
  3. package/dist/assets/icons/detail/share.mjs +2 -0
  4. package/dist/assets/icons/eye-off-icon.mjs +1 -1
  5. package/dist/assets/icons/marquee-enter.mjs +2 -0
  6. package/dist/assets/icons/right_arrow.mjs +2 -0
  7. package/dist/assets/icons/search/avatar.mjs +2 -0
  8. package/dist/assets/images/marquee.mjs +2 -0
  9. package/dist/biz.d.mts +6 -10
  10. package/dist/biz.mjs +1 -1
  11. package/dist/common.d.mts +2 -5
  12. package/dist/common.mjs +1 -1
  13. package/dist/components/biz/basics/fullscreen-feed/runtime/user-action.mjs +1 -1
  14. package/dist/components/biz/basics/logo/variants/basic-logo/runtime/client.mjs +1 -1
  15. package/dist/components/biz/business/advertisement/ad-match.d.mts +3 -7
  16. package/dist/components/biz/business/advertisement/ad-match.mjs +1 -1
  17. package/dist/components/biz/business/advertisement/banner-ad/client.mjs +1 -1
  18. package/dist/components/biz/business/advertisement/banner-ad/material.d.mts +2 -2
  19. package/dist/components/biz/business/advertisement/banner-ad/material.mjs +1 -1
  20. package/dist/components/biz/business/advertisement/banner-ad/schema.d.mts +4 -9
  21. package/dist/components/biz/business/advertisement/banner-ad/schema.mjs +1 -1
  22. package/dist/components/biz/business/advertisement/feed-ad/index.d.mts +31 -1
  23. package/dist/components/biz/business/advertisement/feed-ad/index.mjs +1 -1
  24. package/dist/components/biz/business/advertisement/floating-ad/client.d.mts +3 -4
  25. package/dist/components/biz/business/advertisement/floating-ad/client.mjs +1 -1
  26. package/dist/components/biz/business/advertisement/floating-ad/index.d.mts +1 -1
  27. package/dist/components/biz/business/advertisement/floating-ad/material.d.mts +0 -5
  28. package/dist/components/biz/business/advertisement/floating-ad/schema.d.mts +6 -21
  29. package/dist/components/biz/business/advertisement/floating-ad/schema.mjs +1 -1
  30. package/dist/components/biz/business/advertisement/icon-ad/client.mjs +1 -1
  31. package/dist/components/biz/business/advertisement/icon-ad/material.d.mts +1 -1
  32. package/dist/components/biz/business/advertisement/icon-ad/material.mjs +1 -1
  33. package/dist/components/biz/business/advertisement/icon-ad/schema.d.mts +1 -7
  34. package/dist/components/biz/business/advertisement/icon-ad/schema.mjs +1 -1
  35. package/dist/components/biz/business/advertisement/index.d.mts +4 -4
  36. package/dist/components/biz/business/advertisement/popup-ad/client.mjs +2 -2
  37. package/dist/components/biz/business/advertisement/popup-ad/index.d.mts +1 -1
  38. package/dist/components/biz/business/advertisement/popup-ad/material.d.mts +2 -2
  39. package/dist/components/biz/business/advertisement/popup-ad/schema.d.mts +15 -14
  40. package/dist/components/biz/business/advertisement/popup-ad/schema.mjs +1 -1
  41. package/dist/components/biz/business/advertisement/text-ad/client.mjs +1 -1
  42. package/dist/components/biz/business/advertisement/text-ad/material.d.mts +1 -1
  43. package/dist/components/biz/business/advertisement/text-ad/material.mjs +1 -1
  44. package/dist/components/biz/business/advertisement/text-ad/schema.d.mts +1 -5
  45. package/dist/components/biz/business/advertisement/text-ad/schema.mjs +1 -1
  46. package/dist/components/biz/business/banner/variants/basic-banner/runtime/client.mjs +1 -1
  47. package/dist/components/biz/business/banner-carousel/client.d.mts +1 -2
  48. package/dist/components/biz/business/banner-carousel/client.mjs +1 -1
  49. package/dist/components/biz/business/banner-carousel/default-props.mjs +1 -1
  50. package/dist/components/biz/business/channel-list/client.mjs +1 -1
  51. package/dist/components/biz/business/channel-list/default-props.mjs +1 -1
  52. package/dist/components/biz/business/detail/shared/detail-introduction.mjs +2 -0
  53. package/dist/components/biz/business/detail/shared/detail-operate.mjs +1 -1
  54. package/dist/components/biz/business/detail/shared/editor-preview.mjs +1 -1
  55. package/dist/components/biz/business/detail/video-detail-actions/client.mjs +1 -1
  56. package/dist/components/biz/business/detail/video-detail-info/client.mjs +1 -1
  57. package/dist/components/biz/business/detail/video-detail-recommend/client.d.mts +13 -1
  58. package/dist/components/biz/business/detail/video-detail-recommend/client.mjs +1 -1
  59. package/dist/components/biz/business/detail/video-detail-recommend/material.mjs +1 -1
  60. package/dist/components/biz/business/detail/video-detail-recommend/schema.mjs +1 -1
  61. package/dist/components/biz/business/header-search/header-avatar-icon/client.mjs +1 -1
  62. package/dist/components/biz/business/header-search/header-avatar-logo-search/client.d.mts +1 -1
  63. package/dist/components/biz/business/header-search/header-avatar-logo-search/client.mjs +1 -1
  64. package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.d.mts +3 -4
  65. package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.mjs +1 -1
  66. package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/client.mjs +1 -1
  67. package/dist/components/biz/business/header-search/header-logo-search/client.mjs +1 -1
  68. package/dist/components/biz/business/header-search/header-search/client.mjs +1 -1
  69. package/dist/components/biz/business/header-search/shared/avatar.mjs +1 -1
  70. package/dist/components/biz/business/header-search/shared/logo.mjs +1 -1
  71. package/dist/components/biz/business/header-search/shared/search.mjs +1 -1
  72. package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.d.mts +8 -0
  73. package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.mjs +1 -1
  74. package/dist/components/biz/business/home-recommend/home-recommend-grid/material.d.mts +8 -0
  75. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.d.mts +8 -0
  76. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.mjs +1 -1
  77. package/dist/components/biz/business/home-recommend/home-recommend-waterfall/material.d.mts +8 -0
  78. package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
  79. package/dist/components/biz/business/home-recommend/shared/home-recommend-preview.mjs +1 -1
  80. package/dist/components/biz/business/index.d.mts +5 -10
  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/large-feature-grid/schema.mjs +1 -1
  84. package/dist/components/biz/business/marquee/client.mjs +1 -1
  85. package/dist/components/biz/business/marquee/marquee.module.mjs +6 -2
  86. package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/runtime/client.mjs +1 -1
  87. package/dist/components/biz/business/profile/index.d.mts +1 -1
  88. package/dist/components/biz/business/profile/profile-header/client.d.mts +1 -2
  89. package/dist/components/biz/business/profile/profile-header/client.mjs +1 -1
  90. package/dist/components/biz/business/profile/profile-header/index.d.mts +1 -1
  91. package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +1 -1
  92. package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +1 -1
  93. package/dist/components/biz/business/profile/profile-main/client.mjs +1 -1
  94. package/dist/components/biz/business/profile/profile-main/shell.mjs +1 -1
  95. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.mjs +1 -1
  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 +1 -5
  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/search-history/client.mjs +1 -1
  101. package/dist/components/biz/business/search-history/schema.mjs +1 -1
  102. package/dist/components/biz/business/search-input/client.mjs +1 -1
  103. package/dist/components/biz/business/shortcut-grid/client.mjs +1 -1
  104. package/dist/components/biz/business/tab-bar/client.d.mts +2 -0
  105. package/dist/components/biz/business/tab-bar/client.mjs +1 -1
  106. package/dist/components/common/collection-popup/collection-create-modal.mjs +2 -0
  107. package/dist/components/common/collection-popup/index.d.mts +0 -1
  108. package/dist/components/common/collection-popup/index.mjs +1 -1
  109. package/dist/components/common/icons/setting.mjs +1 -1
  110. package/dist/components/common/list/collection-list/collection-list-item.d.mts +0 -8
  111. package/dist/components/common/list/collection-list/collection-list-item.mjs +1 -1
  112. package/dist/components/common/list/collection-list/collection-list.d.mts +0 -6
  113. package/dist/components/common/list/collection-list/collection-list.mjs +1 -1
  114. package/dist/components/common/series-episodes/index.d.mts +1 -3
  115. package/dist/components/common/series-episodes/index.mjs +1 -1
  116. package/dist/components/common/skeleton/search-video-card-skeleton.mjs +2 -0
  117. package/dist/components/common/tab-bar/index.mjs +1 -1
  118. package/dist/components/pages/collection-detail/detail.mjs +1 -1
  119. package/dist/components/pages/edit/page.mjs +1 -1
  120. package/dist/components/pages/feedback/_components/feedback-form.mjs +1 -1
  121. package/dist/components/pages/home/client.mjs +1 -1
  122. package/dist/components/pages/login/login-client.mjs +1 -1
  123. package/dist/components/pages/login/register.mjs +1 -1
  124. package/dist/components/pages/login/verify.mjs +4 -1
  125. package/dist/components/pages/publish/components/collection.mjs +1 -1
  126. package/dist/components/pages/search/page-client.mjs +1 -1
  127. package/dist/components/pages/search/search-result/index.mjs +1 -1
  128. package/dist/components/pages/search/search-result/search-all.mjs +1 -1
  129. package/dist/components/pages/search/search-result/search-user.mjs +1 -1
  130. package/dist/components/pages/search/search-result/search-video-info.mjs +1 -1
  131. package/dist/components/pages/search/search-utils.mjs +2 -0
  132. package/dist/components/pages/search/top-header.mjs +1 -1
  133. package/dist/components/pages/search-result/page-client.mjs +1 -1
  134. package/dist/components/pages/search-result/search-all.mjs +1 -1
  135. package/dist/components/pages/search-result/search-result-skeleton.mjs +2 -0
  136. package/dist/components/pages/search-result/search-tab.mjs +1 -1
  137. package/dist/components/pages/search-result/search-user.mjs +1 -1
  138. package/dist/components/pages/search-result/search-video.mjs +2 -0
  139. package/dist/components/pages/settings/_components/reset-password-drawer.mjs +2 -2
  140. package/dist/components/pages/settings/_components/settings.mjs +1 -1
  141. package/dist/components/pages/user-follow/_components/follow-no-login.mjs +1 -1
  142. package/dist/components/pages/video-list/video-list-client.mjs +1 -1
  143. package/dist/components/pages/video-list/video-list-item.mjs +2 -0
  144. package/dist/components/pages/video-list/video-list-skeleton.d.mts +3 -2
  145. package/dist/components/pages/video-list/video-list-skeleton.mjs +1 -1
  146. package/dist/components/ui/badge.d.mts +1 -1
  147. package/dist/components/ui/box.d.mts +1 -1
  148. package/dist/components/ui/button.d.mts +1 -1
  149. package/dist/components/ui/image.d.mts +4 -4
  150. package/dist/i18n/locales/en.mjs +2 -2
  151. package/dist/i18n/locales/zh-CN.mjs +2 -2
  152. package/dist/materials.d.mts +1 -3
  153. package/dist/materials.mjs +1 -1
  154. package/dist/service/generated/client.d.mts +2 -38
  155. package/dist/service/generated/client.mjs +1 -1
  156. package/dist/service/generated/tanstack.d.mts +2 -47
  157. package/dist/service/generated/tanstack.mjs +1 -1
  158. package/dist/service.d.mts +3 -3
  159. package/dist/service.mjs +1 -1
  160. package/dist/types.d.mts +9 -662
  161. package/dist/utils/helper.d.mts +1 -1
  162. package/dist/utils/helper.mjs +1 -1
  163. package/dist/utils/schema/inspector.d.mts +2 -2
  164. package/package.json +2 -8
  165. package/theme.css +59 -170
  166. package/dist/assets/icons/channel-list/channel-active-indicator.mjs +0 -2
  167. package/dist/assets/icons/common/header-menu.mjs +0 -2
  168. package/dist/assets/icons/common/header-search-icon.mjs +0 -2
  169. package/dist/assets/icons/common/right_arrow_thin.mjs +0 -2
  170. package/dist/assets/icons/marquee-close.mjs +0 -2
  171. package/dist/assets/icons/marquee-speaker.mjs +0 -2
  172. package/dist/assets/images/shortcut-grid/shortcut-grid-card-bg-primary.mjs +0 -2
  173. package/dist/components/biz/business/detail/video-detail-recommend/shared.mjs +0 -2
  174. package/dist/components/biz/business/header-search/shared/header-action.mjs +0 -2
  175. package/dist/components/biz/business/header-search/shared/header-search-icon.mjs +0 -2
  176. package/dist/components/biz/business/header-search/shared/header-shell.mjs +0 -2
  177. package/dist/components/biz/business/hot-recommend/client.d.mts +0 -17
  178. package/dist/components/biz/business/hot-recommend/client.mjs +0 -2
  179. package/dist/components/biz/business/hot-recommend/index.d.mts +0 -5
  180. package/dist/components/biz/business/hot-recommend/material.d.mts +0 -24
  181. package/dist/components/biz/business/hot-recommend/material.mjs +0 -2
  182. package/dist/components/biz/business/hot-recommend/schema.d.mts +0 -23
  183. package/dist/components/biz/business/hot-recommend/schema.mjs +0 -2
  184. package/dist/components/biz/business/hot-recommend/server.d.mts +0 -11
  185. package/dist/components/biz/business/hot-recommend/server.mjs +0 -2
  186. package/dist/components/biz/business/profile/profile-main/empty-state.mjs +0 -2
  187. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/video-waterfall.mjs +0 -2
  188. package/dist/components/biz/business/ranking-recommend/client.d.mts +0 -17
  189. package/dist/components/biz/business/ranking-recommend/client.mjs +0 -70
  190. package/dist/components/biz/business/ranking-recommend/material.d.mts +0 -35
  191. package/dist/components/biz/business/ranking-recommend/material.mjs +0 -2
  192. package/dist/components/biz/business/ranking-recommend/schema.d.mts +0 -35
  193. package/dist/components/biz/business/ranking-recommend/schema.mjs +0 -2
  194. package/dist/components/biz/business/ranking-recommend/server.d.mts +0 -11
  195. package/dist/components/biz/business/ranking-recommend/server.mjs +0 -2
  196. package/dist/components/biz/business/ranking-recommend/shared/query.mjs +0 -2
  197. package/dist/components/biz/business/ranking-recommend/shared.d.mts +0 -15
  198. package/dist/components/biz/business/ranking-recommend/shared.mjs +0 -2
  199. package/dist/components/common/collection-popup/create-collection-sheet.d.mts +0 -41
  200. package/dist/components/common/collection-popup/create-collection-sheet.mjs +0 -2
  201. package/dist/components/common/list/collection-list/collection-select-icon.mjs +0 -2
  202. package/dist/components/common/list/waterfall-recommend/index.d.mts +0 -2
  203. package/dist/components/common/list/waterfall-recommend/waterfall-recommend.d.mts +0 -116
  204. package/dist/components/common/list/waterfall-recommend/waterfall-recommend.mjs +0 -2
  205. package/dist/components/pages/collection-detail/_components/collection-detail-video-card.mjs +0 -2
  206. package/dist/components/pages/login/auth-page-styles.mjs +0 -6
  207. package/dist/components/pages/search/search-result/shared.mjs +0 -2
  208. package/dist/components/pages/search-result/search-empty.mjs +0 -2
  209. package/dist/components/pages/search-result/search-video-info.mjs +0 -2
  210. package/dist/components/pages/search-result/shared.mjs +0 -2
  211. package/dist/components/pages/search-result/top-header.mjs +0 -2
  212. package/dist/components/pages/video-list/video-list-recommend-item.mjs +0 -2
  213. package/dist/theme-tokens.d.mts +0 -9
  214. package/dist/theme-tokens.mjs +0 -2
@@ -1,2 +1,2 @@
1
1
 
2
- import{jsx as e,jsxs as t}from"react/jsx-runtime";function n(n){let{className:r,...i}=n;return t(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,fontSize:`20`,className:`antd-mobile-icon ${r||``}`,style:{verticalAlign:`-0.125em`},...i,children:[e(`path`,{d:`M16.5454 3.5C16.8675 3.5 17.1659 3.67065 17.3293 3.94832L21.8746 11.6755C22.0418 11.9598 22.0418 12.3126 21.8746 12.597L17.3293 20.3241C17.1659 20.6018 16.8675 20.7724 16.5454 20.7724H7.45463C7.13252 20.7724 6.83404 20.6017 6.67073 20.3241L2.12535 12.597C1.95822 12.3126 1.95822 11.9598 2.12535 11.6755L6.67073 3.94832C6.83404 3.67069 7.13252 3.50003 7.45463 3.5H16.5454ZM3.96392 12.1362L7.97486 18.9543H16.026L20.0352 12.1362L16.026 5.31815H7.97486L3.96392 12.1362Z`,fill:`currentColor`}),e(`path`,{d:`M13.3637 12.1364C13.3637 11.3833 12.7532 10.7727 12.0001 10.7727C11.247 10.7727 10.6365 11.3833 10.6365 12.1364C10.6365 12.8894 11.247 13.5 12.0001 13.5C12.7532 13.5 13.3637 12.8894 13.3637 12.1364ZM15.1819 12.1364C15.1819 13.8936 13.7573 15.3181 12.0001 15.3181C10.2429 15.3181 8.81836 13.8936 8.81836 12.1364C8.81836 10.3791 10.2429 8.95459 12.0001 8.95459C13.7573 8.95459 15.1819 10.3791 15.1819 12.1364Z`,fill:`currentColor`})]})}export{n as SettingIcon};
2
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";function n(n){let{className:r,...i}=n;return e(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 48 48`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,fontSize:`20`,className:`antd-mobile-icon text-text1 ${r||``}`,style:{verticalAlign:`-0.125em`},...i,children:e(`g`,{id:`SetOutline-SetOutline`,stroke:`none`,strokeWidth:`1`,fill:`none`,fillRule:`evenodd`,children:t(`g`,{id:`SetOutline-编组`,children:[e(`rect`,{id:`SetOutline-矩形`,fill:`transparent`,opacity:`0`,x:`0`,y:`0`,width:`48`,height:`48`}),e(`path`,{d:`M29.6635785,4.09347573 C29.6943765,4.10280636 29.7218319,4.11121584 29.7459445,4.11870417 C32.9286193,5.10710452 35.7780984,6.89542969 38.0773907,9.25862405 C38.1048534,9.28685006 38.137705,9.32098069 38.1759455,9.36101594 L38.1758731,9.36108506 C38.2958121,9.4866534 38.3210097,9.67527399 38.2382375,9.82792234 C38.2019091,9.89491908 38.1723405,9.95145741 38.1495317,9.99753731 C37.2499501,11.8149357 37.2312381,14.0542329 38.2894192,15.9551742 C39.3113653,17.7910221 41.0990205,18.8824923 42.9924218,19.046176 C43.0308388,19.0494971 43.0769297,19.0526108 43.1306946,19.055517 L43.1306891,19.0556186 C43.3097688,19.0652987 43.4605039,19.1930174 43.4994562,19.3680772 C43.5181604,19.4521376 43.5334344,19.5224186 43.5452782,19.5789201 C43.8434094,21.0011724 44,22.4782234 44,23.9932074 C44,25.9110818 43.7490484,27.768165 43.2793445,29.5310609 C43.2673008,29.5762635 43.2521361,29.6318295 43.2338504,29.6977589 L43.2339096,29.6977753 C43.1896789,29.8572501 43.0518211,29.9730289 42.8871024,29.9890386 C42.8573588,29.9919295 42.8310363,29.994728 42.8081347,29.9974341 C40.9832456,30.2130642 39.2780401,31.2924244 38.2894192,33.0684062 C37.3690455,34.721787 37.2633405,36.6311336 37.8431283,38.2964388 C37.8645836,38.3580642 37.894274,38.4365116 37.9321995,38.531781 L37.9323132,38.5317357 C37.9914458,38.6802779 37.956476,38.8497628 37.843378,38.9627686 C37.7865957,39.0195046 37.7392204,39.0664065 37.7012522,39.1034741 C35.4293099,41.3215235 32.6557522,42.9941892 29.5759974,43.9196324 C29.4537483,43.9563673 29.2860191,44.0037796 29.0728098,44.0618692 L29.0728273,44.0619334 C28.91719,44.1043373 28.751312,44.0491222 28.6521374,43.9219001 C28.5788324,43.8278638 28.5179309,43.752778 28.4694329,43.6966426 C27.3705613,42.4247239 25.7753243,41.6250222 24,41.6250222 C22.2788787,41.6250222 20.727016,42.3766374 19.6328956,43.5806625 C19.5591199,43.661849 19.4643813,43.7758944 19.34868,43.9227986 L19.3486175,43.9227494 C19.2493155,44.0488316 19.0842591,44.1033371 18.9294019,44.0611842 C18.7099668,44.0014529 18.5375942,43.9527361 18.4122839,43.9150337 C15.3282444,42.9871326 12.5518465,41.3090762 10.2781268,39.0843168 C10.2449964,39.0518999 10.2042406,39.0115257 10.1558594,38.9631942 L10.1558261,38.9632275 C10.04253,38.8500478 10.0076468,38.680209 10.0671608,38.5315358 C10.0959923,38.4595114 10.1191005,38.3992875 10.1364852,38.3508643 C10.7388765,36.6729735 10.6410312,34.7398891 9.71058084,33.0684062 C8.77900775,31.3949064 7.21116421,30.3399516 5.50695414,30.0424689 C5.40889863,30.0253526 5.27714893,30.0081907 5.11170504,29.9909832 L5.11171738,29.9908645 C4.94823645,29.9738612 4.81180998,29.8585556 4.76780345,29.7001935 C4.74656016,29.6237473 4.7291408,29.5599484 4.71554538,29.508797 C4.24893773,27.7532311 4,25.903371 4,23.9932074 C4,22.4054758 4.17199022,20.8594077 4.49770159,19.3739511 C4.49806505,19.3722935 4.49843334,19.3706159 4.49880646,19.3689185 L4.49883435,19.3689247 C4.5374295,19.1933462 4.68842311,19.0650888 4.86793244,19.0554044 C4.90654419,19.0533214 4.94037279,19.0511226 4.96941824,19.0488081 C6.87752944,18.896758 8.68194132,17.8030464 9.71058084,15.9551742 C10.7160785,14.1488746 10.7492438,12.0370719 9.97851139,10.271735 C9.92961058,10.1597293 9.85632321,10.0117916 9.75864928,9.82792177 L9.75863681,9.8279284 C9.67757981,9.67533972 9.70365562,9.48795295 9.8232933,9.36329195 C9.95974282,9.22111323 10.0692945,9.10887896 10.1519482,9.02658914 C12.326484,6.86162837 14.9722368,5.2013723 17.9137138,4.22786185 C18.0198088,4.19274868 18.1613328,4.14821666 18.3382858,4.09426578 L18.3382697,4.0942132 C18.5189812,4.03911642 18.7136034,4.11794967 18.8050299,4.28327804 C18.8832892,4.42479596 18.9491374,4.53716566 19.0025746,4.62038717 C20.0780793,6.29534615 21.9148218,7.39855818 24,7.39855818 C26.1773809,7.39855818 28.0838696,6.19562513 29.1353621,4.39557165 C29.1469048,4.37581178 29.1669487,4.3394508 29.1954939,4.28648874 L29.1955161,4.28650073 C29.2857772,4.11903248 29.4815071,4.0383151 29.6635785,4.09347573 Z M30.291723,7.85114089 L30.291723,7.85114089 L30.291723,7.85114089 C28.6437806,9.52218192 26.4047627,10.5100549 24,10.5100549 C21.6223815,10.5100549 19.4098701,9.54440347 17.7697895,7.91280929 L17.7132092,7.85462809 C17.6100913,7.74859263 17.4522642,7.71712891 17.3163679,7.77551557 L17.3163679,7.77551557 L17.3163679,7.77551557 C15.9322776,8.39005242 14.633762,9.19368235 13.4541246,10.1628476 L13.3867297,10.2196976 C13.2694828,10.3185994 13.2191193,10.475839 13.2570868,10.6244556 L13.2575903,10.6264267 L13.2575903,10.6264267 C13.7725685,12.8102642 13.5205613,15.1562719 12.464932,17.2183236 L12.3086571,17.5109225 C11.1920953,19.5167402 9.43480152,20.9698965 7.40855181,21.6828434 C7.40091095,21.6855318 7.38973993,21.6893285 7.37503876,21.6942335 L7.37504204,21.6942433 C7.22714595,21.7435875 7.12139963,21.8743708 7.1041119,22.0293199 C7.10248639,22.0438892 7.10118391,22.055854 7.10020446,22.0652143 C7.05194441,22.526416 7.02100448,22.9912373 7.00762775,23.4589912 L7,23.9932074 C7,24.9613003 7.07495263,25.917621 7.22258691,26.855785 L7.25959287,27.0722616 C7.28391536,27.2139796 7.3823706,27.3317948 7.51754776,27.380812 C7.59686483,27.4095736 7.65871065,27.4326633 7.70308522,27.4500811 C9.51548077,28.1614794 11.0888905,29.4725697 12.1509777,31.2401084 L12.3086571,31.5126578 C13.3435133,33.371698 13.7095027,35.4923797 13.4194465,37.5343141 C13.4191519,37.5363877 13.4187954,37.5388325 13.418377,37.5416483 L13.4183868,37.5416498 C13.3977083,37.6808038 13.4516529,37.8205903 13.5604504,37.9097785 C13.5795524,37.9254377 13.5927649,37.936209 13.6000877,37.9420922 C14.9359782,39.0153738 16.4186528,39.8773318 18.0012021,40.4960686 C18.0180019,40.5026369 18.0499461,40.5147385 18.0970346,40.5323735 L18.0970476,40.5323389 C18.2301703,40.5821942 18.3797517,40.5576453 18.4899563,40.4678557 C18.5407032,40.4265096 18.5745502,40.3992232 18.5914976,40.3859965 C20.0437878,39.2525436 21.8148223,38.5847722 23.692736,38.5189087 L24,38.5135255 C26.0546357,38.5135255 27.9962679,39.2344251 29.5525918,40.5011394 L29.5625019,40.5094288 C29.6390288,40.5734408 29.7436987,40.5922165 29.8377034,40.5587945 L29.8377034,40.5587945 L29.8377034,40.5587945 C31.4665237,39.9410888 32.9918221,39.0671383 34.3628695,37.9713833 C34.3758544,37.9610056 34.4017031,37.9399379 34.4404158,37.9081801 L34.4404118,37.9081753 C34.5491233,37.818994 34.6030242,37.679281 34.582378,37.5401939 C34.5701682,37.4579399 34.562495,37.4043003 34.5593585,37.379275 C34.3224766,35.4892434 34.6454399,33.5395462 35.5385639,31.7984312 L35.691343,31.5126578 C36.7621637,29.5890102 38.4237823,28.1708936 40.3512816,27.4294657 L40.4811388,27.3826779 C40.6164373,27.3339296 40.7151527,27.2163026 40.7396867,27.0745981 L40.7775003,26.8561932 L40.7775003,26.8561932 C40.8955662,26.1052033 40.9671265,25.3429213 40.9910279,24.5725001 L41,23.9932074 C41,23.3339341 40.9652437,22.6802401 40.8963936,22.0340808 C40.8962979,22.0331827 40.8961981,22.0322526 40.8960941,22.0312906 L40.8960534,22.031295 C40.879315,21.876429 40.7741874,21.7453695 40.6266425,21.6954283 C40.6235192,21.6943711 40.6208408,21.6934535 40.6186073,21.6926756 C38.6753505,21.0158623 36.9771921,19.6590351 35.8512449,17.7871679 L35.691343,17.5109225 C34.5050786,15.3798894 34.2028644,12.9138423 34.7426714,10.6260269 L34.7435697,10.6224291 C34.7805548,10.4742946 34.7299853,10.3180262 34.6132258,10.2196445 L34.5460544,10.1630459 L34.5460544,10.1630459 C33.3663284,9.19377043 32.0677839,8.39009518 30.6836701,7.77553631 L30.6752045,7.77193094 C30.5433665,7.71578291 30.3905255,7.74735294 30.291723,7.85114089 Z M24,16.7330484 C27.8659932,16.7330484 31,19.9835323 31,23.9932074 C31,28.0028825 27.8659932,31.2533664 24,31.2533664 C20.1340068,31.2533664 17,28.0028825 17,23.9932074 C17,19.9835323 20.1340068,16.7330484 24,16.7330484 Z M24,19.8445451 C21.790861,19.8445451 20,21.7019645 20,23.9932074 C20,26.2844503 21.790861,28.1418697 24,28.1418697 C26.209139,28.1418697 28,26.2844503 28,23.9932074 C28,21.7019645 26.209139,19.8445451 24,19.8445451 Z`,id:`SetOutline-形状`,fill:`currentColor`,fillRule:`nonzero`,className:``})]})})})}export{n as SettingIcon};
@@ -21,14 +21,6 @@ interface CollectionListItemProps {
21
21
  contentCount: number;
22
22
  /** 合集预览内容列表。 */
23
23
  contents?: CollectionListMediaItem[];
24
- /** 是否为系统默认收藏夹(编辑态下不可勾选)。 */
25
- isDefaultCollection?: boolean;
26
- /** 是否处于编辑态。 */
27
- isEditMode?: boolean;
28
- /** 当前是否选中。 */
29
- isSelected?: boolean;
30
- /** 切换选中态回调。 */
31
- onToggleSelection?: (id: string) => void;
32
24
  }
33
25
  declare function CollectionListItem(props: CollectionListItemProps): react_jsx_runtime0.JSX.Element;
34
26
  //#endregion
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import{RightArrowIcon as r}from"../../icons/right-arrow.mjs";import{CollectionSelectIcon as i,CollectionSelectedIcon as a}from"./collection-select-icon.mjs";import{Fragment as o,jsx as s,jsxs as c}from"react/jsx-runtime";import{useTranslations as l}from"next-intl";import u from"next/link";const d=[];function f({size:e=12}){return s(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`currentColor`,children:s(`path`,{d:`M8 5v14l11-7z`})})}function p(e){if(!e)return``;let t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}:${r.toString().padStart(2,`0`)}`}function m(m){let h=l(`components.common.list.collectionList`),{id:g,title:_,contentCount:v,contents:y=d,isDefaultCollection:b=!1,isEditMode:x=!1,isSelected:S=!1,onToggleSelection:C}=m,w=y.slice(0,3),T=!!b,E=x&&typeof C==`function`;function D(){C?.(g)}function O(r,i){if(r.isPlaceholder)return s(t,{className:`h-[130px] w-full rounded-[8px] bg-[var(--color-surface-white10)]`},r.id??`${_}-${i}`);let a=c(t,{className:`relative h-full w-full overflow-hidden rounded-[8px] bg-gray-100`,children:[s(e,{src:r.coverImage||`/empty/default-cover.png`,alt:r.title||_,fill:!0,className:`object-cover`}),r.isVideo&&c(o,{children:[s(t,{className:`absolute inset-0 flex items-center justify-center bg-black/20`,children:s(t,{className:`flex h-6 w-6 items-center justify-center rounded-full bg-[var(--color-text-white80)]`,children:s(f,{size:12})})}),r.isMovie&&s(t,{className:`absolute bottom-1 left-1 rounded-xs bg-[var(--color-surface-mask-black60)] px-1 text-[10px] text-text1`,children:h(`collectionListItem.movieLabel`)}),r.videoDuration&&s(t,{className:`absolute bottom-1 right-1 rounded-xs bg-[var(--color-surface-mask-black60)] px-1 text-[10px] text-text1`,children:p(r.videoDuration)})]}),s(t,{className:`pointer-events-none absolute inset-x-0 bottom-0 h-[58px] rounded-b-[8px] bg-[image:var(--gradient-card-mask-strong)]`}),s(n,{className:`absolute bottom-3 left-2 right-2 line-clamp-2 text-[12px] leading-[16px] text-[var(--color-text-white80)]`,dangerouslySetInnerHTML:{__html:r.title||``}})]});return E?s(`button`,{type:`button`,className:`block h-[130px] w-[103px] shrink-0 overflow-hidden rounded-[8px] bg-[rgba(255,255,255,0.05)]`,onClick:D,"aria-pressed":S,children:a},r.id??`${_}-${i}`):s(u,{href:`/${r.contentType===1?`video`:`post`}/${r.id}`,className:`block h-[130px] w-full shrink-0 overflow-hidden rounded-[8px] bg-[rgba(255,255,255,0.05)]`,children:a},r.id??`${_}-${i}`)}return c(t,{className:`h-[200px] rounded-[8px] bg-[rgba(255,255,255,0.05)] p-4`,children:[c(t,{className:`mb-4 flex items-center justify-between gap-2`,children:[E?c(`button`,{type:`button`,className:`flex min-w-0 items-center gap-1${T?` opacity-50`:``}`,onClick:D,"aria-pressed":T?!1:S,"aria-disabled":T,children:[s(!T&&S?a:i,{}),s(n,{className:`line-clamp-1 text-[16px] font-normal leading-[22px] text-[var(--color-text-primary)]`,children:_})]}):s(n,{className:`line-clamp-1 text-[16px] font-normal leading-[22px] text-[var(--color-text-primary)]`,children:_}),E?c(t,{className:`flex shrink-0 items-center text-[var(--color-text-tertiary)]`,children:[c(n,{className:`text-[14px] leading-[20px] text-[var(--color-text-tertiary)]`,children:[v,h(`collectionListItem.contentCountSuffix`)]}),s(t,{className:`flex size-6 items-center justify-center`,children:s(r,{className:`h-4 w-4 text-[var(--color-text-tertiary)]`})})]}):c(u,{href:`/collection/${g}`,className:`flex shrink-0 items-center text-[var(--color-text-tertiary)]`,children:[c(n,{className:`text-[14px] leading-[20px] text-[var(--color-text-tertiary)]`,children:[v,h(`collectionListItem.contentCountSuffix`)]}),s(t,{className:`flex size-6 items-center justify-center`,children:s(r,{className:`h-4 w-4 text-[var(--color-text-tertiary)]`})})]})]}),s(t,{className:`grid h-[130px] w-full grid-cols-3 gap-2`,children:w.map(O)})]})}export{m as CollectionListItem};
2
+ "use client";import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import{RightArrowIcon as r}from"../../icons/right-arrow.mjs";import{Fragment as i,jsx as a,jsxs as o}from"react/jsx-runtime";import{useTranslations as s}from"next-intl";import c from"next/link";const l=[];function u({size:e=12}){return a(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`currentColor`,children:a(`path`,{d:`M8 5v14l11-7z`})})}function d(e){if(!e)return``;let t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}:${r.toString().padStart(2,`0`)}`}function f(f){let p=s(`components.common.list.collectionList`),{id:m,title:h,contentCount:g,contents:_=l}=f,v=_.slice(0,3);return o(t,{className:`bg-bg1 rounded-lg py-3`,children:[o(t,{className:`flex items-center justify-between mb-3 gap-2`,children:[a(n,{className:`text-sm text-text1 font-medium line-clamp-1`,children:h}),o(c,{href:`/collection/${m}`,className:`flex items-center shrink-0 gap-1 text-text3`,children:[o(n,{className:`text-xs`,children:[g,p(`collectionListItem.contentCountSuffix`)]}),a(r,{})]})]}),a(t,{className:`grid grid-cols-3 gap-2`,children:v.map((r,s)=>r.isPlaceholder?a(t,{className:`aspect-video rounded-md bg-bg2`},r.id??`${h}-${s}`):o(c,{href:`/${r.contentType===1?`video`:`post`}/${r.id}`,className:`flex flex-col gap-1`,children:[o(t,{className:`relative aspect-video rounded-md overflow-hidden bg-gray-100`,children:[a(e,{src:r.coverImage||`/empty/default-cover.png`,alt:r.title||h,fill:!0,className:`object-cover`}),r.isVideo&&o(i,{children:[a(t,{className:`absolute inset-0 flex items-center justify-center bg-black/20`,children:a(t,{className:`w-6 h-6 rounded-full bg-white/80 flex items-center justify-center`,children:a(u,{size:12})})}),r.isMovie&&a(t,{className:`absolute bottom-1 left-1 rounded-xs bg-black/60 px-1 text-[10px] text-white`,children:p(`collectionListItem.movieLabel`)}),r.videoDuration&&a(t,{className:`absolute bottom-1 right-1 rounded-xs bg-black/60 px-1 text-[10px] text-white`,children:d(r.videoDuration)})]})]}),a(t,{className:`flex items-center justify-between gap-1`,children:a(n,{className:`text-xs text-text1 line-clamp-1`,dangerouslySetInnerHTML:{__html:r.title||``}})})]},r.id??`${h}-${s}`))})]})}export{f as CollectionListItem};
@@ -14,12 +14,6 @@ interface CollectionListProps {
14
14
  loadMore?: () => Promise<void>;
15
15
  /** 空状态文案。 */
16
16
  emptyText?: string;
17
- /** 是否处于编辑态。 */
18
- isEditMode?: boolean;
19
- /** 当前已选中的合集 ID 集合。 */
20
- selectedIds?: Set<string>;
21
- /** 切换合集选中态。 */
22
- onToggleSelection?: (id: string) => void;
23
17
  }
24
18
  declare function CollectionList(props: CollectionListProps): react_jsx_runtime0.JSX.Element;
25
19
  //#endregion
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{List as e}from"../../../ui/list.mjs";import{CollectionListItem as t}from"./collection-list-item.mjs";import{jsx as n}from"react/jsx-runtime";function r(r){let{list:i,loading:a,hasMore:o=!1,loadMore:s,emptyText:c=`暂无合集`,isEditMode:l=!1,selectedIds:u,onToggleSelection:d}=r;return n(e,{loading:a,loadMore:s,hasMore:o,empty:`no-content`,emptyText:c,className:`!bg-transparent flex flex-col gap-4`,children:i.map(e=>n(t,{...e,isEditMode:l,isSelected:u?.has(e.id)??!1,onToggleSelection:d},e.id))})}export{r as CollectionList};
2
+ "use client";import{List as e}from"../../../ui/list.mjs";import{CollectionListItem as t}from"./collection-list-item.mjs";import{jsx as n}from"react/jsx-runtime";function r(r){let{list:i,loading:a,hasMore:o=!1,loadMore:s,emptyText:c=`暂无合集`}=r;return n(e,{loading:a,loadMore:s,hasMore:o,empty:`no-content`,emptyText:c,children:i.map(e=>n(t,{...e},e.id))})}export{r as CollectionList};
@@ -4,7 +4,6 @@ import { CSSProperties } from "react";
4
4
  import * as react_jsx_runtime0 from "react/jsx-runtime";
5
5
 
6
6
  //#region components/common/series-episodes/index.d.ts
7
- declare function DetailStyleOneActiveBorderLayer(): react_jsx_runtime0.JSX.Element;
8
7
  /**
9
8
  * SeriesEpisodes
10
9
  *
@@ -29,7 +28,6 @@ type SeriesEpisodesProps = {
29
28
  onClose: () => void;
30
29
  onSelectEpisode?: (episodeId: string, episodeNum: number) => void;
31
30
  popupBodyStyle?: CSSProperties;
32
- popupStylePreset?: 'default' | 'detail-style-one';
33
31
  } | {
34
32
  /** 详情页模式:渲染入口、横向集数条与弹层。 */mode: 'detail';
35
33
  information: SafeInformationType;
@@ -38,4 +36,4 @@ type SeriesEpisodesProps = {
38
36
  };
39
37
  declare function SeriesEpisodes(props: SeriesEpisodesProps): react_jsx_runtime0.JSX.Element;
40
38
  //#endregion
41
- export { DetailStyleOneActiveBorderLayer, SeriesEpisodes, SeriesEpisodesProps };
39
+ export { SeriesEpisodes, SeriesEpisodesProps };
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../ui/box.mjs";import{Text as t}from"../../ui/text.mjs";import{Sheet as n,SheetContent as r,SheetHeader as i,SheetTitle as a}from"../../ui/sheet.mjs";import{Switch as o}from"../../ui/switch.mjs";import{useKeepAliveState as s}from"../keep-scroll-position/index.mjs";import c from"../../../assets/icons/common/right_arrow.mjs";import l from"../../ui/popup.mjs";import{useCallback as u,useEffect as d,useMemo as f,useRef as p,useState as m}from"react";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";import{toast as v}from"sonner";import{useTranslations as y}from"next-intl";const b=`funhub:detail-series-popup-query`,x=`funhub:detail-series-popup-close`;function S(e){return e.type===b&&e instanceof CustomEvent}function C({active:e}){return e?_(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`shrink-0`,"aria-hidden":!0,children:[g(`circle`,{cx:`16`,cy:`12`,r:`3`,fill:`white`}),g(`path`,{d:`M8 5H16C19.866 5 23 8.13401 23 12C23 15.866 19.866 19 16 19H8C4.13401 19 1 15.866 1 12C1 8.13401 4.13401 5 8 5ZM16 15C17.6569 15 19 13.6569 19 12C19 10.3431 17.6569 9 16 9C14.3431 9 13 10.3431 13 12C13 13.6569 14.3431 15 16 15Z`,fill:`#9054E5`})]}):_(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`shrink-0`,"aria-hidden":!0,children:[g(`path`,{d:`M1.5 12C1.5 8.68629 4.18629 6 7.5 6H16.5C19.8137 6 22.5 8.68629 22.5 12C22.5 15.3137 19.8137 18 16.5 18H7.5C4.18629 18 1.5 15.3137 1.5 12Z`,stroke:`currentColor`,strokeWidth:`1.5`,strokeOpacity:`0.6`}),g(`circle`,{cx:`9`,cy:`12`,r:`3`,fill:`rgba(255,255,255,0.6)`})]})}function w(){return g(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`block h-[20px] w-[20px]`,"aria-hidden":!0,children:g(`path`,{d:`M10 8.61116L14.8611 3.75L16.25 5.13889L11.3889 10L16.25 14.8611L14.8611 16.25L10 11.3889L5.13889 16.25L3.75 14.8611L8.61111 10L3.75 5.13889L5.13889 3.75L10 8.61116Z`,fill:`currentColor`})})}function T(e,t,n){return(e||[]).map((e,r)=>{let i=Number.parseInt(e?.id||``,10),a=Number.isNaN(i)?r+1:i,o=e?.name||``,s=Number.isNaN(i)&&o||n(a);return{id:e?.id||`${t}-${a}`,series_num:a,title:s}})}function E(e,t,n){return(e||[]).map((e,r)=>{let i=Number(e?.id),a=Number.isNaN(i)?r+1:i,o=n(a);return{id:e?.id||`${t}-${a}`,series_num:a,title:o}})}function D(e,t,n){return e<=0?n(`singleContent`):n(t===`1`?`completedSeriesTotal`:`ongoingSeriesTotal`,{total:e})}function O(){return g(`span`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 overflow-hidden rounded-[8px] p-[0.5px]`,style:{backgroundImage:`linear-gradient(180deg, #9756E3 0%, #6C43EE 100%), linear-gradient(135deg, rgba(255,30,172,0.7) 0%, rgba(108,67,238,0) 100%)`},children:g(`span`,{className:`block h-full w-full`,style:{borderRadius:`7.5px`,backgroundColor:`#000000`,backgroundImage:`linear-gradient(90deg, rgba(246,206,255,0.1) 0%, rgba(246,206,255,0.1) 100%), linear-gradient(90deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.1) 100%)`}})})}function k(e){return e.mode===`detail`?g(j,{information:e.information,series_num:e.series_num,onEpisodeChange:e.onEpisodeChange}):g(A,{open:e.open,variant:e.variant,title:e.title,updateStatus:e.updateStatus,summaryText:e.summaryText,seriesList:e.seriesList,activeEpisodeId:e.activeEpisodeId,showEpisodeTitle:e.showEpisodeTitle,onToggleTitle:e.onToggleTitle,onClose:e.onClose,onSelectEpisode:e.onSelectEpisode,popupBodyStyle:e.popupBodyStyle,popupStylePreset:e.popupStylePreset})}function A({open:s,variant:c,title:u,updateStatus:h,summaryText:v,seriesList:b,activeEpisodeId:x,showEpisodeTitle:S=!1,onToggleTitle:E,onClose:k,onSelectEpisode:A,popupBodyStyle:j,popupStylePreset:M=`default`}){let N=y(`components.common.seriesEpisodes`),P=!!E,F=P&&S,I=c===`popup`&&M===`detail-style-one`,L=c===`popup`?20:50,R=p(null),z=p(null),B=f(()=>T(b,`episode`,e=>N(`episodeLabel`,{episode:e})),[b,N]),V=f(()=>{if(B.length===0)return[];let e=[];return B.forEach((t,n)=>{let r=Math.floor(n/L);e[r]||(e[r]=[]),e[r].push(t)}),e},[B,L]),H=f(()=>{if(!x)return 0;let e=B.findIndex(e=>e.id===x);return e<0?0:Math.floor(e/L)},[x,B,L]),[U,W]=m(H);d(()=>{W(H)},[H]);let G=f(()=>typeof v==`string`&&v.trim()?v:D(B.length,h,N),[B.length,v,N,h]),K=u||N(`selectorTitle`);function q(){let e=R.current;if(e){z.current&&=(window.cancelAnimationFrame(z.current),null),e.scrollTop=0;try{e.scrollTo({top:0,left:0,behavior:`auto`})}catch{}z.current=window.requestAnimationFrame(()=>{z.current=null;let e=R.current;e&&(e.scrollTop=0)})}}d(()=>{s&&q()},[s,S,U]);function J(e){E&&(E(e),q())}function Y(e){A?.(e.id,e.series_num),k()}let X=F?2:5,Z=V.length>1?g(`div`,{className:`shrink-0 w-full flex gap-[8px] overflow-x-auto`,children:V.map((e,t)=>{if(e.length===0)return null;let n=t===U,r=t*L+1,i=Math.min((t+1)*L,B.length);return _(`div`,{className:`shrink-0 px-[16px] py-[6px] rounded-[16px] text-[14px] transition-colors cursor-pointer relative overflow-hidden ${n?`text-theme5 bg-bg2`:`text-text2 bg-bg2`}`,onClick:()=>{W(t),q()},children:[r,`-`,i,n&&g(`div`,{className:`absolute w-full h-full top-0 left-0 opacity-20 bg-theme5`})]},`series-group-${t}`)})}):null,Q=_(`div`,{className:`pb-[8px] flex justify-between`,children:[g(`span`,{className:`text-[16px] text-text1`,children:G}),P&&_(`div`,{className:`flex items-center gap-[4px]`,children:[g(o,{size:`sm`,className:`data-checked:bg-theme5 h-[20px] w-[33px]`,checked:S,onCheckedChange:e=>{J(!!e)}}),g(`button`,{type:`button`,className:`text-[16px] text-text1`,onClick:()=>{J(!S)},children:N(`episodeTitle`)})]})]}),$=g(`div`,{className:`grid w-full gap-2 ${X===2?`grid-cols-2`:`grid-cols-5`}`,children:(V[U]||[]).map((e,t)=>{let n=!!(x&&e.id===x);return g(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Y(e)},className:`flex items-center justify-center w-full h-[60px] rounded-[8px] border border-line1 border-solid text-[16px] cursor-pointer select-none transition-colors relative overflow-hidden ${n?`font-bold text-theme5 bg-line1`:`text-text1`} ${F?`h-[72px] px-[10px] text-[14px]`:``} ${t%X===0?``:`border-l-0`}`,children:F?g(`span`,{className:`leading-[22px] line-clamp-2`,children:e.title}):e.series_num},e.id)})}),ee=V.length>1?g(`div`,{className:`flex gap-[8px] overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:V.map((e,t)=>{if(e.length===0)return null;let n=t===U,r=t*L+1,i=Math.min((t+1)*L,B.length);return g(`button`,{type:`button`,className:`flex h-[28px] w-[72px] shrink-0 items-center justify-center rounded-[100px] px-[4px] transition-colors ${n?`bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-white`:`bg-white/20 text-white`}`,onClick:()=>{W(t),q()},children:_(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[20px]`,children:[r,`-`,i]})},`series-popup-group-${t}`)})}):null,te=_(`div`,{className:`flex items-center justify-between`,children:[g(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/60`,children:G}),P&&_(`button`,{type:`button`,className:`flex items-center gap-[3px] text-white/60`,onClick:()=>{J(!S)},children:[g(C,{active:S}),g(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] ${S?`text-[#9756E3]`:`text-white/60`}`,children:N(`episodeTitle`)})]})]}),ne=F?g(`div`,{className:`flex w-full flex-col gap-[12px]`,children:(V[U]||[]).map(e=>{let t=!!(x&&e.id===x);return _(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Y(e)},className:`relative flex w-full items-start overflow-hidden rounded-[8px] px-[16px] py-[18px] text-left transition-colors ${t?I?``:`border border-[#FF1EFF] bg-[linear-gradient(90deg,rgba(246,206,255,0.1)_0%,rgba(246,206,255,0.1)_100%),linear-gradient(90deg,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0.1)_100%)]`:`bg-white/10`}`,children:[t&&I&&g(O,{}),g(`span`,{className:`relative z-[1] line-clamp-1 font-['PingFang_SC'] text-[14px] ${t?`font-medium leading-[16px] text-[#9756E3]`:`font-normal leading-[16px] text-white/80`}`,children:e.title})]},`popup-${e.id}`)})}):g(`div`,{className:`grid w-full grid-cols-[repeat(6,52px)] justify-between gap-y-[8px]`,children:(V[U]||[]).map(e=>{let t=!!(x&&e.id===x);return _(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Y(e)},className:`relative flex h-[52px] w-[52px] items-center justify-center overflow-hidden rounded-[8px] transition-colors ${t?I?`text-[#9756E3]`:`border border-[#E62AFF]/90 bg-[linear-gradient(90deg,rgba(246,206,255,0.1)_0%,rgba(246,206,255,0.1)_100%),linear-gradient(90deg,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0.1)_100%)] text-[#9756E3]`:`bg-white/10 text-white/80`}`,children:[t&&I&&g(O,{}),g(`span`,{className:`relative z-[1] font-['PingFang_SC'] text-[16px] font-medium not-italic leading-[16px]`,children:e.series_num})]},`popup-${e.id}`)})});return c===`sheet`?g(n,{open:s,onOpenChange:e=>!e&&k(),children:_(r,{side:`bottom`,showCloseButton:!0,className:`min-h-[50vh] bg-bg1 text-text1 rounded-t-2xl border-t border-white/10`,children:[g(i,{className:`pt-3 pb-0`,children:g(a,{className:`flex items-center justify-between text-lg text-text1`,children:K})}),_(`div`,{className:`px-4 pb-2 flex flex-col gap-3`,children:[Z,Q]}),g(`div`,{ref:R,className:`flex-1 h-0 pt-[4px] pb-[12px] overflow-y-auto px-4`,children:$})]})}):g(l,{open:s,onOpenChange:e=>{e||k()},showCloseButton:!1,className:`!gap-0 !border-0 !bg-transparent !p-0 !shadow-none`,overlayClassName:`bg-black/50 backdrop-blur-0`,children:_(e,{className:`flex h-full w-full flex-col overflow-hidden rounded-t-[16px] bg-black text-text1`,style:{height:`70vh`,...j},children:[_(e,{className:`shrink-0 flex items-center justify-between px-[16px] pt-[32px]`,children:[g(t,{className:`font-['PingFang_SC'] text-[18px] font-medium not-italic leading-[24px] text-white`,children:K}),g(`button`,{type:`button`,"aria-label":`关闭`,className:`flex h-[24px] w-[24px] items-center justify-center text-white opacity-60`,onClick:k,children:g(`span`,{className:`flex h-[24px] w-[24px] items-center overflow-hidden p-[2px]`,children:g(w,{})})})]}),g(e,{className:`flex-1 h-0 w-full px-[16px] pb-[24px]`,children:_(e,{className:`flex h-full flex-col`,children:[ee&&g(e,{className:`mt-[16px] shrink-0`,children:ee}),g(e,{className:`mt-[16px] shrink-0`,children:te}),g(e,{ref:R,className:`flex-1 overflow-y-auto pb-[17px] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden ${F?`mt-[12px]`:`mt-[8px]`}`,children:ne})]})})]})})}function j({information:n,series_num:r,onEpisodeChange:i}){let a=y(`components.common`),[o,l]=s(`detail-series-popup-${n.id}`,!1),[C,w]=s(`detail-series-title-toggle-${n.id}`,!1),[T,D]=s(`detail-series-scroll-left-${n.id}`,null),[O,k]=m(r);d(()=>{k(r)},[n.id,r]),d(()=>{if(typeof window>`u`)return;let e=()=>{l(!1)};return window.addEventListener(x,e),()=>{window.removeEventListener(x,e)}},[l]),d(()=>{if(typeof window>`u`)return;let e=e=>{if(!S(e))return;let t=e.detail||{};t.open=!!t.open||!!o};return window.addEventListener(b,e),()=>{window.removeEventListener(b,e)}},[o]);let j=f(()=>E((n.links||[]).map(e=>({id:e.id,name:e.name})),n.id||`episode`,e=>a(`seriesEpisodes.episodeLabel`,{episode:e})),[n.id,n.links,a]),M=n.update_status===`1`?a(`seriesEpisodes.completedSeriesTotal`,{total:n.links.length}):a(`seriesEpisodes.ongoingSeriesUpdatedTo`,{total:n.links.length}),N=f(()=>n.links[O-1]?.id||n.links[0]?.id||``,[n.links,O]),P=p(null),F=p(null),I=p(null),L=p(!1),R=p(null),z=p(null),B=p(null),[V,H]=m(!1),U=u((e,t=`smooth`)=>{let n=P.current?.querySelector(`[data-content-id="${e}"]`);if(n&&P.current){let e=P.current,r=Math.max(0,n.offsetLeft-10);e.scrollTo({left:r,behavior:t})}},[]),W=u(()=>{z.current!==null&&(window.clearTimeout(z.current),z.current=null)},[]),G=u(()=>{B.current!==null&&(window.clearTimeout(B.current),B.current=null)},[]),K=u(()=>{R.current!==null&&(v.dismiss(R.current),R.current=null),W(),G()},[G,W]),q=u(()=>{F.current=null,I.current=null,K(),H(!1)},[K]),J=u((e,t)=>{G(),B.current=window.setTimeout(()=>{B.current=null,F.current===e&&q()},Math.max(0,t))},[G,q]);d(()=>{L.current=!1},[n.id]),d(()=>{if(L.current||!N)return;let e=window.requestAnimationFrame(()=>{let e=P.current;e&&(typeof T==`number`?e.scrollTo({left:Math.max(0,T),behavior:`auto`}):(U(N,`auto`),D(Math.max(0,Math.round(e.scrollLeft)))),L.current=!0)});return()=>{window.cancelAnimationFrame(e)}},[N,T,U,D]),d(()=>{let e=F.current;!e||e!==r||J(e,1e3)},[J,r]),d(()=>()=>{q()},[q]);let Y=u((e,t,n)=>{let r=P.current;if(!r||!e)return t;let i=r.querySelector(`[data-content-id="${e}"]`);if(!i)return t;let a=r.getBoundingClientRect();if(a.width<=0||typeof n!=`number`||(n-a.left)/a.width<.5)return t;let o=i.offsetLeft+i.offsetWidth/2,s=r.clientWidth/2,c=Math.max(0,r.scrollWidth-r.clientWidth),l=Math.min(c,Math.max(0,o-s));return r.scrollTo({left:l,behavior:`smooth`}),Math.round(l)},[]),X=u((e,t=`inline`,o,s)=>{if(e!==O){if(!n.links[e-1]){v.error(a(`seriesEpisodes.episodeNotFound`));return}if(typeof window<`u`&&window.isWebView===!0){try{k(e);let c=o||n.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),D(Math.max(0,Math.round(P.current?.scrollLeft||0)))):D(Y(c,l,s)),H(!0),K(),R.current=v.loading(a(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(k(r),q(),v.error(a(`seriesEpisodes.episodeSwitchFailed`)))},3e3),i(e)}catch(e){k(r),q(),console.error(`切换剧集失败`,e),v.error(a(`seriesEpisodes.episodeSwitchFailed`))}return}try{k(e);let c=o||n.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),D(Math.max(0,Math.round(P.current?.scrollLeft||0)))):D(Y(c,l,s)),H(!0),K(),R.current=v.loading(a(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(k(r),q(),v.error(a(`seriesEpisodes.episodeSwitchFailed`)))},8e3),i(e)}catch(e){k(r),q(),console.error(`切换剧集失败`,e),v.error(a(`seriesEpisodes.episodeSwitchFailed`))}}},[q,K,n.links,i,O,r,Y,U,D,a]),[Z,Q]=m(`70vh`),$=u(()=>{if(typeof window>`u`)return;if(window.isWebView===!0){Q(`100vh`);return}let e=document.getElementById(`selectPopupPosition`),t=window.visualViewport?.height||window.innerHeight;if(!e){Q(`70vh`);return}let n=Math.max(0,t-e.offsetTop);if(n<=0){Q(`70vh`);return}Q(`${n}px`)},[]);return d(()=>{if(!o)return;$();let e=()=>{$()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[$,o]),j.length<=1?null:_(h,{children:[_(e,{className:`w-full mt-[16px] flex flex-col items-end mb-[4px]`,children:[_(e,{className:`w-fit flex items-center px-[12px] h-[28px]`,onClick:()=>l(!0),children:[g(t,{className:`text-[14px] text-text2 leading-[20px]`,children:M}),g(c,{className:`w-[11px] h-[18px] ml-[4px] text-text2`})]}),g(`div`,{ref:P,className:`w-full mt-[12px] overflow-x-auto px-[12px] flex gap-x-[8px] ${C?`h-[76px]`:`h-[60px]`} ${V?`touch-none`:``}`,children:j.map((e,n)=>g(`div`,{"data-content-id":e.id,className:`shrink-0 h-[full] px-[18px] rounded-[6px] border border-line1 flex items-center ${C?`w-[162px]`:`w-[60px] !px-[0] justify-center`} ${e.id===N?`!border-theme5 bg-line1`:``}`,onClick:t=>{X(n+1,`inline`,e.id,t.clientX)},children:g(t,{className:`text-[16px] text-text1 leading-[22px] line-clamp-2 ${e.id===N?`font-bold !text-theme5`:``}`,children:C?e.title:e.series_num})},e.id))})]}),g(A,{title:a(`seriesEpisodes.selectorTitle`),variant:`popup`,open:o,updateStatus:n.update_status,summaryText:M,seriesList:(n.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:N,showEpisodeTitle:C,onToggleTitle:e=>{w(e)},onClose:()=>l(!1),onSelectEpisode:(e,t)=>{l(!1),X(t,`popup`,e)},popupBodyStyle:{height:Z},popupStylePreset:`default`})]})}export{O as DetailStyleOneActiveBorderLayer,k as SeriesEpisodes};
2
+ "use client";import{Box as e}from"../../ui/box.mjs";import{Text as t}from"../../ui/text.mjs";import{Sheet as n,SheetContent as r,SheetHeader as i,SheetTitle as a}from"../../ui/sheet.mjs";import{Switch as o}from"../../ui/switch.mjs";import{useKeepAliveState as s}from"../keep-scroll-position/index.mjs";import c from"../../../assets/icons/close.mjs";import l from"../../../assets/icons/common/right_arrow.mjs";import u from"../../ui/popup.mjs";import{useCallback as d,useEffect as f,useMemo as p,useRef as m,useState as h}from"react";import{Fragment as g,jsx as _,jsxs as v}from"react/jsx-runtime";import{toast as y}from"sonner";import{useTranslations as b}from"next-intl";const x=`funhub:detail-series-popup-query`,S=`funhub:detail-series-popup-close`;function C(e){return e.type===x&&e instanceof CustomEvent}function w(e,t,n){return(e||[]).map((e,r)=>{let i=Number.parseInt(e?.id||``,10),a=Number.isNaN(i)?r+1:i,o=e?.id||``,s=Number.isNaN(i)&&o||n(a);return{id:e?.id||`${t}-${a}`,series_num:a,title:s}})}function T(e,t,n){return(e||[]).map((e,r)=>{let i=Number(e?.id),a=Number.isNaN(i)?r+1:i,o=n(a);return{id:e?.id||`${t}-${a}`,series_num:a,title:o}})}function E(e,t,n){return e<=0?n(`singleContent`):n(t===`1`?`completedSeriesTotal`:`ongoingSeriesTotal`,{total:e})}function D(e){return e.mode===`detail`?_(k,{information:e.information,series_num:e.series_num,onEpisodeChange:e.onEpisodeChange}):_(O,{open:e.open,variant:e.variant,title:e.title,updateStatus:e.updateStatus,summaryText:e.summaryText,seriesList:e.seriesList,activeEpisodeId:e.activeEpisodeId,showEpisodeTitle:e.showEpisodeTitle,onToggleTitle:e.onToggleTitle,onClose:e.onClose,onSelectEpisode:e.onSelectEpisode,popupBodyStyle:e.popupBodyStyle})}function O({open:s,variant:l,title:d,updateStatus:g,summaryText:y,seriesList:x,activeEpisodeId:S,showEpisodeTitle:C=!1,onToggleTitle:T,onClose:D,onSelectEpisode:O,popupBodyStyle:k}){let A=b(`components.common.seriesEpisodes`),j=!!T,M=j&&C,N=m(null),P=m(null),F=p(()=>w(x,`episode`,e=>A(`episodeLabel`,{episode:e})),[x,A]),I=p(()=>{if(F.length===0)return[];let e=[];return F.forEach((t,n)=>{let r=Math.floor(n/50);e[r]||(e[r]=[]),e[r].push(t)}),e},[F]),L=p(()=>{if(!S)return 0;let e=F.findIndex(e=>e.id===S);return e<0?0:Math.floor(e/50)},[S,F]),[R,z]=h(L);f(()=>{z(L)},[L]);let B=p(()=>typeof y==`string`&&y.trim()?y:E(F.length,g,A),[F.length,y,A,g]),V=d||A(`selectorTitle`);function H(){let e=N.current;if(e){P.current&&=(window.cancelAnimationFrame(P.current),null),e.scrollTop=0;try{e.scrollTo({top:0,left:0,behavior:`auto`})}catch{}P.current=window.requestAnimationFrame(()=>{P.current=null;let e=N.current;e&&(e.scrollTop=0)})}}f(()=>{s&&H()},[s,C,R]);function U(e){T&&(T(e),H())}function W(e){O?.(e.id,e.series_num),D()}let G=M?2:5,K=I.length>1?_(`div`,{className:`shrink-0 w-full flex gap-[8px] overflow-x-auto`,children:I.map((e,t)=>{if(e.length===0)return null;let n=t===R,r=t*50+1,i=Math.min((t+1)*50,F.length);return v(`div`,{className:`shrink-0 px-[16px] py-[6px] rounded-[16px] text-[14px] transition-colors cursor-pointer relative overflow-hidden ${n?`text-theme5 bg-bg2`:`text-text2 bg-bg2`}`,onClick:()=>{z(t),H()},children:[r,`-`,i,n&&_(`div`,{className:`absolute w-full h-full top-0 left-0 opacity-20 bg-theme5`})]},`series-group-${t}`)})}):null,q=v(`div`,{className:`pb-[8px] flex justify-between`,children:[_(`span`,{className:`text-[16px] text-text1`,children:B}),j&&v(`div`,{className:`flex items-center gap-[4px]`,children:[_(o,{size:`sm`,className:`data-checked:bg-theme5 h-[20px] w-[33px]`,checked:C,onCheckedChange:e=>{U(!!e)}}),_(`button`,{type:`button`,className:`text-[16px] text-text1`,onClick:()=>{U(!C)},children:A(`episodeTitle`)})]})]}),J=_(`div`,{className:`grid w-full gap-2 ${G===2?`grid-cols-2`:`grid-cols-5`}`,children:(I[R]||[]).map((e,t)=>{let n=!!(S&&e.id===S);return _(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{W(e)},className:`flex items-center justify-center w-full h-[60px] rounded-[8px] border border-line1 border-solid text-[16px] cursor-pointer select-none transition-colors relative overflow-hidden ${n?`font-bold text-theme5 bg-line1`:`text-text1`} ${M?`h-[72px] px-[10px] text-[14px]`:``} ${t%G===0?``:`border-l-0`}`,children:M?_(`span`,{className:`leading-[22px] line-clamp-2`,children:e.title}):e.series_num},e.id)})});return l===`sheet`?_(n,{open:s,onOpenChange:e=>!e&&D(),children:v(r,{side:`bottom`,showCloseButton:!0,className:`min-h-[50vh] bg-bg1 text-text1 rounded-t-2xl border-t border-white/10`,children:[_(i,{className:`pt-3 pb-0`,children:_(a,{className:`flex items-center justify-between text-lg text-text1`,children:V})}),v(`div`,{className:`px-4 pb-2 flex flex-col gap-3`,children:[K,q]}),_(`div`,{ref:N,className:`flex-1 h-0 pt-[4px] pb-[12px] overflow-y-auto px-4`,children:J})]})}):_(u,{open:s,onOpenChange:e=>{e||D()},showCloseButton:!1,className:`border-0 bg-transparent p-0`,children:v(e,{className:`w-full flex flex-col bg-bg1 px-[12px] text-text1`,style:{height:`70vh`,...k},children:[v(e,{className:`shrink-0 flex justify-between items-center h-[48px]`,children:[_(t,{className:`text-[16px] font-bold text-text1`,children:V}),_(e,{className:`pl-[12px] h-full flex items-center`,onClick:D,children:_(c,{className:`w-[14px] h-[14px] text-text1 cursor-pointer`})})]}),v(e,{className:`flex-1 h-0 w-full pb-[12px] flex flex-col gap-3`,children:[K,q,_(e,{ref:N,className:`flex-1 h-0 pt-[4px] pb-[12px] overflow-y-auto`,children:J})]})]})})}function k({information:n,series_num:r,onEpisodeChange:i}){let a=b(`components.common`),[o,c]=s(`detail-series-popup-${n.id}`,!1),[u,w]=s(`detail-series-title-toggle-${n.id}`,!1),[E,D]=s(`detail-series-scroll-left-${n.id}`,null),[k,A]=h(r);f(()=>{A(r)},[n.id,r]),f(()=>{if(typeof window>`u`)return;let e=()=>{c(!1)};return window.addEventListener(S,e),()=>{window.removeEventListener(S,e)}},[c]),f(()=>{if(typeof window>`u`)return;let e=e=>{if(!C(e))return;let t=e.detail||{};t.open=!!t.open||!!o};return window.addEventListener(x,e),()=>{window.removeEventListener(x,e)}},[o]);let j=p(()=>T((n.links||[]).map(e=>({id:e.id,name:e.name})),n.id||`episode`,e=>a(`seriesEpisodes.episodeLabel`,{episode:e})),[n.id,n.links,a]),M=n.update_status===`1`?a(`seriesEpisodes.completedSeriesTotal`,{total:n.links.length}):a(`seriesEpisodes.ongoingSeriesUpdatedTo`,{total:n.links.length}),N=p(()=>n.links[k-1]?.id||n.links[0]?.id||``,[n.links,k]),P=m(null),F=m(null),I=m(null),L=m(!1),R=m(null),z=m(null),B=m(null),[V,H]=h(!1),U=d((e,t=`smooth`)=>{let n=P.current?.querySelector(`[data-content-id="${e}"]`);if(n&&P.current){let e=P.current,r=Math.max(0,n.offsetLeft-10);e.scrollTo({left:r,behavior:t})}},[]),W=d(()=>{z.current!==null&&(window.clearTimeout(z.current),z.current=null)},[]),G=d(()=>{B.current!==null&&(window.clearTimeout(B.current),B.current=null)},[]),K=d(()=>{R.current!==null&&(y.dismiss(R.current),R.current=null),W(),G()},[G,W]),q=d(()=>{F.current=null,I.current=null,K(),H(!1)},[K]),J=d((e,t)=>{G(),B.current=window.setTimeout(()=>{B.current=null,F.current===e&&q()},Math.max(0,t))},[G,q]);f(()=>{L.current=!1},[n.id]),f(()=>{if(L.current||!N)return;let e=window.requestAnimationFrame(()=>{let e=P.current;e&&(typeof E==`number`?e.scrollTo({left:Math.max(0,E),behavior:`auto`}):(U(N,`auto`),D(Math.max(0,Math.round(e.scrollLeft)))),L.current=!0)});return()=>{window.cancelAnimationFrame(e)}},[N,E,U,D]),f(()=>{let e=F.current;!e||e!==r||J(e,1e3)},[J,r]),f(()=>()=>{q()},[q]);let Y=d((e,t,n)=>{let r=P.current;if(!r||!e)return t;let i=r.querySelector(`[data-content-id="${e}"]`);if(!i)return t;let a=r.getBoundingClientRect();if(a.width<=0||typeof n!=`number`||(n-a.left)/a.width<.5)return t;let o=i.offsetLeft+i.offsetWidth/2,s=r.clientWidth/2,c=Math.max(0,r.scrollWidth-r.clientWidth),l=Math.min(c,Math.max(0,o-s));return r.scrollTo({left:l,behavior:`smooth`}),Math.round(l)},[]),X=d((e,t=`inline`,o,s)=>{if(e!==k){if(!n.links[e-1]){y.error(a(`seriesEpisodes.episodeNotFound`));return}if(typeof window<`u`&&window.isWebView===!0){try{A(e);let c=o||n.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),D(Math.max(0,Math.round(P.current?.scrollLeft||0)))):D(Y(c,l,s)),H(!0),K(),R.current=y.loading(a(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(A(r),q(),y.error(a(`seriesEpisodes.episodeSwitchFailed`)))},3e3),i(e)}catch(e){A(r),q(),console.error(`切换剧集失败`,e),y.error(a(`seriesEpisodes.episodeSwitchFailed`))}return}try{A(e);let c=o||n.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),D(Math.max(0,Math.round(P.current?.scrollLeft||0)))):D(Y(c,l,s)),H(!0),K(),R.current=y.loading(a(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(A(r),q(),y.error(a(`seriesEpisodes.episodeSwitchFailed`)))},8e3),i(e)}catch(e){A(r),q(),console.error(`切换剧集失败`,e),y.error(a(`seriesEpisodes.episodeSwitchFailed`))}}},[q,K,n.links,i,k,r,Y,U,D,a]),[Z,Q]=h(`70vh`),$=d(()=>{if(typeof window>`u`)return;if(window.isWebView===!0){Q(`100vh`);return}let e=document.getElementById(`selectPopupPosition`),t=window.visualViewport?.height||window.innerHeight;if(!e){Q(`70vh`);return}let n=Math.max(0,t-e.offsetTop);if(n<=0){Q(`70vh`);return}Q(`${n}px`)},[]);return f(()=>{if(!o)return;$();let e=()=>{$()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[$,o]),j.length<=1?null:v(g,{children:[v(e,{className:`w-full mt-[16px] flex flex-col items-end mb-[4px]`,children:[v(e,{className:`w-fit flex items-center px-[12px] h-[28px]`,onClick:()=>c(!0),children:[_(t,{className:`text-[14px] text-text2 leading-[20px]`,children:M}),_(l,{className:`w-[11px] h-[18px] ml-[4px] text-text2`})]}),_(`div`,{ref:P,className:`w-full mt-[12px] overflow-x-auto px-[12px] flex gap-x-[8px] ${u?`h-[76px]`:`h-[60px]`} ${V?`touch-none`:``}`,children:j.map((e,n)=>_(`div`,{"data-content-id":e.id,className:`shrink-0 h-[full] px-[18px] rounded-[6px] border border-line1 flex items-center ${u?`w-[162px]`:`w-[60px] !px-[0] justify-center`} ${e.id===N?`!border-theme5 bg-line1`:``}`,onClick:t=>{X(n+1,`inline`,e.id,t.clientX)},children:_(t,{className:`text-[16px] text-text1 leading-[22px] line-clamp-2 ${e.id===N?`font-bold !text-theme5`:``}`,children:u?e.title:e.series_num})},e.id))})]}),_(O,{title:a(`seriesEpisodes.selectorTitle`),variant:`popup`,open:o,updateStatus:n.update_status,summaryText:M,seriesList:(n.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:N,showEpisodeTitle:u,onToggleTitle:e=>{w(e)},onClose:()=>c(!1),onSelectEpisode:(e,t)=>{c(!1),X(t,`popup`,e)},popupBodyStyle:{height:Z}})]})}export{D as SeriesEpisodes};
@@ -0,0 +1,2 @@
1
+
2
+ "use client";import{Box as e}from"../../ui/box.mjs";import{useId as t}from"react";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{useTranslations as i}from"next-intl";import a from"react-content-loader";function o({uniqueKey:o}){let s=i(`components.common`),c=t();return n(e,{className:`mb-[12px] w-full border-b border-line1 px-[12px] pb-[12px]`,children:r(a,{uniqueKey:o||c,viewBox:`0 0 375 312`,className:`h-auto w-full text-text1`,backgroundColor:`currentColor`,foregroundColor:`currentColor`,backgroundOpacity:.08,foregroundOpacity:.18,preserveAspectRatio:`none`,title:s(`skeleton.loading`),children:[n(`rect`,{x:0,y:0,rx:12,ry:12,width:375,height:211}),n(`rect`,{x:8,y:187,rx:4,ry:4,width:34,height:14}),n(`rect`,{x:325,y:187,rx:4,ry:4,width:42,height:14}),n(`rect`,{x:8,y:221,rx:4,ry:4,width:176,height:24}),n(`rect`,{x:8,y:257,rx:4,ry:4,width:205,height:20}),n(`rect`,{x:255,y:225,rx:21,ry:21,width:112,height:42})]})})}function s({count:t=3,uniqueKeyPrefix:r=`search-video-card-skeleton`,className:i=``}){return n(e,{className:`w-full px-[12px] pt-[12px] bg-bg1 ${i}`.trim(),children:Array.from({length:t}).map((e,t)=>n(o,{uniqueKey:`${r}-${t}`},`${r}-${t}`))})}export{s as SearchVideoCardSkeleton};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../ui/box.mjs";import{Text as t}from"../../ui/text.mjs";import n from"../../ui/link.mjs";import r from"../../../assets/icons/tabs/follow.mjs";import i from"../../../assets/icons/tabs/follow_active.mjs";import a from"../../../assets/icons/tabs/home.mjs";import o from"../../../assets/icons/tabs/home_active.mjs";import s from"../../../assets/icons/tabs/mine.mjs";import c from"../../../assets/icons/tabs/mine_active.mjs";import l from"../../ui/legacy/badge.mjs";import{useEffect as u,useState as d,useTransition as f}from"react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{usePathname as h}from"next/navigation";import{useTranslations as g}from"next-intl";function _(e,t){if(t!==`/`)return e.startsWith(t);let n=[`/user`].some(t=>e.startsWith(t)),r=e.startsWith(`/category/`);return!n&&(e===`/`||r)}const v=[`/nav-page`];function y(y){let{className:b}=y,x=h(),S=g(`tabBar`),[C,w]=d(null),[,T]=f(),[E]=d(0),[D,O]=d(!1),k=[{badge:!1,id:1,labelKey:`home`,path:`/`,icon:a,activeIcon:o,width:20,height:20},{badge:!1,id:2,labelKey:`follow`,path:`/user/follow`,icon:r,activeIcon:i,width:20,height:20},{badge:!1,id:5,labelKey:`mine`,path:`/user/mine`,icon:s,activeIcon:c,width:20,height:20}],A=(e,t,n)=>{t!==x&&w(t)};return u(()=>{C&&_(x,C)&&T(()=>{w(null)})},[x,C]),u(()=>{let e=setTimeout(()=>{O(!0)},0);return()=>clearTimeout(e)},[]),x&&v.some(e=>x.includes(e))?null:p(e,{className:`fixed bottom-0 left-0 right-0 z-50 flex flex-col items-center ${b||``}`,style:{background:`rgba(5, 1, 15, 0.90)`,backdropFilter:`blur(4px)`,WebkitBackdropFilter:`blur(4px)`,paddingBottom:`env(safe-area-inset-bottom, 0px)`},children:p(e,{className:`my-[4px] flex h-[56px] w-[358px] items-center justify-between px-[40px]`,style:{background:`rgba(1, 0, 2, 0.80)`,borderRadius:`100px`,backdropFilter:`blur(8px)`,WebkitBackdropFilter:`blur(8px)`,boxShadow:`0 12px 100px rgba(255, 255, 255, 0.20)`},children:k.map(r=>{let i=D&&x?_(C||x||``,r.path):!1,a=i?r.activeIcon:r.icon,o=m(e,{className:`flex flex-col items-center ${i?`gap-[5px]`:`gap-[4px]`}`,children:[r.badge&&E>0?p(l,{dot:!0,children:p(a,{width:20,height:20})}):p(a,{width:20,height:20}),p(t,{className:`whitespace-nowrap text-center text-[12px] leading-[16px] ${i?`text-[#C043E8]`:`text-[#BFBFBF]`}`,children:S(r.labelKey)})]});return i?p(e,{className:`flex items-center justify-center`,children:o},r.id):p(n,{href:r.path,prefetch:!0,className:`flex items-center justify-center`,onClick:e=>{A(e,r.path,r.labelKey)},children:o},r.id)})})})}export{y as TabBar};
2
+ "use client";import{Box as e}from"../../ui/box.mjs";import{Text as t}from"../../ui/text.mjs";import n from"../../ui/link.mjs";import r from"../../../assets/icons/tabs/follow.mjs";import i from"../../../assets/icons/tabs/follow_active.mjs";import a from"../../../assets/icons/tabs/home.mjs";import o from"../../../assets/icons/tabs/home_active.mjs";import s from"../../../assets/icons/tabs/mine.mjs";import c from"../../../assets/icons/tabs/mine_active.mjs";import l from"../../ui/legacy/badge.mjs";import{useEffect as u,useState as d,useTransition as f}from"react";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";import{usePathname as g}from"next/navigation";import{useTranslations as _}from"next-intl";function v(e,t){if(t!==`/`)return e.startsWith(t);let n=[`/user`].some(t=>e.startsWith(t)),r=e.startsWith(`/category/`);return!n&&(e===`/`||r)}const y=[`/nav-page`];function b(b){let{className:x}=b,S=g(),C=_(`tabBar`),[w,T]=d(null),[,E]=f(),[D]=d(0),[O,k]=d(!1),A=[{badge:!1,id:1,labelKey:`home`,path:`/`,icon:a,activeIcon:o,width:22,height:22},{badge:!1,id:2,labelKey:`follow`,path:`/user/follow`,icon:r,activeIcon:i,width:22,height:22},{badge:!1,id:5,labelKey:`mine`,path:`/user/mine`,icon:s,activeIcon:c,width:22,height:22}],j=(e,t,n)=>{t!==S&&T(t)};return u(()=>{w&&v(S,w)&&E(()=>{T(null)})},[S,w]),u(()=>{let e=setTimeout(()=>{k(!0)},0);return()=>clearTimeout(e)},[]),S&&y.some(e=>S.includes(e))?null:m(e,{className:`fixed bottom-0 left-0 right-0 z-50 flex h-[var(--tab-bar-height)] items-center justify-around border-t border-line1 bg-bg1 ${x||``}`,children:A.map(r=>{let i=O&&S?v(w||S||``,r.path):!1,a=i?r.activeIcon:r.icon,o=h(p,{children:[r.badge&&D>0?m(l,{dot:!0,children:m(a,{width:r.width,height:r.height})}):m(a,{width:r.width,height:r.height}),m(t,{className:`text-[10px] mt-[4px] ${i?`text-theme5`:`text-text2`}`,children:C(r.labelKey)})]});return i?m(e,{className:`flex flex-col items-center justify-center flex-1 h-full`,children:o},r.id):m(n,{href:r.path,prefetch:!0,className:`flex flex-col items-center justify-center flex-1 h-full`,onClick:e=>{j(e,r.path,r.labelKey)},children:o},r.id)})})}export{b as TabBar};
@@ -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{gCommunityGetCollectionInfo as n,pCommunityDeleteCollection as r,pCommunityRemoveContentFromCollection as i,pInteractionBatchDeleteCollects as a}from"../../../service/generated/client.mjs";import{useRouter as o}from"../../../utils/use-compatible-router.mjs";import{Box as s}from"../../ui/box.mjs";import{Checkbox as ee}from"../../ui/checkbox.mjs";import{DropdownMenu as te,DropdownMenuContent as c,DropdownMenuItem as l,DropdownMenuSeparator as u,DropdownMenuTrigger as ne}from"../../ui/dropdown-menu.mjs";import{List as d}from"../../ui/list.mjs";import{Text as re}from"../../ui/text.mjs";import{useLoginModalStore as f}from"../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as p,useMutation as m,useRequest as ie}from"../../../hooks/query/use-query.mjs";import{CreateCollectionSheet as ae}from"../../common/collection-popup/create-collection-sheet.mjs";import{ShareDrawer as oe}from"../../common/share-popup/share-drawer.mjs";import{SharePlatformEnum as h}from"../../../types/share.mjs";import se from"../../../utils/share-manager.mjs";import{DeleteConfirmDialog as ce}from"../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{HeaderNav as le}from"../../common/header-nav/client.mjs";import{CollectionDetailCard as g}from"./_components/collection-detail-card.mjs";import{CollectionDetailVideoCard as ue}from"./_components/collection-detail-video-card.mjs";import{useMemo as _,useState as v}from"react";import{MoreVertical as y}from"lucide-react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{toast as S}from"sonner";import{useTranslations as de}from"next-intl";function C(e){if(e.cover_image)return e.cover_image;let t=``;return e.medias?.find(e=>e?(!e.is_video&&!t&&e.media_url&&(t=e.media_url),!!e.cover_image):!1)?.cover_image||t}function w(e){let t=e.detail.info?.video_duration;if(typeof t==`number`&&Number.isFinite(t)&&t>0)return Math.floor(t);let n=e.detail.duration;if(typeof n==`number`&&Number.isFinite(n)&&n>0)return Math.floor(n);let r=e.medias?.find(e=>{let t=e?.video_duration;return typeof t==`number`&&Number.isFinite(t)&&t>0})?.video_duration;return typeof r==`number`&&Number.isFinite(r)&&r>0?Math.floor(r):0}function T(e){let t=[e.detail.episode_cnt,e.detail.series_num_total,Array.isArray(e.detail.links)?e.detail.links.length:void 0].find(e=>typeof e==`number`&&Number.isFinite(e)&&e>0);return typeof t==`number`?Math.floor(t):0}function E(e){let t=e.detail.info?.play_count;if(typeof t==`number`&&Number.isFinite(t))return Math.max(0,Math.floor(t));let n=e.detail.view_count||e.viewCount;return typeof n==`number`&&Number.isFinite(n)?Math.max(0,Math.floor(n)):0}function D(e){return e.detail.type===2||e.is_more_link||e.detail.info?.is_more_link||e.detail.is_more_link?!0:T(e)>1}function fe(e){let t=e.detail,n=t.info,r=String(n?.cover_image||t.cover_image||C(e)||``),i=String(n?.text||n?.title||t.title||t.content||``),a=T(e),o=t.author_score??0,s=Array.isArray(t.tags)?t.tags:[];return{id:e.content_id?String(e.content_id):String(e.id),title:i,type:typeof e.type==`number`?e.type:0,coverImage:r,score:o,collectedAt:t.create_time==null?void 0:String(t.create_time),tags:s,duration:w(e),viewCount:E(e),episodeCount:a,publishTime:String(t.create_time??t.update_time??``),is_more_link:D(e),authorName:``}}function O({id:C}){let w=de(`components.pages.collectionDetail`),T=o(),{userId:E,isLogin:D}=t(),{open:O}=f(),k=p(),A=ie([`collection-detail`,C],()=>n({collection_id:C})),j=A.data?.data?.data?.collection?.user_id,M=!!(j&&E&&String(j)===String(E)),[pe,N]=v(!1),[P,F]=v(!1),[I,L]=v(!1),[R,z]=v(!1),[B,V]=v(()=>new Set),[H,U]=v(null),W=A.data?.data?.data?.collection,G=W?.contents,K=_(()=>G?G.map(e=>({content_id:e.content_id,is_more_link:e.is_more_link,id:Number(e.content_id),detail:e,type:Number(e.source_type??0),medias:e.medias,cover_image:e.cover_image,viewCount:e.view_count})):[],[G]).map(fe),me=K.length>0&&K.every(e=>e.type===1),q=_(()=>new Set(K.map(e=>e.id)),[K]),J=q.size>0&&B.size===q.size,{mutateAsync:he,isPending:ge}=m(async e=>await i({collection_id:C,content_id:e})),{mutateAsync:_e,isPending:Y}=m(async e=>await r({collection_id:e})),{mutateAsync:ve,isPending:X}=m(async e=>await a({app_id:0,user_id:E,folder_id:C,content_type:1,content_ids:e})),ye=M&&W?.is_default===!1;function be(e){U({kind:`content`,id:e.id,type:e.type,title:e.title,isCollected:!0}),N(!0)}function Z(){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}if(!M){S.error(w(`detail.operationFailed`));return}V(new Set),z(!0)}function xe(){V(new Set),z(!1)}function Q(e){V(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function Se(){if(J){V(new Set);return}V(new Set(q))}async function Ce(){if(!(B.size===0||X)){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}try{let e=await ve(Array.from(B));if(e.code===0){S.success(w(`detail.uncollectSuccess`)),k([`collection-detail`,C]),k([`user-profile`,`mine`]),k([`user-profile`,`profile`,j]),V(new Set),z(!1);return}S.error(e.message||w(`detail.uncollectFailed`))}catch(e){console.error(`批量取消收藏失败`,e),S.error(w(`detail.operationFailed`))}}}function we(e){if(typeof window>`u`)return``;if(e.kind===`collection`)return`${window.location.origin}/collection/${e.id}`;let t=e.title?encodeURIComponent(e.title):`detail`,n=e.type===1?`/video/${e.id}/${t}`:`/post/${e.id}`;return`${window.location.origin}${n}`}function $(e){if(!H)return;let t=we(H);t&&se.showSharePopup({type:e,data:{id:H.id},copyUrl:t})}function Te(){$(h.WECHAT)}function Ee(){$(h.QQ)}function De(){$(h.WECHAT_MOMENTS)}function Oe(){if(!ge){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}!H||H.kind!==`content`||he(H.id).then(e=>{if(e.code===0){S.success(w(`detail.uncollectSuccess`)),k([`collection-detail`,C]),U(e=>e&&{...e,isCollected:!1});return}S.error(e.message||w(`detail.uncollectFailed`))}).catch(e=>{console.error(`取消收藏失败`,e),S.error(w(`detail.operationFailed`))})}}function ke(){L(!0),N(!1)}function Ae(){if(!Y){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}if(!ye){S.error(w(`detail.defaultCollectionDeleteNotSupported`));return}F(!0)}}async function je(){if(!Y)try{let e=await _e(C);if(e.code===0){S.success(w(`detail.deleteSuccess`)),k([`collection-detail`,C]),k([`user-profile`,`mine`]),k([`user-profile`,`profile`,j]),F(!1),N(!1),T.back();return}S.error(e.message||w(`detail.deleteFailed`))}catch(e){console.error(`删除合集失败`,e),S.error(w(`detail.operationFailed`))}}return x(s,{className:`relative flex min-h-screen flex-col overflow-hidden bg-[var(--color-surface-panel-dark)] ${R?`pb-28`:`pb-6`}`,children:[b(le,{className:`!border-none !bg-[var(--color-surface-panel-dark)] !border-transparent`,title:W?.title??``,centerChild:b(`p`,{className:`line-clamp-1 px-12 text-center text-[18px] leading-[22px] font-medium text-text1`,children:W?.title??``}),onBack:()=>T.back(),rightChild:M?R?b(`button`,{type:`button`,onClick:xe,className:`px-2 py-1 text-sm text-text1`,children:w(`detail.done`)}):x(te,{children:[b(ne,{className:`flex h-10 w-10 items-center justify-center text-text1 outline-none`,children:b(y,{className:`h-5 w-5`,strokeWidth:2})}),x(c,{align:`end`,sideOffset:6,className:`!w-[180px] rounded-[8px] border-none !border-none !ring-0 shadow-none !shadow-none bg-[#252327] px-0 pb-1 pt-[3px]`,children:[b(l,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:ke,children:w(`detail.editCollection`)}),b(u,{className:`mx-0 my-1 bg-[#343237]`}),b(l,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:Z,children:w(`detail.manageCollection`)}),b(u,{className:`mx-0 my-1 bg-[#343237]`}),b(l,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:Ae,disabled:Y,children:w(Y?`detail.deleting`:`detail.deleteCollection`)})]})]}):void 0}),b(s,{className:`relative z-[1] px-4 pb-4`,children:b(s,{className:`text-text2 text-sm leading-[22px] break-all text-ellipsis line-clamp-1`,children:W?.description})}),b(s,{className:`relative z-[1] px-4 ${R?`pb-20`:``}`,children:me?b(d,{loading:A.isLoading,hasMore:!1,emptyText:w(`detail.emptyContent`),columns:2,gridGap:16,className:`!bg-transparent`,children:K.map(e=>b(ue,{id:e.id,title:e.title,coverImage:e.coverImage,duration:e.duration,episodeCount:e.episodeCount,viewCount:e.viewCount,is_more_link:e.is_more_link,isEditMode:R,isSelected:B.has(e.id),onToggleSelection:Q},e.id))}):b(d,{loading:A.isLoading,hasMore:!1,emptyText:w(`detail.emptyContent`),className:`!bg-transparent divide-y divide-text1/5`,children:K.map(e=>b(g,{...e,onOpenShare:be,isEditMode:R,isSelected:B.has(e.id),onToggleSelection:Q},e.id))})}),R&&x(s,{className:`fixed bottom-0 left-0 right-0 z-10 flex items-center justify-between border-t border-text1/10 bg-bg1 px-4 py-3`,children:[x(s,{className:`flex items-center gap-2`,children:[b(ee,{checked:J,onCheckedChange:Se}),b(re,{className:`text-sm text-text1`,children:w(`detail.selectAll`)})]}),b(e,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:B.size>0?`default`:`outline`,disabled:B.size===0||X,onClick:Ce,children:w(X?`detail.deleting`:`detail.delete`)})]}),b(oe,{isShowCollect:H?.kind===`content`&&M&&D,isCollected:H?.isCollected,open:pe,onOpenChange:N,onShareWeChat:Te,onShareQQ:Ee,onShareMoments:De,onUncollect:Oe}),b(ae,{visible:I,mode:`edit`,collectionId:C,initialValues:W?{title:W.title??``,description:W.description??``}:void 0,onClose:()=>L(!1)}),b(ce,{open:P,onOpenChange:F,onConfirm:je,title:w(`detail.deleteCollection`),isConfirming:Y})]})}export{O as CollectionDetail};
2
+ "use client";import{Button as e}from"../../ui/button.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as n,gUserViewUserInfo as r,pCommunityDeleteCollection as i,pCommunityRemoveContentFromCollection as a,pCommunitySubscribeCollection as o,pInteractionBatchDeleteCollects as s}from"../../../service/generated/client.mjs";import{useRouter as ee}from"../../../utils/use-compatible-router.mjs";import{Box as c}from"../../ui/box.mjs";import{Checkbox as te}from"../../ui/checkbox.mjs";import{Drawer as ne,DrawerContent as re,DrawerDescription as ie,DrawerTitle as ae}from"../../ui/drawer.mjs";import{List as oe}from"../../ui/list.mjs";import{Text as l}from"../../ui/text.mjs";import{useLoginModalStore as se}from"../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as ce,useMutation as u,useRequest as d,useUpdateRequest as le}from"../../../hooks/query/use-query.mjs";import{ShareDrawer as f}from"../../common/share-popup/share-drawer.mjs";import{SharePlatformEnum as p}from"../../../types/share.mjs";import m from"../../../utils/share-manager.mjs";import{DeleteConfirmDialog as ue}from"../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{HeaderNav as de}from"../../common/header-nav/client.mjs";import{MoreIcon as fe}from"../../common/icons/more.mjs";import{CollectionDetailCard as pe}from"./_components/collection-detail-card.mjs";import{useEffect as me,useMemo as h,useState as g}from"react";import{jsx as _,jsxs as v}from"react/jsx-runtime";import{toast as y}from"sonner";import{useSearchParams as b}from"next/navigation";import{useTranslations as he}from"next-intl";function x(e){if(e.cover_image)return e.cover_image;let t=``;return e.medias?.find(e=>e?(!e.is_video&&!t&&e.media_url&&(t=e.media_url),!!e.cover_image):!1)?.cover_image||t}function S(e){let t=e.detail.info?.video_duration;if(typeof t==`number`&&Number.isFinite(t)&&t>0)return Math.floor(t);let n=e.medias?.find(e=>{let t=e?.video_duration;return typeof t==`number`&&Number.isFinite(t)&&t>0})?.video_duration;return typeof n==`number`&&Number.isFinite(n)&&n>0?Math.floor(n):0}function C(e){let t=e.detail.info?.play_count;if(typeof t==`number`&&Number.isFinite(t))return Math.max(0,Math.floor(t));let n=e.detail.view_count||e.viewCount;return typeof n==`number`&&Number.isFinite(n)?Math.max(0,Math.floor(n)):0}function ge(e){let t=e.detail,n=t.info,r=String(n?.cover_image||t.cover_image||x(e)||``),i=String(n?.text||n?.title||t.title||t.content||``),a=t.author_score??0,o=Array.isArray(t.tags)?t.tags:[];return{id:e.content_id?String(e.content_id):String(e.id),title:i,type:typeof e.type==`number`?e.type:0,coverImage:r,score:a,collectedAt:t.create_time==null?void 0:String(t.create_time),tags:o,duration:S(e),viewCount:C(e),publishTime:String(t.create_time??t.update_time??``),is_more_link:e.is_more_link??n?.is_more_link??!1,authorName:``}}function w({id:x}){let S=he(`components.pages.collectionDetail`),C=ee(),w=b(),{userId:T,isLogin:E}=t(),{open:D}=se(),O=ce();le();let k=d([`collection-detail`,x],()=>n({collection_id:x})),A=k.data?.data?.data?.collection?.user_id,j=!!(A&&T&&String(A)===String(T)),_e=d([`user-info`,A],()=>r({target_user_id:A,user_id:A})),[ve,M]=g(!1),[N,P]=g(!1),[F,I]=g(!1),[L,R]=g(!1),[z,B]=g(!1),[V,H]=g(()=>new Set),[U,W]=g(null);me(()=>{!N&&L&&(I(!0),R(!1))},[N,L]);let G=k.data?.data?.data?.collection,K=G?.contents,q=h(()=>K?K.map(e=>({content_id:e.content_id,is_more_link:e.is_more_link,id:Number(e.content_id),detail:e,type:Number(e.source_type??0),medias:e.medias,cover_image:e.cover_image,viewCount:e.view_count})):[],[K]).map(ge),J=h(()=>new Set(q.map(e=>e.id)),[q]),Y=J.size>0&&V.size===J.size;G?.cover_image,G?.content_count,G?.is_subscribe;let{mutateAsync:ye,isPending:be}=u(async e=>await o({collection_id:x,subscribe:e})),{mutateAsync:xe,isPending:Se}=u(async e=>await a({collection_id:x,content_id:e})),{mutateAsync:Ce,isPending:X}=u(async e=>await i({collection_id:e})),{mutateAsync:we,isPending:Z}=u(async e=>await s({app_id:0,user_id:T,folder_id:x,content_type:1,content_ids:e})),Q=_e.data?.data;Q?.avatar,Q?.nick_name;let Te=j&&G?.is_default===!1;function Ee(e){W({kind:`content`,id:e.id,type:e.type,title:e.title,isCollected:!0}),M(!0)}function De(){if(j){P(!0);return}W({kind:`collection`,id:x}),M(!0)}function Oe(){if(!E||!T){y.error(S(`detail.pleaseLogin`)),D();return}if(!j){y.error(S(`detail.operationFailed`));return}P(!1),H(new Set),B(!0)}function ke(){H(new Set),B(!1)}function Ae(e){H(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function je(){if(Y){H(new Set);return}H(new Set(J))}async function Me(){if(!(V.size===0||Z)){if(!E||!T){y.error(S(`detail.pleaseLogin`)),D();return}try{let e=await we(Array.from(V));if(e.code===0){y.success(S(`detail.uncollectSuccess`)),O([`collection-detail`,x]),O([`user-profile`,`mine`]),O([`user-profile`,`profile`,A]),H(new Set),B(!1);return}y.error(e.message||S(`detail.uncollectFailed`))}catch(e){console.error(`批量取消收藏失败`,e),y.error(S(`detail.operationFailed`))}}}function Ne(e){if(typeof window>`u`)return``;if(e.kind===`collection`)return`${window.location.origin}/collection/${e.id}`;let t=e.title?encodeURIComponent(e.title):`detail`,n=e.type===1?`/video/${e.id}/${t}`:`/post/${e.id}`;return`${window.location.origin}${n}`}function $(e){if(!U)return;let t=Ne(U);t&&m.showSharePopup({type:e,data:{id:U.id},copyUrl:t})}function Pe(){$(p.WECHAT)}function Fe(){$(p.QQ)}function Ie(){$(p.WECHAT_MOMENTS)}function Le(){if(!Se){if(!E||!T){y.error(S(`detail.pleaseLogin`)),D();return}!U||U.kind!==`content`||xe(U.id).then(e=>{if(e.code===0){y.success(S(`detail.uncollectSuccess`)),O([`collection-detail`,x]),W(e=>e&&{...e,isCollected:!1});return}y.error(e.message||S(`detail.uncollectFailed`))}).catch(e=>{console.error(`取消收藏失败`,e),y.error(S(`detail.operationFailed`))})}}function Re(){let e=new URLSearchParams(w.toString());e.set(`id`,x),e.set(`type`,`edit`),C.push(`/collection/create?${e.toString()}`),P(!1),M(!1)}function ze(){if(!X){if(!E||!T){y.error(S(`detail.pleaseLogin`)),D();return}if(!Te){y.error(S(`detail.defaultCollectionDeleteNotSupported`));return}R(!0),P(!1)}}async function Be(){if(!X)try{let e=await Ce(x);if(e.code===0){y.success(S(`detail.deleteSuccess`)),O([`collection-detail`,x]),O([`user-profile`,`mine`]),O([`user-profile`,`profile`,A]),I(!1),P(!1),M(!1),C.back();return}y.error(e.message||S(`detail.deleteFailed`))}catch(e){console.error(`删除合集失败`,e),y.error(S(`detail.operationFailed`))}}return v(c,{className:`flex flex-col bg-bg1 min-h-screen ${z?`pb-28`:`pb-6`}`,children:[_(de,{title:G?.title??``,onBack:()=>C.back(),rightChild:j?z?_(`button`,{type:`button`,onClick:ke,className:`px-2 py-1 text-sm text-text1`,children:S(`detail.done`)}):_(`button`,{type:`button`,onClick:De,className:`p-2`,children:_(fe,{})}):void 0}),_(c,{className:`px-4 flex items-start gap-4`,children:v(c,{className:`flex-1 flex flex-col gap-2`,children:[_(c,{className:`flex items-center justify-between`}),_(c,{className:`text-text2 text-sm break-all text-ellipsis line-clamp-1`,children:G?.description})]})}),_(c,{className:`px-4 ${z?`pb-20`:``}`,children:_(oe,{loading:k.isLoading,hasMore:!1,emptyText:S(`detail.emptyContent`),className:`divide-y divide-text1/5`,children:q.map(e=>_(pe,{...e,onOpenShare:Ee,isEditMode:z,isSelected:V.has(e.id),onToggleSelection:Ae},e.id))})}),z&&v(c,{className:`fixed bottom-0 left-0 right-0 z-10 flex items-center justify-between border-t border-text1/10 bg-bg1 px-4 py-3`,children:[v(c,{className:`flex items-center gap-2`,children:[_(te,{checked:Y,onCheckedChange:je}),_(l,{className:`text-sm text-text1`,children:S(`detail.selectAll`)})]}),_(e,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:V.size>0?`default`:`outline`,disabled:V.size===0||Z,onClick:Me,children:S(Z?`detail.deleting`:`detail.delete`)})]}),v(ne,{open:N,onOpenChange:P,children:[_(ae,{className:`hidden`,children:S(`detail.collectionManageTitle`)}),_(ie,{className:`hidden`,children:S(`detail.collectionManageTitle`)}),v(re,{className:`z-[2000]`,children:[v(c,{className:`px-4 py-5`,children:[_(l,{className:`text-base font-bold text-text1 text-center `,children:S(`detail.collectionManageTitle`)}),v(c,{className:`mt-4 border-t border-text1/10`,children:[_(`button`,{className:`w-full text-left py-4 border-b border-text1/10`,onClick:Re,children:_(l,{className:`text-text1`,children:S(`detail.editCollection`)})}),_(`button`,{className:`w-full text-left py-4 border-b border-text1/10`,onClick:Oe,children:_(l,{className:`text-text1`,children:S(`detail.manageCollection`)})}),_(`button`,{className:`w-full text-left py-4 ${X?`opacity-60 cursor-not-allowed`:``}`,onClick:ze,disabled:X,children:_(l,{className:`text-destructive`,children:S(X?`detail.deleting`:`detail.deleteCollection`)})})]})]}),_(e,{className:`w-full h-auto py-4 text-lg text-text1`,size:`lg`,onClick:()=>P(!1),variant:`secondary`,children:S(`detail.cancel`)})]})]}),_(f,{isShowCollect:U?.kind===`content`&&j&&E,isCollected:U?.isCollected,open:ve,onOpenChange:M,onShareWeChat:Pe,onShareQQ:Fe,onShareMoments:Ie,onUncollect:Le}),_(ue,{open:F,onOpenChange:I,onConfirm:Be,title:S(`detail.deleteCollection`),isConfirming:X})]})}export{w as CollectionDetail};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gUserGetUserEditInfo as t,gUserGetUserInfo as n,pUserEditUserInfo as r}from"../../../service/generated/client.mjs";import{uploadFile as i}from"../../../utils/upload-file.mjs";import{Avatar as ee,AvatarFallback as te,AvatarImage as ne}from"../../ui/avatar.mjs";import{Box as a}from"../../ui/box.mjs";import{InputGroup as re,InputGroupAddon as ie,InputGroupTextarea as ae}from"../../ui/input-group.mjs";import{Text as o}from"../../ui/text.mjs";import{useDeleteRequest as oe,useMutation as se,useRequest as ce}from"../../../hooks/query/use-query.mjs";import{HeaderNav as le}from"../../common/header-nav/client.mjs";import{PickerDrawer as s}from"../../common/picker/picker-drawer/picker-drawer.mjs";import{GenderPicker as ue}from"../../common/picker/gender-picker/gender-picker.mjs";import{ImageCropModal as de}from"../../common/image-crop-modal/image-crop-modal.mjs";import{useEffect as c,useRef as l,useState as u}from"react";import{ChevronDown as fe}from"lucide-react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{toast as p}from"sonner";import{useTranslations as pe}from"next-intl";import{produce as me}from"immer";const m={0:`secret`,1:`male`,2:`female`},h={male:1,female:2,secret:0},g=[`image/jpeg`,`image/png`],he=/^[\u4E00-\u9FFF\w.-]+$/;function ge(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return g.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function _(e){return e?h[e]===void 0?m[e]??`secret`:e:`secret`}function v(e){if(!e)return;if(h[e]!==void 0)return h[e];let t=Number(e);return Number.isNaN(t)?void 0:t}function _e(e){return{nickname:e?.nick_name??``,gender:_(e?.gender?.toString()),signature:e?.signature??``,avatar:e?.avatar??``}}function ve(e){if(!e)return;e.focus();let t=e.value.length;e.setSelectionRange(t,t)}function ye({id:m}){let h=pe(`components.pages.edit`),{userId:g,userInfo:_,setUserInfo:ye}=e(),y=m??g,b=oe(),be={male:h(`page.genderMale`),female:h(`page.genderFemale`),secret:h(`page.genderSecret`)},xe=l(null),x=l(null),S=l(null),C=l(null),[w,T]=u(()=>_e()),[E,D]=u(!1),[Se,O]=u(null),[Ce,k]=u(!1),[A,j]=u(``),[M,N]=u(!1),[P,F]=u(``),[we,I]=u(!1),[L,R]=u(`secret`),[z,Te]=u(!1),[B,V]=u(``),Ee={code:0,message:``,data:{}},De={code:0,message:``,data:{}},{data:Oe,isLoading:H}=ce([`user-edit-info`,y],()=>y?t({user_id:y}):Promise.resolve(Ee)),{data:ke}=ce([`user-info-basic`,y],()=>y?n({user_id:y}):Promise.resolve(De)),{mutateAsync:Ae,isPending:je}=se(async e=>r(e)),Me=E||je||Se!==null,U=H||Me,W=U?`cursor-not-allowed opacity-60`:`cursor-pointer`,Ne=ke?.data?.display_id||_?.display_id||`--`,G=w.gender||`secret`,Pe=U||P.trim()===w.nickname,Fe=U||L===G,Ie=U||B===w.signature,K=`flex h-12 w-full items-center rounded-md bg-[var(--color-surface-field-bg)] px-4`,q=`text-sm leading-6 text-text3`,J=`block min-w-0 flex-1 truncate text-sm leading-5 text-text3`;c(()=>{let e=Oe?.data;e&&T(_e(e))},[Oe]),c(()=>{if(!M)return;let e=window.setTimeout(()=>{ve(x.current)},250);return()=>{window.clearTimeout(e)}},[M]),c(()=>{if(!z)return;let e=window.setTimeout(()=>{ve(S.current)},250);return()=>{window.clearTimeout(e)}},[z]),c(()=>()=>{A&&URL.revokeObjectURL(A)},[A]);function Y(e,t){T(me(n=>{n[e]=t}))}function Le(){A&&(URL.revokeObjectURL(A),j(``))}function Re(){y&&(b([`user-edit-info`,y]),b([`user-info-basic`,y]),b([`user-profile`,`mine`]),b([`user-profile`,`mine`,y]),b([`user-profile`,`profile`,y]))}function X(e){!y||y!==g||ye({..._,user_id:y,...e})}function ze(){p.info(h(`page.editBlockedWhileSaving`))}function Z(){return H?!0:Me?(ze(),!0):!1}function Be(e){return C.current?(ze(),!1):(C.current=e,O(e),!0)}function Ve(e){C.current===e&&(C.current=null,O(null))}async function Q(e,t){if(!Be(e))return!1;let n=p.loading(h(`page.savingInProgress`));try{return await t()}finally{p.dismiss(n),Ve(e)}}function He(e,t){let n={...w,...t},r={nickname:[`nick_name`,n.nickname||void 0],avatar:[`avatar`,n.avatar||void 0],signature:[`signature`,n.signature||void 0],gender:[`gender`,v(n.gender)]},i=Object.keys(r).filter(t=>t!==e).map(e=>r[e]);return i.push(r[e]),Object.fromEntries(i)}async function $(e,t){if(!y)return p.error(h(`page.userNotFound`)),!1;let n=He(e,t);try{return await Ae({user_id:y,...n}),Re(),!0}catch(e){return console.error(`更新用户信息失败`,e),p.error(h(`page.updateFailed`)),!1}}function Ue(){Z()||E||xe.current?.click()}function We(e){if(Z()){e.target&&(e.target.value=``);return}let t=e.target.files?.[0];if(t){if(!ge(t)){p.error(h(`page.imageTypeInvalid`)),e.target&&(e.target.value=``);return}j(URL.createObjectURL(t)),k(!0),e.target&&(e.target.value=``)}}async function Ge(e){await Q(`avatar`,async()=>{try{D(!0);let t=await i(new File([e],`avatar.jpg`,{type:`image/jpeg`}),1);return await $(`avatar`,{avatar:t.objectKey})?(Y(`avatar`,t.objectKey),X({avatar:t.objectKey}),Ke(),p.success(h(`page.avatarUpdateSuccess`)),!0):!1}catch(e){return console.error(`上传头像失败`,e),p.error(h(`page.avatarUploadFailed`)),!1}finally{D(!1)}})}function Ke(){k(!1),Le()}function qe(){Z()||(F(w.nickname),N(!0))}function Je(e){let t=e.target.value;t.length>24||F(t)}function Ye(e){return e?e.length<2?h(`page.nicknameTooShort`):he.test(e)?``:h(`page.nicknameInvalidChars`):h(`page.nicknameRequired`)}async function Xe(e){if(Pe)return!1;let t=e.trim(),n=Ye(t);return n?(p.error(n),!1):await Q(`nickname`,async()=>$(`nickname`,{nickname:t}))?(Y(`nickname`,t),X({nick_name:t}),F(t),p.success(h(`page.nicknameUpdateSuccess`)),!0):!1}function Ze(){Z()||(R(G),I(!0))}function Qe(){I(!1)}function $e(e){R(e)}async function et(e){let t=e||L||`secret`;if(t===G)return!1;let n=v(t);return await Q(`gender`,async()=>$(`gender`,{gender:t}))?(Y(`gender`,t),X({gender:n}),R(t),p.success(h(`page.genderUpdateSuccess`)),!0):!1}function tt(){Z()||(V(w.signature),Te(!0))}function nt(e){let t=e.target.value;t.length>100||V(t)}function rt(e){let t=e.trim();return t.length>0&&t.length<2?h(`page.signatureTooShort`):``}async function it(e){if(Ie)return!1;let t=rt(e);return t?(p.error(t),!1):await Q(`signature`,async()=>$(`signature`,{signature:e}))?(Y(`signature`,e),X({signature:e}),V(e),p.success(h(`page.signatureUpdateSuccess`)),!0):!1}return f(a,{className:`min-h-screen bg-[var(--color-surface-panel-dark)]`,children:[d(le,{className:`h-11 !border-none !bg-[var(--color-surface-panel-dark)]`,title:h(`page.title`)}),f(a,{className:`mx-auto flex w-full max-w-[390px] flex-col px-8 pb-10 pt-17`,children:[f(`button`,{type:`button`,onClick:Ue,className:`flex flex-col items-center gap-4 pb-10 ${W}`,children:[d(`input`,{ref:xe,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:We}),d(a,{className:`flex h-[72px] w-[72px] items-center justify-center rounded-full bg-[var(--color-surface-white20)]`,children:f(ee,{className:`h-[60px] w-[60px] border-[3px] border-[var(--color-surface-white20)]`,children:[d(ne,{src:w.avatar}),d(te,{})]})}),f(o,{className:`text-base leading-5 text-text3`,children:[`ID:`,` `,H?h(`page.loading`):E?h(`page.avatarUploading`):`${Ne}`]})]}),f(a,{className:`flex flex-col gap-6`,children:[f(a,{className:`flex flex-col gap-2`,children:[d(o,{as:`p`,className:q,children:h(`page.label`)}),d(`button`,{type:`button`,onClick:qe,className:`${K} ${W}`,children:d(o,{className:J,children:w.nickname||h(`page.nicknamePlaceholder`)})})]}),f(a,{className:`flex flex-col gap-2`,children:[d(o,{as:`p`,className:q,children:h(`page.genderLabel`)}),f(`button`,{type:`button`,onClick:Ze,className:`${K} justify-between gap-3 ${W}`,children:[d(o,{className:J,children:be[G]||h(`page.genderSecret`)}),d(fe,{className:`h-5 w-5 shrink-0 text-text3`,strokeWidth:1.75})]})]}),f(a,{className:`flex flex-col gap-2`,children:[d(o,{as:`p`,className:q,children:h(`page.signatureLabel`)}),d(`button`,{type:`button`,onClick:tt,className:`${K} ${W}`,children:d(o,{className:J,children:w.signature||h(`page.signaturePlaceholder`)})})]})]})]}),d(s,{open:M,onClose:()=>N(!1),title:h(`page.label`),confirmText:h(`page.submit`),onConfirm:e=>Xe(String(e)),confirmDisabled:Pe,children:({onValueChange:e})=>d(a,{className:`px-4 py-4 min-h-[230px]`,children:f(re,{children:[d(ae,{ref:x,className:`!bg-bg1 p-2.5`,rows:4,maxLength:24,placeholder:h(`page.nicknamePlaceholder`),value:P,onChange:t=>{Je(t),e(t.target.value)},disabled:U}),d(ie,{className:`!bg-bg1`,align:`block-end`,children:d(`div`,{className:`text-right w-full`,children:f(`span`,{className:`text-xs`,children:[P.length,`/`,24]})})})]})})}),d(ue,{open:we,onClose:Qe,value:L,onValueChange:$e,onConfirm:et,confirmDisabled:Fe}),d(s,{open:z,onClose:()=>Te(!1),title:h(`page.signatureLabel`),confirmText:h(`page.submit`),onConfirm:e=>it(String(e)),confirmDisabled:Ie,children:({onValueChange:e})=>d(a,{className:`px-4 py-4 min-h-[230px]`,children:f(re,{children:[d(ae,{ref:S,className:`!bg-bg1 p-2.5`,rows:4,maxLength:100,placeholder:h(`page.signaturePlaceholder`),value:B,onChange:t=>{nt(t),e(t.target.value)},disabled:U}),d(ie,{className:`!bg-bg1`,align:`block-end`,children:d(`div`,{className:`text-right w-full`,children:f(`span`,{className:`text-xs`,children:[B.length,`/`,100]})})})]})})}),d(de,{open:Ce,onClose:Ke,imageSrc:A,onConfirm:Ge,cropShape:`round`})]})}export{ye as EditClient};
2
+ "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gUserGetUserEditInfo as t,gUserGetUserInfo as n,pUserEditUserInfo as r}from"../../../service/generated/client.mjs";import{uploadFile as i}from"../../../utils/upload-file.mjs";import{Avatar as ee,AvatarFallback as te,AvatarImage as ne}from"../../ui/avatar.mjs";import{Box as a}from"../../ui/box.mjs";import{InputGroup as o,InputGroupAddon as s,InputGroupTextarea as c}from"../../ui/input-group.mjs";import{Field as l,FieldLabel as u}from"../../ui/field.mjs";import{Text as d}from"../../ui/text.mjs";import{useDeleteRequest as re,useMutation as ie,useRequest as ae}from"../../../hooks/query/use-query.mjs";import{HeaderNav as oe}from"../../common/header-nav/client.mjs";import{PickerDrawer as se}from"../../common/picker/picker-drawer/picker-drawer.mjs";import{GenderPicker as ce}from"../../common/picker/gender-picker/gender-picker.mjs";import{ImageCropModal as le}from"../../common/image-crop-modal/image-crop-modal.mjs";import{useEffect as f,useRef as p,useState as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{toast as _}from"sonner";import{useTranslations as ue}from"next-intl";import{produce as de}from"immer";const fe={0:`secret`,1:`male`,2:`female`},v={male:1,female:2,secret:0},y=[`image/jpeg`,`image/png`],pe=/^[\u4E00-\u9FFF\w.-]+$/;function me(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return y.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function b(e){return e?v[e]===void 0?fe[e]??`secret`:e:`secret`}function he(e){if(!e)return;if(v[e]!==void 0)return v[e];let t=Number(e);return Number.isNaN(t)?void 0:t}function ge(e){return{nickname:e?.nick_name??``,gender:b(e?.gender?.toString()),signature:e?.signature??``,avatar:e?.avatar??``}}function _e(e){if(!e)return;e.focus();let t=e.value.length;e.setSelectionRange(t,t)}function ve({id:fe}){let v=ue(`components.pages.edit`),{userId:y,userInfo:b,setUserInfo:ve}=e(),x=fe??y,S=re(),ye={male:v(`page.genderMale`),female:v(`page.genderFemale`),secret:v(`page.genderSecret`)},C=p(null),w=p(null),T=p(null),E=p(null),[D,O]=m(()=>ge()),[k,A]=m(!1),[be,j]=m(null),[xe,M]=m(!1),[N,P]=m(``),[F,I]=m(!1),[L,R]=m(``),[Se,z]=m(!1),[B,V]=m(`secret`),[H,Ce]=m(!1),[U,W]=m(``),we={code:0,message:``,data:{}},Te={code:0,message:``,data:{}},{data:Ee,isLoading:G}=ae([`user-edit-info`,x],()=>x?t({user_id:x}):Promise.resolve(we)),{data:De}=ae([`user-info-basic`,x],()=>x?n({user_id:x}):Promise.resolve(Te)),{mutateAsync:Oe,isPending:ke}=ie(async e=>r(e)),Ae=k||ke||be!==null,K=G||Ae,q=K?`cursor-not-allowed opacity-60`:`cursor-pointer`,je=De?.data?.display_id||b?.display_id||`--`,J=D.gender||`secret`,Me=K||L.trim()===D.nickname,Ne=K||B===J,Pe=K||U===D.signature;f(()=>{let e=Ee?.data;e&&O(ge(e))},[Ee]),f(()=>{if(!F)return;let e=window.setTimeout(()=>{_e(w.current)},250);return()=>{window.clearTimeout(e)}},[F]),f(()=>{if(!H)return;let e=window.setTimeout(()=>{_e(T.current)},250);return()=>{window.clearTimeout(e)}},[H]),f(()=>()=>{N&&URL.revokeObjectURL(N)},[N]);function Y(e,t){O(de(n=>{n[e]=t}))}function Fe(){N&&(URL.revokeObjectURL(N),P(``))}function Ie(){x&&(S([`user-edit-info`,x]),S([`user-info-basic`,x]),S([`user-profile`,`mine`]),S([`user-profile`,`mine`,x]),S([`user-profile`,`profile`,x]))}function X(e){!x||x!==y||ve({...b,user_id:x,...e})}function Le(){_.info(v(`page.editBlockedWhileSaving`))}function Z(){return G?!0:Ae?(Le(),!0):!1}function Re(e){return E.current?(Le(),!1):(E.current=e,j(e),!0)}function ze(e){E.current===e&&(E.current=null,j(null))}async function Q(e,t){if(!Re(e))return!1;let n=_.loading(v(`page.savingInProgress`));try{return await t()}finally{_.dismiss(n),ze(e)}}function Be(e,t){let n={...D,...t},r={nickname:[`nick_name`,n.nickname||void 0],avatar:[`avatar`,n.avatar||void 0],signature:[`signature`,n.signature||void 0],gender:[`gender`,he(n.gender)]},i=Object.keys(r).filter(t=>t!==e).map(e=>r[e]);return i.push(r[e]),Object.fromEntries(i)}async function $(e,t){if(!x)return _.error(v(`page.userNotFound`)),!1;let n=Be(e,t);try{return await Oe({user_id:x,...n}),Ie(),!0}catch(e){return console.error(`更新用户信息失败`,e),_.error(v(`page.updateFailed`)),!1}}function Ve(){Z()||k||C.current?.click()}function He(e){if(Z()){e.target&&(e.target.value=``);return}let t=e.target.files?.[0];if(t){if(!me(t)){_.error(v(`page.imageTypeInvalid`)),e.target&&(e.target.value=``);return}P(URL.createObjectURL(t)),M(!0),e.target&&(e.target.value=``)}}async function Ue(e){await Q(`avatar`,async()=>{try{A(!0);let t=await i(new File([e],`avatar.jpg`,{type:`image/jpeg`}),1);return await $(`avatar`,{avatar:t.objectKey})?(Y(`avatar`,t.objectKey),X({avatar:t.objectKey}),We(),_.success(v(`page.avatarUpdateSuccess`)),!0):!1}catch(e){return console.error(`上传头像失败`,e),_.error(v(`page.avatarUploadFailed`)),!1}finally{A(!1)}})}function We(){M(!1),Fe()}function Ge(){Z()||(R(D.nickname),I(!0))}function Ke(e){let t=e.target.value;t.length>24||R(t)}function qe(e){return e?e.length<2?v(`page.nicknameTooShort`):pe.test(e)?``:v(`page.nicknameInvalidChars`):v(`page.nicknameRequired`)}async function Je(e){if(Me)return!1;let t=e.trim(),n=qe(t);return n?(_.error(n),!1):await Q(`nickname`,async()=>$(`nickname`,{nickname:t}))?(Y(`nickname`,t),X({nick_name:t}),R(t),_.success(v(`page.nicknameUpdateSuccess`)),!0):!1}function Ye(){Z()||(V(J),z(!0))}function Xe(){z(!1)}function Ze(e){V(e)}async function Qe(e){let t=e||B||`secret`;if(t===J)return!1;let n=he(t);return await Q(`gender`,async()=>$(`gender`,{gender:t}))?(Y(`gender`,t),X({gender:n}),V(t),_.success(v(`page.genderUpdateSuccess`)),!0):!1}function $e(){Z()||(W(D.signature),Ce(!0))}function et(e){let t=e.target.value;t.length>100||W(t)}function tt(e){let t=e.trim();return t.length>0&&t.length<2?v(`page.signatureTooShort`):``}async function nt(e){if(Pe)return!1;let t=tt(e);return t?(_.error(t),!1):await Q(`signature`,async()=>$(`signature`,{signature:e}))?(Y(`signature`,e),X({signature:e}),W(e),_.success(v(`page.signatureUpdateSuccess`)),!0):!1}return g(a,{className:`bg-bg2 !min-h-screen`,children:[h(oe,{className:`!bg-bg2`,title:v(`page.title`)}),g(a,{onClick:Ve,className:`flex bg-bg2 flex-col py-3 items-center justify-center gap-3 ${q}`,children:[h(`input`,{ref:C,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:He}),g(ee,{className:`w-21 h-21`,children:[h(ne,{src:D.avatar}),h(te,{})]}),g(d,{className:`text-sm text-text2`,children:[`ID:`,` `,G?v(`page.loading`):k?v(`page.avatarUploading`):`${je}`]})]}),g(a,{className:`pb-3`,children:[h(l,{className:`bg-bg2 px-3 ${q}`,onClick:Ge,children:g(`div`,{className:`flex items-center justify-between gap-3`,children:[h(u,{children:v(`page.label`)}),h(d,{className:`text-text2 text-sm text-right max-w-[65%] line-clamp-1 text-ellipsis`,children:D.nickname||v(`page.nicknamePlaceholder`)})]})}),h(l,{className:`!bg-bg2 px-3 border-none ${q}`,onClick:Ye,children:g(`div`,{className:`flex items-center justify-between gap-3`,children:[h(u,{children:v(`page.genderLabel`)}),h(d,{className:`text-text2 text-sm`,children:ye[J]||v(`page.genderSecret`)})]})}),h(`div`,{className:`h-2 bg-bg1`}),h(l,{className:`border-none px-3 bg-bg2! mt-2 ${q}`,onClick:$e,children:g(`div`,{className:`flex items-center justify-between gap-3`,children:[h(u,{children:v(`page.signatureLabel`)}),h(d,{className:`text-text2 text-sm text-right max-w-[65%] line-clamp-1 text-ellipsis`,children:D.signature||v(`page.signaturePlaceholder`)})]})})]}),h(se,{open:F,onClose:()=>I(!1),title:v(`page.label`),confirmText:v(`page.submit`),onConfirm:e=>Je(String(e)),confirmDisabled:Me,children:({onValueChange:e})=>h(a,{className:`px-4 py-4 min-h-[230px]`,children:g(o,{children:[h(c,{ref:w,className:`!bg-bg1 p-2.5`,rows:4,maxLength:24,placeholder:v(`page.nicknamePlaceholder`),value:L,onChange:t=>{Ke(t),e(t.target.value)},disabled:K}),h(s,{className:`!bg-bg1`,align:`block-end`,children:h(`div`,{className:`text-right w-full`,children:g(`span`,{className:`text-xs`,children:[L.length,`/`,24]})})})]})})}),h(ce,{open:Se,onClose:Xe,value:B,onValueChange:Ze,onConfirm:Qe,confirmDisabled:Ne}),h(se,{open:H,onClose:()=>Ce(!1),title:v(`page.signatureLabel`),confirmText:v(`page.submit`),onConfirm:e=>nt(String(e)),confirmDisabled:Pe,children:({onValueChange:e})=>h(a,{className:`px-4 py-4 min-h-[230px]`,children:g(o,{children:[h(c,{ref:T,className:`!bg-bg1 p-2.5`,rows:4,maxLength:100,placeholder:v(`page.signaturePlaceholder`),value:U,onChange:t=>{et(t),e(t.target.value)},disabled:K}),h(s,{className:`!bg-bg1`,align:`block-end`,children:h(`div`,{className:`text-right w-full`,children:g(`span`,{className:`text-xs`,children:[U.length,`/`,100]})})})]})})}),h(le,{open:xe,onClose:We,imageSrc:N,onConfirm:Ue,cropShape:`round`})]})}export{ve as EditClient};
@@ -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{pUserUserFeedback as r}from"../../../../service/generated/client.mjs";import{compressImage as i}from"../../../../utils/image-compression.mjs";import{uploadFile as a}from"../../../../utils/upload-file.mjs";import{useRouter as o}from"../../../../utils/use-compatible-router.mjs";import{Image as s}from"../../../ui/image.mjs";import{Box as c}from"../../../ui/box.mjs";import{InputGroup as l,InputGroupAddon as u,InputGroupInput as d,InputGroupTextarea as f}from"../../../ui/input-group.mjs";import{Field as p,FieldLabel as m}from"../../../ui/field.mjs";import{Text as h}from"../../../ui/text.mjs";import{HeaderNav as g}from"../../../common/header-nav/client.mjs";import{AddIcon as _}from"../../../common/icons/add.mjs";import{useRef as v,useState as y}from"react";import{XIcon as b}from"lucide-react";import{jsx as x,jsxs as S}from"react/jsx-runtime";import{toast as C}from"sonner";import{useTranslations as w}from"next-intl";const T=new Set([`image/jpeg`,`image/jpg`,`image/png`]),E=new Set([`jpg`,`jpeg`,`png`]);function D(e){let t=e.type.toLowerCase(),n=e.name.split(`.`).pop()?.toLowerCase()||``;return t?T.has(t):E.has(n)}function O({className:T}={}){let E=w(`components.pages.feedback.components`),O=o(),{userId:k}=n(),A=v(null),[j,M]=y({content:``,contact:``}),[N,P]=y([]),[F,I]=y(!1),[L,R]=y(!1),z=!j.content.trim();function B(e,t){M(n=>({...n,[e]:t}))}function V(){L||F||N.length>=3||A.current?.click()}async function H(e){let t=Array.from(e.target.files??[]);if(!t.length)return;let n=3-N.length;if(n<=0){e.target&&(e.target.value=``);return}let r=t.slice(0,n),o=r.filter(D);if(!o.length){C.error(E(`feedbackForm.imageTypeInvalid`)),e.target&&(e.target.value=``);return}o.length!==r.length&&C.error(E(`feedbackForm.imageTypeInvalid`));try{R(!0);let e=[],t=!1;for(let n of o)try{let t=await a(await i(n),1);e.push(t.objectKey)}catch(e){console.error(`上传截图失败`,e),t=!0}e.length&&P(t=>[...t,...e].slice(0,3)),t&&C.error(E(`feedbackForm.screenshotUploadFailed`))}catch(e){console.error(`上传截图失败`,e),C.error(E(`feedbackForm.screenshotUploadFailed`))}finally{R(!1),e.target&&(e.target.value=``)}}function U(e){L||F||P(t=>t.filter((t,n)=>n!==e))}async function W(){let e=j.content.trim(),t=j.contact.trim();if(!e){C.error(E(`feedbackForm.missingFeedback`));return}if(e.length<4){C.error(E(`feedbackForm.contentMinLength`));return}if(F)return;let n=C.loading(E(`feedbackForm.loading`));try{I(!0);let i=await r({user_id:k,feedback_content:e,feedback_screenshots:N.length?N:void 0,contact_info:t||void 0});if(i.code===0){M({content:``,contact:``}),P([]),O.push(`/settings`),C.success(E(`feedbackForm.submitsuccess`),{id:n});return}C.error(i.message||E(`feedbackForm.message`),{id:n})}catch(e){console.error(`提交反馈失败`,e),C.error(e.message||E(`feedbackForm.message`),{id:n})}finally{I(!1)}}return S(c,{className:e(`min-h-screen bg-[var(--color-surface-panel-dark)]`,T),children:[x(g,{title:E(`feedbackForm.title`),className:`!border-none !bg-[var(--color-surface-panel-dark)]`,rightChild:x(t,{onClick:W,disabled:F||L||z,className:`rounded-[8px] border-0 px-3 py-1.5 text-[16px] font-normal leading-6 text-white active:opacity-90 disabled:text-white/60 disabled:opacity-100`,style:{background:F||L||z?`linear-gradient(90deg, rgba(166, 86, 227, 0.45) 0%, rgba(108, 67, 238, 0.45) 100%)`:`var(--gradient-action-button)`},children:E(F?`feedbackForm.loading`:`feedbackForm.submit`)})}),S(c,{className:`pb-3`,children:[S(p,{className:`border-none bg-[var(--color-surface-panel-dark)] px-3`,children:[x(m,{required:!0,className:`text-sm leading-6 text-text3`,children:E(`feedbackForm.label`)}),S(l,{className:`overflow-hidden rounded-md !bg-[var(--color-surface-field-bg)] shadow-none dark:!bg-[var(--color-surface-field-bg)]`,children:[x(f,{className:`p-2.5 text-text1 placeholder:text-text3`,maxLength:500,placeholder:E(`feedbackForm.placeholder`),value:j.content,onChange:e=>B(`content`,e.target.value)}),x(u,{className:`!bg-transparent font-normal !text-text3`,align:`block-end`,children:x(`div`,{className:`w-full text-right`,children:S(`span`,{className:`text-xs tabular-nums text-text3`,children:[j.content.length,`/500`]})})})]})]}),S(p,{className:`border-none bg-[var(--color-surface-panel-dark)] px-3`,children:[x(m,{className:`text-sm leading-6 text-text3`,children:E(`feedbackForm.screenshotLabel`)}),x(`input`,{ref:A,type:`file`,multiple:!0,accept:`image/jpeg,image/jpg,image/png,.jpg,.jpeg,.png`,className:`hidden`,onChange:H}),S(c,{className:`mt-2 grid grid-cols-3 gap-2`,children:[N.map((e,n)=>S(c,{className:`relative aspect-square overflow-hidden rounded-md bg-[var(--color-surface-field-bg)] shadow-none`,children:[x(s,{src:e,alt:E(`feedbackForm.alt`),fill:!0,className:`object-cover`}),x(t,{size:`icon-xs`,variant:`secondary`,className:`absolute right-1 top-1 rounded-full bg-[var(--color-surface-chip-gray20)] text-text1 shadow-none`,onClick:()=>U(n),"aria-label":E(`feedbackForm.delete`),children:x(b,{})})]},`${e}-${n}`)),N.length<3&&S(c,{className:`flex aspect-square flex-col items-center justify-center gap-2 rounded-md border border-dashed border-[var(--color-line1)] bg-[var(--color-surface-field-bg)] py-3 text-center shadow-none`,onClick:V,children:[x(_,{}),x(h,{className:`text-xs text-text3`,children:E(L?`feedbackForm.uploading`:`feedbackForm.addScreenshot`)})]})]})]}),S(p,{className:`border-none bg-[var(--color-surface-panel-dark)] px-3`,children:[x(m,{className:`text-sm leading-6 text-text3`,children:E(`feedbackForm.contactLabel`)}),x(l,{className:`h-auto min-h-11 overflow-hidden rounded-md !bg-[var(--color-surface-field-bg)] shadow-none dark:!bg-[var(--color-surface-field-bg)]`,children:x(d,{className:`h-auto min-h-11 px-2.5 py-2.5 text-text1 placeholder:text-text3`,placeholder:E(`feedbackForm.placeholder1_6d0242`),value:j.contact,onChange:e=>B(`contact`,e.target.value)})})]})]})]})}export{O as FeedbackForm};
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{pUserUserFeedback as r}from"../../../../service/generated/client.mjs";import{compressImage as i}from"../../../../utils/image-compression.mjs";import{uploadFile as a}from"../../../../utils/upload-file.mjs";import{useRouter as o}from"../../../../utils/use-compatible-router.mjs";import{Image as s}from"../../../ui/image.mjs";import{Box as c}from"../../../ui/box.mjs";import{InputGroup as l,InputGroupAddon as u,InputGroupInput as d,InputGroupTextarea as f}from"../../../ui/input-group.mjs";import{Field as p,FieldLabel as m}from"../../../ui/field.mjs";import{Text as h}from"../../../ui/text.mjs";import{HeaderNav as g}from"../../../common/header-nav/client.mjs";import{AddIcon as _}from"../../../common/icons/add.mjs";import{useRef as v,useState as y}from"react";import{XIcon as b}from"lucide-react";import{jsx as x,jsxs as S}from"react/jsx-runtime";import{toast as C}from"sonner";import{useTranslations as w}from"next-intl";const T=new Set([`image/jpeg`,`image/jpg`,`image/png`]),E=new Set([`jpg`,`jpeg`,`png`]);function D(e){let t=e.type.toLowerCase(),n=e.name.split(`.`).pop()?.toLowerCase()||``;return t?T.has(t):E.has(n)}function O({className:T}={}){let E=w(`components.pages.feedback.components`),O=o(),{userId:k}=n(),A=v(null),[j,M]=y({content:``,contact:``}),[N,P]=y([]),[F,I]=y(!1),[L,R]=y(!1),z=!j.content.trim();function B(e,t){M(n=>({...n,[e]:t}))}function V(){L||F||N.length>=3||A.current?.click()}async function H(e){let t=Array.from(e.target.files??[]);if(!t.length)return;let n=3-N.length;if(n<=0){e.target&&(e.target.value=``);return}let r=t.slice(0,n),o=r.filter(D);if(!o.length){C.error(E(`feedbackForm.imageTypeInvalid`)),e.target&&(e.target.value=``);return}o.length!==r.length&&C.error(E(`feedbackForm.imageTypeInvalid`));try{R(!0);let e=[],t=!1;for(let n of o)try{let t=await a(await i(n),1);e.push(t.objectKey)}catch(e){console.error(`上传截图失败`,e),t=!0}e.length&&P(t=>[...t,...e].slice(0,3)),t&&C.error(E(`feedbackForm.screenshotUploadFailed`))}catch(e){console.error(`上传截图失败`,e),C.error(E(`feedbackForm.screenshotUploadFailed`))}finally{R(!1),e.target&&(e.target.value=``)}}function U(e){L||F||P(t=>t.filter((t,n)=>n!==e))}async function W(){let e=j.content.trim(),t=j.contact.trim();if(!e){C.error(E(`feedbackForm.missingFeedback`));return}if(e.length<4){C.error(E(`feedbackForm.contentMinLength`));return}if(F)return;let n=C.loading(E(`feedbackForm.loading`));try{I(!0);let i=await r({user_id:k,feedback_content:e,feedback_screenshots:N.length?N:void 0,contact_info:t||void 0});if(i.code===0){M({content:``,contact:``}),P([]),O.push(`/settings`),C.success(E(`feedbackForm.submitsuccess`),{id:n});return}C.error(i.message||E(`feedbackForm.message`),{id:n})}catch(e){console.error(`提交反馈失败`,e),C.error(e.message||E(`feedbackForm.message`),{id:n})}finally{I(!1)}}return S(c,{className:e(`min-h-screen bg-bg2`,T),children:[x(g,{title:E(`feedbackForm.title`),className:`!bg-bg2`,rightChild:x(t,{onClick:W,disabled:F||L||z,children:E(F?`feedbackForm.loading`:`feedbackForm.submit`)})}),S(c,{className:`pb-3`,children:[S(p,{className:`bg-bg2 px-3 border-none`,children:[x(m,{required:!0,children:E(`feedbackForm.label`)}),S(l,{children:[x(f,{className:`!bg-bg1 p-2.5 rounded-md`,maxLength:500,placeholder:E(`feedbackForm.placeholder`),value:j.content,onChange:e=>B(`content`,e.target.value)}),x(u,{className:`!bg-bg1`,align:`block-end`,children:x(`div`,{className:`text-right w-full`,children:S(`span`,{className:`text-xs`,children:[j.content.length,`/500`]})})})]})]}),S(p,{className:`bg-bg2 px-3 border-none`,children:[x(m,{children:E(`feedbackForm.screenshotLabel`)}),x(`input`,{ref:A,type:`file`,multiple:!0,accept:`image/jpeg,image/jpg,image/png,.jpg,.jpeg,.png`,className:`hidden`,onChange:H}),S(c,{className:`mt-2 grid grid-cols-3 gap-2`,children:[N.map((e,n)=>S(c,{className:`relative overflow-hidden rounded-lg border border-line1 !bg-bg1 aspect-square`,children:[x(s,{src:e,alt:E(`feedbackForm.alt`),fill:!0,className:`object-cover`}),x(t,{size:`icon-xs`,variant:`secondary`,className:`absolute right-1 top-1 rounded-full bg-bg1/85`,onClick:()=>U(n),"aria-label":E(`feedbackForm.delete`),children:x(b,{})})]},`${e}-${n}`)),N.length<3&&S(c,{className:`flex flex-col aspect-square items-center justify-center gap-2 rounded-lg border border-dashed border-text1/10 !bg-bg1 py-3 text-center`,onClick:V,children:[x(_,{}),x(h,{className:`text-xs text-text3`,children:E(L?`feedbackForm.uploading`:`feedbackForm.addScreenshot`)})]})]})]}),S(p,{className:`bg-bg2 px-3 border-none `,children:[x(m,{children:E(`feedbackForm.contactLabel`)}),x(l,{children:x(d,{className:`!bg-bg1 p-2.5 h-auto rounded-md`,placeholder:E(`feedbackForm.placeholder1_6d0242`),value:j.contact,onChange:e=>B(`contact`,e.target.value)})})]})]})]})}export{O as FeedbackForm};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{gContentGetAppChannelBlock as e,gContentGetAppChannelBlockData as t,gContentListVisibleFloatingBall as n}from"../../../service/generated/client.mjs";import{useRouter as r}from"../../../utils/use-compatible-router.mjs";import{useRequest as i}from"../../../hooks/query/use-query.mjs";import{useRequireLogin as a}from"../../../hooks/use-auth.mjs";import{queryKey as o}from"../../../constants/query-key.mjs";import{useKeepAliveState as s}from"../../common/keep-scroll-position/index.mjs";import{extractDataByComponentType as c}from"../../biz/utils/transformers/data.mjs";import{FloatingAd as l}from"../../biz/business/advertisement/floating-ad/client.mjs";import{useEffect as u,useLayoutEffect as d,useMemo as f,useRef as p}from"react";import{Fragment as m,jsx as h,jsxs as g}from"react/jsx-runtime";function _(){if(typeof document>`u`)return 0;let e=document.querySelector(`[data-top-nav-root="true"]`);return e&&e.getBoundingClientRect().height||0}function v({currentChannelId:v,isPGC:y}){let b=r(),x=a(),{data:S}=i(o.GET_CONTENT_LIST(v),()=>e({channel_id:v})),{data:C}=i([o.FLOATING_BALL],()=>n()),w=f(()=>S?.data?.blocks||[],[S?.data?.blocks]),T=f(()=>{let e=w.findIndex(e=>e.type===4),t=e>=0?w[e]:null;return{index:e,block:t,blockId:t?.id||``}},[w]),{data:E}=i([o.GUESS_YOU_LIKE_USER_DATA,T.blockId],()=>t({block_id:T.blockId}),{enabled:!!T.blockId}),D=f(()=>{if(T.index<0)return w;let e=E?.data.block?.data?.users||[];return w.map((t,n)=>n===T.index?{...t,data:{...t.data||{},users:e}}:t)},[w,E,T.index]),[O,k]=s(`home-scroll-top-${v}`,0),A=p({restored:!1,lastScrollTop:O,key:v,rafId:null}),j=p(k),M=p(O);u(()=>{j.current=k},[k]),u(()=>{M.current=O},[O]),u(()=>{A.current.key!==v&&(A.current.restored=!1,A.current.lastScrollTop=O,M.current=O,A.current.key=v)},[v,O]);let N=D.length>0;d(()=>{if(!N||A.current.restored||O<=0)return;let e=_(),t=Math.max(0,O+e);window.requestAnimationFrame(()=>{window.scrollTo({top:t}),A.current.restored=!0,A.current.lastScrollTop=t})},[N,v,O]),u(()=>{let e=A.current;function t(){e.restored=!0,e.rafId!==null&&window.cancelAnimationFrame(e.rafId),e.rafId=window.requestAnimationFrame(()=>{e.rafId=null;let t=window.scrollY??document.documentElement.scrollTop??0,n=_(),r=Math.max(0,t-n);Math.abs(t-e.lastScrollTop)>1&&(e.lastScrollTop=t,j.current(r))})}return window.addEventListener(`scroll`,t,{passive:!0}),()=>{e.rafId!==null&&(window.cancelAnimationFrame(e.rafId),e.rafId=null),window.removeEventListener(`scroll`,t)}},[v]);let P=f(()=>c(D,y),[D,y]),F=f(()=>C?.data?.ball_infos?.find(e=>e.channel_id===v),[C?.data?.ball_infos,v]);return g(m,{children:[F&&h(l,{ad:{materialUrl:F.material_url||``,jumpUrl:F.jump_url||``,name:F.name||``},onClick:()=>{x(()=>{F?.jump_url&&b.push(F.jump_url)})}}),P.map(e=>{let t=e.component,n=e.data.block_id||`block-${e.data.title||``}`;return h(t,{data:e.data},n)})]})}export{v as default};
2
+ "use client";import{gContentGetAppChannelBlock as e,gContentGetAppChannelBlockData as t,gContentListVisibleFloatingBall as n}from"../../../service/generated/client.mjs";import{useRouter as r}from"../../../utils/use-compatible-router.mjs";import{useRequest as i}from"../../../hooks/query/use-query.mjs";import{useRequireLogin as a}from"../../../hooks/use-auth.mjs";import{queryKey as o}from"../../../constants/query-key.mjs";import{useKeepAliveState as s}from"../../common/keep-scroll-position/index.mjs";import{FloatingAd as c}from"../../biz/business/advertisement/floating-ad/client.mjs";import{extractDataByComponentType as l}from"../../biz/utils/transformers/data.mjs";import{useEffect as u,useLayoutEffect as d,useMemo as f,useRef as p}from"react";import{Fragment as m,jsx as h,jsxs as g}from"react/jsx-runtime";function _(){if(typeof document>`u`)return 0;let e=document.querySelector(`[data-top-nav-root="true"]`);return e&&e.getBoundingClientRect().height||0}function v({currentChannelId:v,isPGC:y}){let b=r(),x=a(),{data:S}=i(o.GET_CONTENT_LIST(v),()=>e({channel_id:v})),{data:C}=i([o.FLOATING_BALL],()=>n()),w=f(()=>S?.data?.blocks||[],[S?.data?.blocks]),T=f(()=>{let e=w.findIndex(e=>e.type===4),t=e>=0?w[e]:null;return{index:e,block:t,blockId:t?.id||``}},[w]),{data:E}=i([o.GUESS_YOU_LIKE_USER_DATA,T.blockId],()=>t({block_id:T.blockId}),{enabled:!!T.blockId}),D=f(()=>{if(T.index<0)return w;let e=E?.data.block?.data?.users||[];return w.map((t,n)=>n===T.index?{...t,data:{...t.data||{},users:e}}:t)},[w,E,T.index]),[O,k]=s(`home-scroll-top-${v}`,0),A=p({restored:!1,lastScrollTop:O,key:v,rafId:null}),j=p(k),M=p(O);u(()=>{j.current=k},[k]),u(()=>{M.current=O},[O]),u(()=>{A.current.key!==v&&(A.current.restored=!1,A.current.lastScrollTop=O,M.current=O,A.current.key=v)},[v,O]);let N=D.length>0;d(()=>{if(!N||A.current.restored||O<=0)return;let e=_(),t=Math.max(0,O+e);window.requestAnimationFrame(()=>{window.scrollTo({top:t}),A.current.restored=!0,A.current.lastScrollTop=t})},[N,v,O]),u(()=>{let e=A.current;function t(){e.restored=!0,e.rafId!==null&&window.cancelAnimationFrame(e.rafId),e.rafId=window.requestAnimationFrame(()=>{e.rafId=null;let t=window.scrollY??document.documentElement.scrollTop??0,n=_(),r=Math.max(0,t-n);Math.abs(t-e.lastScrollTop)>1&&(e.lastScrollTop=t,j.current(r))})}return window.addEventListener(`scroll`,t,{passive:!0}),()=>{e.rafId!==null&&(window.cancelAnimationFrame(e.rafId),e.rafId=null),window.removeEventListener(`scroll`,t)}},[v]);let P=f(()=>l(D,y),[D,y]),F=f(()=>C?.data?.ball_infos?.find(e=>e.channel_id===v),[C?.data?.ball_infos,v]);return g(m,{children:[F&&h(c,{ad:{materialUrl:F.material_url||``,jumpUrl:F.jump_url||``,name:F.name||``},onClick:()=>{x(()=>{F?.jump_url&&b.push(F.jump_url)})}}),P.map(e=>{let t=e.component,n=e.data.block_id||`block-${e.data.title||``}`;return h(t,{data:e.data},n)})]})}export{v as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Button as e}from"../../ui/button.mjs";import{ensureGuestIdentity as t}from"../../../store/modules/user-store.mjs";import{Box as n}from"../../ui/box.mjs";import{Checkbox as r}from"../../ui/checkbox.mjs";import{Input as i}from"../../ui/input.mjs";import{Text as a}from"../../ui/text.mjs";import{CloseIcon as o}from"../../../assets/icons/close-icon.mjs";import{EyeIcon as s}from"../../../assets/icons/eye-icon.mjs";import{EyeOffIcon as c}from"../../../assets/icons/eye-off-icon.mjs";import{AgreementDialog as l}from"./agreement-dialog.mjs";import{authGradientTextStyle as u,authPanelBackgroundStyle as d}from"./auth-page-styles.mjs";import{useCallback as f,useMemo as p,useState as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{useTranslations as _}from"next-intl";function v(v){let y=_(`components.pages.login`),{onClose:b,onForgotPassword:x,onRegister:S,onSubmit:C,errorText:w}=v,[T,E]=m(``),[D,O]=m(``),[k,A]=m(!1),[j,M]=m(!1),[N,P]=m(!1),[F,I]=m(null),L=p(()=>T.trim().length>0&&D.length>0&&N&&!j,[T,D,N,j]),R=f(()=>{t(!0),S?.()},[S]);async function z(){if(L)try{M(!0),await C?.({email:T.trim(),password:D})}finally{M(!1)}}return g(n,{className:`min-h-screen w-full h-full bg-bg1 text-text1 flex flex-col`,style:d,children:[g(n,{className:`relative z-[1] mx-auto flex min-h-screen w-full max-w-[390px] flex-col justify-between px-[32px] pt-[calc(env(safe-area-inset-top)+152px)] pb-[calc(env(safe-area-inset-bottom)+40px)]`,children:[h(e,{type:`button`,variant:`ghost`,onClick:b,"aria-label":y(`loginClient.close`),className:`absolute top-[calc(env(safe-area-inset-top)+12px)] right-[24px] h-[32px] w-[32px] rounded-full border border-white/10 bg-white/5 !p-0 text-text2 backdrop-blur-[12px] hover:!bg-white/10 hover:text-text1`,children:h(o,{className:`h-[16px] w-[16px]`,"aria-hidden":`true`,focusable:`false`})}),g(n,{className:`flex w-full flex-col`,children:[h(a,{className:`text-[28px] leading-[32px] font-medium text-[#E6E6E6]`,children:y(`loginClient.title`)}),h(a,{className:`mt-[16px] text-[14px] leading-[24px] text-[#E6E6E6]`,children:y(`loginClient.subtitle`)}),g(`form`,{className:`mt-[48px]`,autoComplete:`off`,onSubmit:e=>{e.preventDefault(),z()},children:[h(n,{className:`flex h-[48px] items-center rounded-[8px] bg-white/10 px-[22px]`,children:h(i,{placeholder:y(`loginClient.emailPlaceholder`),type:`email`,name:`funhub-login-email`,value:T,onChange:e=>E(e.target.value),autoComplete:`off`,autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,"data-lpignore":`true`,"data-1p-ignore":`true`,"data-form-type":`other`,className:`!h-auto !rounded-none !bg-transparent !px-0 !py-0 !text-[14px] !leading-[20px] !text-text2 placeholder:!text-white/60`})}),g(n,{className:`mt-[24px] flex h-[48px] items-center justify-between rounded-[8px] bg-white/10 px-[16px]`,children:[h(i,{placeholder:y(`loginClient.passwordPlaceholder`),type:k?`text`:`password`,name:`funhub-login-password`,value:D,onChange:e=>O(e.target.value),autoComplete:`new-password`,autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,"data-lpignore":`true`,"data-1p-ignore":`true`,"data-form-type":`other`,className:`flex-1 !h-auto !rounded-none !bg-transparent !px-0 !py-0 !text-[14px] !leading-[20px] !text-text2 placeholder:!text-white/60`}),h(e,{type:`button`,variant:`ghost`,className:`ml-[12px] h-[24px] w-[24px] cursor-pointer select-none !p-0 text-white/50 hover:text-white/80`,"aria-label":y(k?`loginClient.hidePassword`:`loginClient.showPassword`),onClick:()=>A(e=>!e),children:h(k?s:c,{className:`h-[20px] w-[20px]`,"aria-hidden":`true`,focusable:`false`})})]}),!!w&&h(n,{className:`mt-[8px] text-[12px] leading-[16px] text-theme5`,children:w})]}),g(n,{className:`mt-[16px] flex items-center justify-between text-[14px] leading-[24px] text-[#9DA3AC]`,children:[g(a,{as:`span`,className:`whitespace-nowrap`,children:[y(`loginClient.noAccount`),h(e,{type:`button`,variant:`link`,onClick:R,className:`inline h-auto !p-0 text-[14px] font-normal leading-[24px] !no-underline hover:opacity-80 hover:!no-underline`,style:u,children:y(`loginClient.registerLink`)})]}),h(e,{type:`button`,variant:`link`,onClick:x,className:`inline h-auto !p-0 text-[14px] font-normal leading-[24px] text-[#9DA3AC] !no-underline hover:text-text1 hover:!no-underline`,children:y(`loginClient.forgotPassword`)})]})]}),g(n,{className:`flex w-full flex-col`,children:[g(n,{className:`flex items-center`,children:[h(r,{checked:N,onCheckedChange:e=>P(e===!0),"aria-label":y(`loginClient.agreeToTerms`),className:`mt-px size-[16px] border-white/60 bg-transparent data-[checked]:border-theme5 data-[checked]:bg-theme5 data-[checked]:text-white`}),g(a,{as:`span`,className:`ml-[8px] text-[12px] leading-[16px] text-[#9DA3AC]`,children:[y(`loginClient.agreeToTermsPrefix`),g(e,{type:`button`,variant:`link`,className:`inline h-auto !p-0 text-[12px] font-normal leading-[16px] !no-underline hover:opacity-80 hover:!no-underline`,style:u,onClick:()=>I(`terms`),children:[`《`,y(`loginClient.userAgreement`),`》`]}),y(`loginClient.and`),g(e,{type:`button`,variant:`link`,className:`inline h-auto !p-0 text-[12px] font-normal leading-[16px] !no-underline hover:opacity-80 hover:!no-underline`,style:u,onClick:()=>I(`privacy`),children:[`《`,y(`loginClient.privacyPolicy`),`》`]})]})]}),h(e,{type:`button`,onClick:z,disabled:!L,className:`mt-[16px] h-[48px] w-full !rounded-[8px] !border-0 !px-0 !py-0 text-[16px] font-normal leading-[24px] text-white disabled:opacity-100 active:opacity-90 ${L?``:`!text-white/60`}`,style:{background:L?`var(--gradient-action-button)`:`linear-gradient(90deg, rgba(151, 86, 227, 0.45) 0%, rgba(108, 67, 238, 0.45) 100%)`},children:y(j?`loginClient.loggingIn`:`loginClient.login`)})]})]}),h(l,{type:F,onClose:()=>I(null)})]})}export{v as LoginClient};
2
+ "use client";import{Button as e}from"../../ui/button.mjs";import{ensureGuestIdentity as t}from"../../../store/modules/user-store.mjs";import{Box as n}from"../../ui/box.mjs";import{Checkbox as r}from"../../ui/checkbox.mjs";import{Input as i}from"../../ui/input.mjs";import{Text as a}from"../../ui/text.mjs";import{CloseIcon as o}from"../../../assets/icons/close-icon.mjs";import{EyeIcon as s}from"../../../assets/icons/eye-icon.mjs";import{EyeOffIcon as c}from"../../../assets/icons/eye-off-icon.mjs";import{AgreementDialog as l}from"./agreement-dialog.mjs";import{useCallback as u,useMemo as d,useState as f}from"react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{useTranslations as h}from"next-intl";function g(g){let _=h(`components.pages.login`),{onClose:v,onForgotPassword:y,onRegister:b,onSubmit:x,errorText:S}=g,[C,w]=f(``),[T,E]=f(``),[D,O]=f(!1),[k,A]=f(!1),[j,M]=f(!1),[N,P]=f(null),F=d(()=>C.trim().length>0&&T.length>0&&j&&!k,[C,T,j,k]),I=u(()=>{t(!0),b?.()},[b]);async function L(){if(F)try{A(!0),await x?.({email:C.trim(),password:T})}finally{A(!1)}}return m(n,{className:`min-h-screen w-full h-full bg-bg1 text-text1 flex flex-col`,children:[m(n,{className:`flex justify-between items-center h-[60px] px-[16px]`,children:[p(e,{type:`button`,onClick:v,"aria-label":_(`loginClient.close`),className:`cursor-pointer bg-transparent !p-0 !px-0 !py-0`,children:p(o,{className:`w-[16px] h-[16px] text-text1/80`,"aria-hidden":`true`,focusable:`false`})}),p(e,{type:`button`,onClick:y,className:`text-[14px] text-text2 hover:text-text1 bg-transparent !p-0 !px-0 !py-0`,children:_(`loginClient.forgotPassword`)})]}),m(n,{className:`px-[24px] flex flex-1 flex-col mt-[15px]`,children:[m(n,{className:`flex flex-col`,children:[p(a,{className:`text-[24px] leading-[32px] font-bold`,children:_(`loginClient.title`)}),m(a,{className:`text-[14px] leading-[22px] mt-[12px] text-text1/80`,children:[_(`loginClient.noAccount`),`?`,p(e,{type:`button`,onClick:I,className:`cursor-pointer text-theme5 hover:opacity-90 bg-transparent !p-0 !px-0 !py-0`,children:_(`loginClient.registerLink`)})]})]}),m(`form`,{className:`mt-[38px] space-y-[16px]`,autoComplete:`off`,onSubmit:e=>{e.preventDefault(),L()},children:[p(n,{className:`flex items-center px-[28px] rounded-[50px] h-[66px] bg-line1 border border-line1`,children:p(i,{placeholder:_(`loginClient.emailPlaceholder`),type:`email`,name:`funhub-login-email`,value:C,onChange:e=>w(e.target.value),autoComplete:`off`,autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,"data-lpignore":`true`,"data-1p-ignore":`true`,"data-form-type":`other`,className:`!bg-transparent !px-0 !py-0 !rounded-none !text-text1 placeholder:!text-text3 leading-[26px] text-[18px]`})}),m(n,{className:`flex items-center justify-between px-[28px] rounded-[50px] h-[66px] bg-line1 border border-line1`,children:[p(i,{placeholder:_(`loginClient.passwordPlaceholder`),type:D?`text`:`password`,name:`funhub-login-password`,value:T,onChange:e=>E(e.target.value),autoComplete:`new-password`,autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,"data-lpignore":`true`,"data-1p-ignore":`true`,"data-form-type":`other`,className:`flex-1 !bg-transparent !px-0 !py-0 !rounded-none !text-text1 placeholder:!text-text3 leading-[26px] text-[18px]`}),p(e,{type:`button`,className:`ml-[10px] cursor-pointer select-none bg-transparent !p-0 !px-0 !py-0`,"aria-label":_(D?`loginClient.hidePassword`:`loginClient.showPassword`),onClick:()=>O(e=>!e),children:p(D?s:c,{className:`w-[20px] h-[20px] text-text3`,"aria-hidden":`true`,focusable:`false`})})]})]}),p(n,{className:`h-[22px] mt-[16px] mb-[22px] ml-[12px] text-[14px] text-theme5`,children:S}),m(n,{className:`mt-auto flex flex-col items-center w-full pb-[55px]`,children:[m(n,{className:`flex items-center justify-center gap-2 flex-wrap mb-[16px] w-full`,children:[p(r,{checked:j,onCheckedChange:e=>M(e===!0),"aria-label":_(`loginClient.agreeToTerms`),className:`shrink-0`}),m(a,{as:`span`,className:`text-[14px] text-text2`,children:[_(`loginClient.agreeToTermsPrefix`),m(e,{type:`button`,variant:`link`,className:`inline text-theme6 !p-0 !h-auto font-normal underline-offset-2 hover:underline bg-transparent`,onClick:()=>P(`terms`),children:[`《`,_(`loginClient.userAgreement`),`》`]}),_(`loginClient.and`),m(e,{type:`button`,variant:`link`,className:`inline text-theme6 !p-0 !h-auto font-normal underline-offset-2 hover:underline bg-transparent`,onClick:()=>P(`privacy`),children:[`《`,_(`loginClient.privacyPolicy`),`》`]})]})]}),p(e,{type:`button`,onClick:L,disabled:!F,className:`w-full h-[60px] !rounded-[30px] !text-[18px] font-bold leading-[26px] bg-theme6 disabled:bg-theme6/40 disabled:text-text3 active:opacity-90 !px-0 !py-0`,children:_(k?`loginClient.loggingIn`:`loginClient.login`)})]})]}),p(l,{type:N,onClose:()=>P(null)})]})}export{g as LoginClient};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Button as e}from"../../ui/button.mjs";import{pUserSendEmailCode as t}from"../../../service/generated/client.mjs";import{Box as n}from"../../ui/box.mjs";import{Checkbox as r}from"../../ui/checkbox.mjs";import{Input as i}from"../../ui/input.mjs";import{Text as a}from"../../ui/text.mjs";import{useLoginModalStore as o}from"../../../store/modules/login-modal-store.mjs";import{LeftArrowIcon as s}from"../../../assets/icons/left-arrow-icon.mjs";import{AgreementDialog as c}from"./agreement-dialog.mjs";import{authGradientTextStyle as l,authPanelBackgroundStyle as u}from"./auth-page-styles.mjs";import{useMemo as d,useState as f}from"react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{useTranslations as h}from"next-intl";function g(g){let _=h(`components.pages.login`),{onClose:v,onLogin:y,onVerify:b}=g,{setVerifyStep:x}=o(),[S,C]=f(``),[w,T]=f(!1),[E,D]=f(``),[O,k]=f(!1),[A,j]=f(null),M=d(()=>S.trim().length>0&&O&&!w,[S,O,w]);function N(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function P(e){C(e),E&&D(``)}async function F(){if(M)try{T(!0),D(``);let e=S.trim();if(!N(e)){D(_(`register.invalidEmail`));return}await t({email:e}),x(`register-verify`),b?.(e)}catch(e){D(e.message??_(`register.sendFailed`))}finally{T(!1)}}return m(n,{className:`min-h-screen w-full h-full bg-bg1 text-text1 flex flex-col`,style:u,children:[m(n,{className:`relative z-[1] mx-auto flex min-h-screen w-full max-w-[390px] flex-col justify-between px-[32px] pt-[calc(env(safe-area-inset-top)+152px)] pb-[calc(env(safe-area-inset-bottom)+40px)]`,children:[p(e,{type:`button`,variant:`ghost`,onClick:v,"aria-label":_(`register.back`),className:`absolute top-[calc(env(safe-area-inset-top)+12px)] left-[24px] h-[32px] w-[32px] rounded-full border border-white/10 bg-white/5 !p-0 text-text2 backdrop-blur-[12px] hover:!bg-white/10 hover:text-text1`,children:p(s,{className:`h-[16px] w-[16px]`,"aria-hidden":`true`,focusable:`false`})}),m(n,{className:`flex w-full flex-col`,children:[p(a,{className:`text-[28px] leading-[32px] font-medium text-[#E6E6E6]`,children:_(`loginClient.title`)}),p(a,{className:`mt-[16px] text-[14px] leading-[24px] text-[#E6E6E6]`,children:_(`loginClient.subtitle`)}),p(`form`,{className:`mt-[48px]`,autoComplete:`off`,onSubmit:e=>{e.preventDefault(),F()},children:p(n,{className:`flex h-[48px] items-center rounded-[8px] bg-white/10 px-[22px]`,children:p(i,{placeholder:_(`register.emailPlaceholder`),type:`email`,name:`funhub-register-email`,value:S,onChange:e=>P(e.target.value),autoComplete:`off`,autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,"data-lpignore":`true`,"data-1p-ignore":`true`,"data-form-type":`other`,className:`!h-auto !rounded-none !bg-transparent !px-0 !py-0 !text-[14px] !leading-[20px] !text-text2 placeholder:!text-white/60`})})}),!!E&&p(n,{className:`mt-[8px] min-h-[16px] text-[12px] leading-[16px] text-theme5`,children:E}),p(n,{className:`mt-[16px] flex items-center justify-between text-[14px] leading-[24px] text-[#9DA3AC]`,children:m(a,{as:`span`,className:`whitespace-nowrap`,children:[_(`register.hasAccount`),p(e,{type:`button`,variant:`link`,onClick:y,className:`inline h-auto !p-0 text-[14px] font-normal leading-[24px] !no-underline hover:opacity-80 hover:!no-underline`,style:l,children:_(`register.loginLink`)})]})})]}),m(n,{className:`flex w-full flex-col`,children:[m(n,{className:`flex items-center`,children:[p(r,{checked:O,onCheckedChange:e=>k(e===!0),"aria-label":_(`loginClient.agreeToTerms`),className:`mt-px size-[16px] border-white/60 bg-transparent data-[checked]:border-theme5 data-[checked]:bg-theme5 data-[checked]:text-white`}),m(a,{as:`span`,className:`ml-[8px] text-[12px] leading-[16px] text-[#9DA3AC]`,children:[_(`loginClient.agreeToTermsPrefix`),m(e,{type:`button`,variant:`link`,className:`inline h-auto !p-0 text-[12px] font-normal leading-[16px] !no-underline hover:opacity-80 hover:!no-underline`,style:l,onClick:()=>j(`terms`),children:[`《`,_(`loginClient.userAgreement`),`》`]}),_(`loginClient.and`),m(e,{type:`button`,variant:`link`,className:`inline h-auto !p-0 text-[12px] font-normal leading-[16px] !no-underline hover:opacity-80 hover:!no-underline`,style:l,onClick:()=>j(`privacy`),children:[`《`,_(`loginClient.privacyPolicy`),`》`]})]})]}),p(e,{type:`button`,onClick:F,disabled:!M,className:`mt-[16px] h-[48px] w-full !rounded-[8px] !border-0 !px-0 !py-0 text-[16px] font-normal leading-[24px] text-white disabled:opacity-100 active:opacity-90 ${M?``:`!text-white/60`}`,style:{background:M?`var(--gradient-action-button)`:`linear-gradient(90deg, rgba(151, 86, 227, 0.45) 0%, rgba(108, 67, 238, 0.45) 100%)`},children:_(w?`register.sending`:`register.getCode`)})]})]}),p(c,{type:A,onClose:()=>j(null)})]})}export{g as Register};
2
+ "use client";import{Button as e}from"../../ui/button.mjs";import{pUserSendEmailCode as t}from"../../../service/generated/client.mjs";import{Box as n}from"../../ui/box.mjs";import{Checkbox as r}from"../../ui/checkbox.mjs";import{Input as i}from"../../ui/input.mjs";import{Text as a}from"../../ui/text.mjs";import{useLoginModalStore as o}from"../../../store/modules/login-modal-store.mjs";import{LeftArrowIcon as s}from"../../../assets/icons/left-arrow-icon.mjs";import{AgreementDialog as c}from"./agreement-dialog.mjs";import{useMemo as l,useState as u}from"react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{useTranslations as p}from"next-intl";function m(m){let h=p(`components.pages.login`),{onClose:g,onLogin:_,onVerify:v}=m,{setVerifyStep:y}=o(),[b,x]=u(``),[S,C]=u(!1),[w,T]=u(``),[E,D]=u(!1),[O,k]=u(null),A=l(()=>b.trim().length>0&&E&&!S,[b,E,S]);function j(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function M(e){x(e),w&&T(``)}async function N(){if(A)try{C(!0),T(``);let e=b.trim();if(!j(e)){T(h(`register.invalidEmail`));return}await t({email:e}),y(`register-verify`),v?.(e)}catch(e){T(e.message??h(`register.sendFailed`))}finally{C(!1)}}return f(n,{className:`min-h-screen w-full h-full bg-bg1 text-text1 flex flex-col`,children:[f(n,{className:`flex justify-between items-center h-[60px] px-[16px]`,children:[d(e,{type:`button`,onClick:g,"aria-label":h(`register.back`),className:`cursor-pointer bg-transparent !p-0 !px-0 !py-0`,children:d(s,{className:`w-[16px] h-[16px] text-text1/80`,"aria-hidden":`true`,focusable:`false`})}),d(a,{className:`text-[14px] text-text2`})]}),f(n,{className:`px-[24px] flex flex-1 flex-col mt-[15px]`,children:[f(n,{className:`flex flex-col`,children:[d(a,{className:`text-[24px] leading-[32px] font-bold`,children:h(`register.title`)}),f(a,{className:`text-[14px] leading-[22px] mt-[12px] text-text1/80`,children:[h(`register.hasAccount`),`?`,d(e,{type:`button`,onClick:_,className:`cursor-pointer text-theme5 hover:opacity-90 bg-transparent !p-0 !px-0 !py-0`,children:h(`register.loginLink`)})]})]}),f(n,{className:`mt-[38px]`,children:[d(n,{className:`flex items-center px-[28px] rounded-[50px] h-[66px] bg-line1 border border-line1`,children:d(i,{placeholder:h(`register.emailPlaceholder`),type:`email`,name:`funhub-register-email`,value:b,onChange:e=>M(e.target.value),autoComplete:`off`,autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,"data-lpignore":`true`,"data-1p-ignore":`true`,"data-form-type":`other`,className:`!bg-transparent !px-0 !py-0 !rounded-none !text-text1 placeholder:!text-text3 leading-[26px] text-[18px]`})}),d(n,{className:`h-[22px] mt-[16px] mb-[22px] ml-[12px] text-[14px] text-theme5`,children:w})]}),f(n,{className:`mt-auto flex flex-col items-center w-full pb-[55px]`,children:[f(n,{className:`flex items-center justify-center gap-2 flex-wrap mb-[16px] w-full`,children:[d(r,{checked:E,onCheckedChange:e=>D(e===!0),"aria-label":h(`loginClient.agreeToTerms`),className:`shrink-0`}),f(a,{as:`span`,className:`text-[14px] text-text2`,children:[h(`loginClient.agreeToTermsPrefix`),f(e,{type:`button`,variant:`link`,className:`inline text-theme6 !p-0 !h-auto font-normal underline-offset-2 hover:underline bg-transparent`,onClick:()=>k(`terms`),children:[`《`,h(`loginClient.userAgreement`),`》`]}),h(`loginClient.and`),f(e,{type:`button`,variant:`link`,className:`inline text-theme6 !p-0 !h-auto font-normal underline-offset-2 hover:underline bg-transparent`,onClick:()=>k(`privacy`),children:[`《`,h(`loginClient.privacyPolicy`),`》`]})]})]}),d(e,{type:`button`,onClick:N,disabled:!A,className:`w-full h-[60px] !rounded-[30px] !text-[18px] font-bold leading-[26px] bg-theme6 disabled:bg-theme6/40 disabled:text-text3 active:opacity-90 !px-0 !py-0`,children:h(S?`register.sending`:`register.getCode`)})]})]}),d(c,{type:O,onClose:()=>k(null)})]})}export{m as Register};
@@ -1,2 +1,5 @@
1
1
 
2
- "use client";import{Button as e}from"../../ui/button.mjs";import{getCookie as t}from"../../../utils/common.mjs";import{pUserSendEmailCode as n,pUserSendResetPasswordEmailCode as r,pUserVerifyForgetEmailCode as i,pUserVerifyResetPasswordEmailCode as a}from"../../../service/generated/client.mjs";import{pUserRegisterByVerifyEmailCodeCompat as o}from"../../../service/register-by-verify-email-code.mjs";import{Box as s}from"../../ui/box.mjs";import{Text as c}from"../../ui/text.mjs";import{useLoginModalStore as l}from"../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as u}from"../../../hooks/query/use-query.mjs";import{useSetAuthFields as d,useUserId as f}from"../../../hooks/use-auth.mjs";import{LeftArrowIcon as p}from"../../../assets/icons/left-arrow-icon.mjs";import{authPanelBackgroundStyle as m}from"./auth-page-styles.mjs";import{useCallback as h,useEffect as g,useMemo as _,useRef as v,useState as y}from"react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{toast as S}from"sonner";import{useTranslations as C}from"next-intl";function w(e){let[t,n]=e.split(`@`);return!t||!n?e:`${t.slice(0,3)}***${t.length>3?t.slice(-1):``}@${n}`}function T(T){let E=C(`components.pages.login`),{email:D,onClose:O,onPassword:k}=T,{verifyStep:A,resolveLogin:j}=l(),[M,N]=y([,,,,,,].fill(``)),[P,F]=y(0),[I,L]=y(!1),[R,z]=y(60),[B,V]=y(!1),[H,U]=y(``),W=v(null),G=f(),K=d(),q=u(),J=_(()=>w(D),[D]),Y=h(async()=>{if(A===`reset-password`)return await a({user_id:G,email_code:M.join(``)});if(A===`forgot-password`)return await i({email:D,email_code:M.join(``)});if(A===`register-verify`){let e=await t(`guestUserId`);return await o({email:D,email_code:M.join(``),user_id:e})}throw Error(E(`verify.invalidCode`))},[A,M,G,D,E]),X=_(()=>M.every(e=>e!==``)&&!I,[M,I]);g(()=>{if(R<=0)return;let e=setInterval(()=>{z(e=>e-1)},1e3);return()=>clearInterval(e)},[R]),g(()=>{W.current?.focus()},[]);let Z=h(e=>{let t=e.target.value.replace(/\D/g,``);if(t.length===0)return;let n=[...M],r=t.split(``),i=P;for(let e of r)i<6&&(n[i]=e,i++);N(n),F(Math.min(i,5)),U(``)},[M,P]),Q=h(e=>{if(e.key===`Backspace`){e.preventDefault();let t=[...M];M[P]?t[P]=``:P>0&&(t[P-1]=``,F(P-1)),N(t),U(``)}else e.key===`ArrowLeft`&&P>0?F(P-1):e.key===`ArrowRight`&&P<5&&F(P+1)},[M,P]),$=h(e=>{F(e),W.current?.focus()},[]);async function ee(){if(!(R>0||B))try{V(!0),A===`reset-password`?await r({user_id:G}):await n({email:D}),z(60),U(``)}finally{V(!1)}}async function te(){if(X)try{L(!0);let e=await Y();if(A===`register-verify`){let t=e?.data;if(t?.user_id){K({token:t.token??``,expireTime:t.expire_time??0,userId:t.user_id}),S.success(E(`index.loginSuccess`)),q([`user-profile`,`mine`]),j(!0);return}}k?.(D)}catch(e){U(e.message??E(`verify.invalidCode`))}finally{L(!1)}}return b(s,{className:`min-h-screen w-full h-full bg-bg1 text-text1 flex flex-col`,style:m,children:x(s,{className:`relative z-[1] mx-auto min-h-screen w-full max-w-[390px] px-[32px] pt-[calc(env(safe-area-inset-top)+136px)] pb-[calc(env(safe-area-inset-bottom)+40px)]`,children:[b(e,{type:`button`,variant:`ghost`,onClick:O,"aria-label":E(`verify.back`),className:`absolute top-[calc(env(safe-area-inset-top)+12px)] left-[16px] h-[32px] w-[32px] rounded-full border border-white/10 bg-white/5 !p-0 text-text2 backdrop-blur-[12px] hover:!bg-white/10 hover:text-text1`,children:b(p,{className:`h-[16px] w-[16px]`,"aria-hidden":`true`,focusable:`false`})}),x(s,{className:`w-full`,children:[b(s,{children:b(c,{className:`text-[28px] leading-[32px] font-medium text-text1`,children:E(`verify.title`)})}),x(s,{className:`mt-[6px]`,children:[b(c,{className:`ml-[4px] text-[14px] leading-[28px] text-white/60`,children:E(`verify.sentTo`)}),b(c,{className:`mt-[6px] text-[14px] leading-[28px] text-white/60`,children:J})]}),x(`form`,{className:`mt-[44px]`,onSubmit:e=>{e.preventDefault(),te()},children:[x(s,{className:`relative h-[50px]`,children:[b(`input`,{ref:W,type:`text`,inputMode:`numeric`,pattern:`[0-9]*`,value:``,onChange:Z,onKeyDown:Q,className:`absolute inset-0 opacity-0 pointer-events-none h-full w-full border-none bg-transparent text-base outline-none`,autoComplete:`one-time-code`}),b(s,{className:`flex w-full items-center justify-between`,children:M.map((e,t)=>b(s,{onClick:()=>$(t),className:`flex h-[50px] w-[50px] cursor-pointer items-center justify-center rounded-[8px] bg-white/10 transition-all duration-200 ${t===P?`ring-1 ring-white/25 bg-white/[0.14]`:``}`,children:b(c,{className:`select-none text-[28px] leading-none font-medium text-text1`,children:e})},t))})]}),!!H&&b(s,{className:`mt-[12px] text-[12px] leading-[16px] text-theme5`,children:H}),b(e,{type:`submit`,disabled:!X,className:`mt-[44px] h-[48px] w-full !rounded-[8px] !border-0 !px-0 !py-0 text-[16px] font-normal leading-[24px] text-white disabled:opacity-100 active:opacity-90 ${X?``:`!text-white/60`}`,style:{background:X?`var(--gradient-action-button)`:`linear-gradient(90deg, rgba(151, 86, 227, 0.45) 0%, rgba(108, 67, 238, 0.45) 100%)`},children:E(I?`verify.verifying`:`verify.nextStep`)}),b(e,{type:`button`,variant:`ghost`,onClick:ee,disabled:R>0||B,className:`mt-[16px] flex w-full items-center justify-center bg-transparent !p-0 text-[15px] leading-[24px] text-[#9DA3AC] hover:bg-transparent hover:text-text1 disabled:cursor-not-allowed disabled:opacity-100`,children:R>0?E(`verify.resendCountdown`,{seconds:R}):E(`verify.resend`)})]})]})]})})}export{T as Verify};
2
+ "use client";import{Button as e}from"../../ui/button.mjs";import{getCookie as t}from"../../../utils/common.mjs";import{pUserSendEmailCode as n,pUserSendResetPasswordEmailCode as r,pUserVerifyForgetEmailCode as i,pUserVerifyResetPasswordEmailCode as a}from"../../../service/generated/client.mjs";import{pUserRegisterByVerifyEmailCodeCompat as o}from"../../../service/register-by-verify-email-code.mjs";import{Box as s}from"../../ui/box.mjs";import{Text as c}from"../../ui/text.mjs";import{useLoginModalStore as l}from"../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as u}from"../../../hooks/query/use-query.mjs";import{useSetAuthFields as d,useUserId as f}from"../../../hooks/use-auth.mjs";import{LeftArrowIcon as p}from"../../../assets/icons/left-arrow-icon.mjs";import{useCallback as m,useEffect as h,useMemo as g,useRef as _,useState as v}from"react";import{jsx as y,jsxs as b}from"react/jsx-runtime";import{toast as x}from"sonner";import{useTranslations as S}from"next-intl";function C(e){let[t,n]=e.split(`@`);return!t||!n?e:`${t.slice(0,3)}***${t.length>3?t.slice(-1):``}@${n}`}function w(w){let T=S(`components.pages.login`),{email:E,onClose:D,onPassword:O}=w,{verifyStep:k,resolveLogin:A}=l(),[j,M]=v([,,,,,,].fill(``)),[N,P]=v(0),[F,I]=v(!1),[L,R]=v(60),[z,B]=v(!1),[V,H]=v(``),U=_(null),W=f(),G=d(),K=u(),q=g(()=>C(E),[E]),J=m(async()=>{if(k===`reset-password`)return await a({user_id:W,email_code:j.join(``)});if(k===`forgot-password`)return await i({email:E,email_code:j.join(``)});if(k===`register-verify`){let e=await t(`guestUserId`);return await o({email:E,email_code:j.join(``),user_id:e})}throw Error(T(`verify.invalidCode`))},[k,j,W,E,T]),Y=g(()=>j.every(e=>e!==``)&&!F,[j,F]);h(()=>{if(L<=0)return;let e=setInterval(()=>{R(e=>e-1)},1e3);return()=>clearInterval(e)},[L]),h(()=>{U.current?.focus()},[]);let X=m(e=>{let t=e.target.value.replace(/\D/g,``);if(t.length===0)return;let n=[...j],r=t.split(``),i=N;for(let e of r)i<6&&(n[i]=e,i++);M(n),P(Math.min(i,5)),H(``)},[j,N]),Z=m(e=>{if(e.key===`Backspace`){e.preventDefault();let t=[...j];j[N]?t[N]=``:N>0&&(t[N-1]=``,P(N-1)),M(t),H(``)}else e.key===`ArrowLeft`&&N>0?P(N-1):e.key===`ArrowRight`&&N<5&&P(N+1)},[j,N]),Q=m(e=>{P(e),U.current?.focus()},[]);async function $(){if(!(L>0||z))try{B(!0),k===`reset-password`?await r({user_id:W}):await n({email:E}),R(60),H(``)}finally{B(!1)}}async function ee(){if(Y)try{I(!0);let e=await J();if(k===`register-verify`){let t=e?.data;if(t?.user_id){G({token:t.token??``,expireTime:t.expire_time??0,userId:t.user_id}),x.success(T(`index.loginSuccess`)),K([`user-profile`,`mine`]),A(!0);return}}O?.(E)}catch(e){H(e.message??T(`verify.invalidCode`))}finally{I(!1)}}return b(s,{className:`min-h-screen w-full h-full bg-bg1 text-text1 flex flex-col`,children:[b(s,{className:`flex justify-between items-center h-[60px] px-[16px]`,children:[y(e,{type:`button`,onClick:D,"aria-label":T(`verify.back`),className:`cursor-pointer bg-transparent !p-0 !px-0 !py-0`,children:y(p,{className:`w-[16px] h-[16px] text-text1/80`,"aria-hidden":`true`,focusable:`false`})}),y(c,{className:`text-[14px] text-text2`})]}),b(s,{className:`px-[24px] flex flex-col mt-[15px]`,children:[b(s,{className:`flex flex-col`,children:[y(c,{className:`text-[24px] leading-[32px] font-bold`,children:T(`verify.title`)}),b(s,{className:`mt-[12px] flex items-center`,children:[b(c,{className:`text-[14px] leading-[14px] text-text1/80`,children:[T(`verify.sentTo`),` `,q]}),y(e,{type:`button`,onClick:$,disabled:L>0||z,className:`ml-[8px] rounded-[19px] !px-[8px] !py-[8px] text-[12px] leading-[12px] cursor-pointer bg-line1 text-text1/80 disabled:cursor-not-allowed`,children:L>0?`${T(`verify.resend`)} (${L}s)`:T(`verify.resend`)})]})]}),b(`form`,{className:`mt-[38px]`,onSubmit:e=>{e.preventDefault(),ee()},children:[b(s,{className:`h-14 sm:h-16 md:h-20 relative`,children:[y(`input`,{ref:U,type:`text`,inputMode:`numeric`,pattern:`[0-9]*`,value:``,onChange:X,onKeyDown:Z,className:`absolute opacity-0 pointer-events-none w-full h-full border-none outline-none bg-transparent text-base caret-transparent`,autoComplete:`one-time-code`}),y(s,{className:`w-full flex justify-between items-center`,children:j.map((e,t)=>y(s,{onClick:()=>Q(t),className:`
3
+ w-14 h-14 sm:w-16 sm:h-16 md:w-20 md:h-20 rounded-xl border-2 flex items-center justify-center cursor-pointer transition-all duration-200
4
+ ${t===N?`border-theme3 bg-theme3`:`border-transparent bg-bg2`}
5
+ `,children:y(c,{className:`select-none font-semibold text-2xl sm:text-3xl leading-none text-text1`,children:e})},t))})]}),y(s,{className:`h-[22px] mt-[16px] mb-[22px] ml-[12px] text-[14px] text-theme5`,children:V}),y(e,{type:`submit`,disabled:!Y,className:`w-full h-[60px] !rounded-[30px] !text-[18px] font-bold leading-[26px] bg-theme6 disabled:bg-theme6/40 disabled:text-text3 active:opacity-90 !px-0 !py-0`,children:T(F?`verify.verifying`:`verify.nextStep`)})]})]})]})}export{w as Verify};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{gCommunityGetUserCollections as e}from"../../../../service/generated/client.mjs";import{useRouter as t}from"../../../../utils/use-compatible-router.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"../../../ui/legacy/button.mjs";import o from"../../../../assets/icons/publish/publish_collection.mjs";import{CollectionCard as s}from"./collection-card.mjs";import{CollectionPopup as c}from"./collection-popup.mjs";import{useMemo as l,useState as u}from"react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{useTranslations as p}from"next-intl";function m({active:m,setActive:h}){let g=p(`components.pages.publish.components`),[_,v]=u([]),[y,b]=u(!1),x=t(),{data:S=[]}=i([`publish`,`collection-list`,`preview`,3],async()=>(await e({page:1,page_size:3})).data?.data?.collections??[]);function C(e){v(t=>t.some(t=>t.collection_id===e.collection_id)?t:[e,...t]),h(e.collection_id??``)}let w=l(()=>{let e=new Set,t=[];for(let n of[..._,...S]){let r=n.collection_id??``;if(!(!r||e.has(r))&&(e.add(r),t.push(n),t.length>=3))break}return t},[_,S]);return f(n,{children:[f(n,{className:`flex justify-between items-center px-[16px] py-[12px]`,children:[d(r,{className:`text-[14px] text-text1`,children:g(`collection.syncToCollection`)}),d(a,{type:`button`,className:`!text-[12px] text-theme5 bg-[rgba(253,76,94,.1)] rounded-[20px] w-[64px] h-[24px] px-[8px] py-[4px]`,onClick:()=>b(!0),children:g(`collection.moreCollections`)})]}),f(n,{className:`flex gap-[8px] px-[16px] pb-[12px] overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:[w.map(e=>d(s,{item:e,active:e.collection_id===m,onClick:()=>h(e.collection_id===m?``:e.collection_id??``)},e.collection_id)),f(a,{className:`flex w-[226px] h-[70px] shrink-0 items-center gap-[12px] rounded-[8px] px-[12px] py-[10px] bg-bg1`,onClick:()=>x.push(`/collection/create?type=publish`),children:[d(o,{width:52,height:52}),d(n,{className:`flex flex-1 flex-col overflow-hidden gap-[4px]`,children:d(r,{className:`text-[14px] text-text2 text-left`,children:g(`collection.createCollection`)})})]})]}),d(c,{open:y,onOpenChange:b,onSelect:C})]})}export{m as Collection};
2
+ "use client";import{gCommunityGetUserCollections as e}from"../../../../service/generated/client.mjs";import{useRouter as t}from"../../../../utils/use-compatible-router.mjs";import{Box as n}from"../../../ui/box.mjs";import{Text as r}from"../../../ui/text.mjs";import i from"../../../ui/legacy/button.mjs";import{useRequest as a}from"../../../../hooks/query/use-query.mjs";import o from"../../../../assets/icons/publish/publish_collection.mjs";import{CollectionCard as s}from"./collection-card.mjs";import{CollectionPopup as c}from"./collection-popup.mjs";import{useMemo as l,useState as u}from"react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{useTranslations as p}from"next-intl";function m({active:m,setActive:h}){let g=p(`components.pages.publish.components`),[_,v]=u([]),[y,b]=u(!1),x=t(),{data:S=[]}=a([`publish`,`collection-list`,`preview`,3],async()=>(await e({page:1,page_size:3})).data?.data?.collections??[]);function C(e){v(t=>t.some(t=>t.collection_id===e.collection_id)?t:[e,...t]),h(e.collection_id??``)}let w=l(()=>{let e=new Set,t=[];for(let n of[..._,...S]){let r=n.collection_id??``;if(!(!r||e.has(r))&&(e.add(r),t.push(n),t.length>=3))break}return t},[_,S]);return f(n,{children:[f(n,{className:`flex justify-between items-center px-[16px] py-[12px]`,children:[d(r,{className:`text-[14px] text-text1`,children:g(`collection.syncToCollection`)}),d(i,{type:`button`,className:`!text-[12px] text-theme5 bg-[rgba(253,76,94,.1)] rounded-[20px] w-[64px] h-[24px] px-[8px] py-[4px]`,onClick:()=>b(!0),children:g(`collection.moreCollections`)})]}),f(n,{className:`flex gap-[8px] px-[16px] pb-[12px] overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:[w.map(e=>d(s,{item:e,active:e.collection_id===m,onClick:()=>h(e.collection_id===m?``:e.collection_id??``)},e.collection_id)),f(i,{className:`flex w-[226px] h-[70px] shrink-0 items-center gap-[12px] rounded-[8px] px-[12px] py-[10px] bg-bg1`,onClick:()=>x.push(`/collection/create?type=publish`),children:[d(o,{width:52,height:52}),d(n,{className:`flex flex-1 flex-col overflow-hidden gap-[4px]`,children:d(r,{className:`text-[14px] text-text2 text-left`,children:g(`collection.createCollection`)})})]})]}),d(c,{open:y,onOpenChange:b,onSelect:C})]})}export{m as Collection};