@funhub/platform 0.2.26 → 0.2.28

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 (123) hide show
  1. package/dist/biz.d.mts +4 -6
  2. package/dist/biz.mjs +1 -1
  3. package/dist/cli/init/create-client.mjs +1 -1
  4. package/dist/cli/init/shared/constants.mjs +1 -1
  5. package/dist/cli/init/shared/create-project.mjs +1 -1
  6. package/dist/cli/init/shared/prompts.mjs +1 -1
  7. package/dist/cli/init/shared/template.mjs +1 -1
  8. package/dist/cli.mjs +2 -2
  9. package/dist/components/biz/basics/fullscreen-feed/runtime/client.mjs +1 -1
  10. package/dist/components/biz/basics/logo/variants/basic-logo/runtime/client.mjs +1 -1
  11. package/dist/components/biz/business/advertisement/ad-match.d.mts +7 -0
  12. package/dist/components/biz/business/advertisement/ad-match.mjs +1 -1
  13. package/dist/components/biz/business/advertisement/popup-ad/client.mjs +2 -2
  14. package/dist/components/biz/business/advertisement/popup-ad/material.d.mts +3 -0
  15. package/dist/components/biz/business/advertisement/popup-ad/schema.d.mts +6 -0
  16. package/dist/components/biz/business/advertisement/popup-ad/schema.mjs +1 -1
  17. package/dist/components/biz/business/channel-list/client.mjs +1 -1
  18. package/dist/components/biz/business/detail/shared/detail-operate.mjs +1 -1
  19. package/dist/components/biz/business/detail/shared/runtime-context-provider.mjs +1 -1
  20. package/dist/components/biz/business/detail/shared/use-video-detail-webview-bridge.mjs +1 -1
  21. package/dist/components/biz/business/detail/shared/video-hero.mjs +1 -1
  22. package/dist/components/biz/business/detail/video-detail-actions/client.mjs +1 -1
  23. package/dist/components/biz/business/detail/video-detail-info/client.mjs +1 -1
  24. package/dist/components/biz/business/detail/video-detail-recommend/client.mjs +1 -1
  25. package/dist/components/biz/business/header-search/header-avatar-logo-search/client.mjs +1 -1
  26. package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
  27. package/dist/components/biz/business/home-recommend/shared/home-recommend-preview.mjs +1 -1
  28. package/dist/components/biz/business/image-text-recommend/client.mjs +1 -1
  29. package/dist/components/biz/business/index.d.mts +3 -5
  30. package/dist/components/biz/business/large-feature-grid/card-item.mjs +1 -1
  31. package/dist/components/biz/business/large-feature-grid/client.mjs +1 -1
  32. package/dist/components/biz/business/large-feature-grid/schema.mjs +1 -1
  33. package/dist/components/biz/business/marquee/client.mjs +1 -1
  34. package/dist/components/biz/business/profile/index.d.mts +3 -5
  35. package/dist/components/biz/business/profile/profile-header/client.d.mts +2 -3
  36. package/dist/components/biz/business/profile/profile-header/client.mjs +1 -1
  37. package/dist/components/biz/business/profile/profile-header/index.d.mts +2 -4
  38. package/dist/components/biz/business/profile/profile-header/material.d.mts +1 -44
  39. package/dist/components/biz/business/profile/profile-header/material.mjs +1 -1
  40. package/dist/components/biz/business/profile/profile-header/schema.d.mts +5 -13
  41. package/dist/components/biz/business/profile/profile-header/schema.mjs +1 -1
  42. package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +1 -1
  43. package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +1 -1
  44. package/dist/components/biz/business/profile/profile-main/client.d.mts +0 -1
  45. package/dist/components/biz/business/profile/profile-main/client.mjs +1 -1
  46. package/dist/components/biz/business/profile/profile-main/index.d.mts +2 -2
  47. package/dist/components/biz/business/profile/profile-main/material.d.mts +0 -3
  48. package/dist/components/biz/business/profile/profile-main/schema.d.mts +3 -7
  49. package/dist/components/biz/business/profile/profile-main/schema.mjs +1 -1
  50. package/dist/components/biz/business/profile/profile-main/shell.d.mts +0 -4
  51. package/dist/components/biz/business/profile/profile-main/shell.mjs +1 -1
  52. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.mjs +1 -1
  53. package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/video-waterfall.mjs +1 -1
  54. package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.mjs +1 -1
  55. package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.mjs +1 -1
  56. package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/client.mjs +1 -1
  57. package/dist/components/biz/business/profile/profile-main/variants.d.mts +3 -22
  58. package/dist/components/biz/business/profile/profile-main/variants.mjs +1 -1
  59. package/dist/components/biz/business/search-history/client.mjs +1 -1
  60. package/dist/components/biz/business/search-input/client.mjs +1 -1
  61. package/dist/components/biz/business/shortcut-grid/client.mjs +1 -1
  62. package/dist/components/biz/business/tab-bar/client.mjs +1 -1
  63. package/dist/components/biz/business/text-recommend/client.mjs +1 -1
  64. package/dist/components/common/analytics-init/page-lifecycle-tracker.mjs +1 -1
  65. package/dist/components/common/background-preview-modal/background-preview-modal.mjs +1 -1
  66. package/dist/components/common/list/waterfall-recommend/waterfall-recommend.mjs +1 -1
  67. package/dist/components/common/popup-video/index.mjs +1 -1
  68. package/dist/components/common/series-episodes/index.mjs +1 -1
  69. package/dist/components/common/tab-bar/index.mjs +1 -1
  70. package/dist/components/common/top-nav-bar/client.mjs +1 -1
  71. package/dist/components/common/video-player/style.module.mjs +4 -0
  72. package/dist/components/common/video-player/video-blind-ad-overlay.mjs +1 -1
  73. package/dist/components/common/video-player/video-preroll-ad-overlay.mjs +1 -1
  74. package/dist/components/pages/collection-add/page.mjs +1 -1
  75. package/dist/components/pages/edit/page.mjs +1 -1
  76. package/dist/components/pages/fullscreen-feed/page.mjs +1 -1
  77. package/dist/components/pages/post-detail/post-detail-client.mjs +1 -1
  78. package/dist/components/pages/search/hot-recommend.mjs +1 -1
  79. package/dist/components/pages/search/hot-search.mjs +1 -1
  80. package/dist/components/pages/search/page-client.mjs +1 -1
  81. package/dist/components/pages/search/search-result/search-all.mjs +1 -1
  82. package/dist/components/pages/search/search-result/search-video-info.mjs +1 -1
  83. package/dist/components/pages/search/top-header.mjs +1 -1
  84. package/dist/components/pages/search-result/page-client.mjs +1 -1
  85. package/dist/components/pages/search-result/search-all.mjs +1 -1
  86. package/dist/components/pages/search-result/search-tab.mjs +1 -1
  87. package/dist/components/pages/search-result/search-user.mjs +1 -1
  88. package/dist/components/pages/search-result/top-header.mjs +1 -1
  89. package/dist/components/pages/settings/_components/settings.mjs +1 -1
  90. package/dist/components/pages/video-detail/video-detail-client.mjs +1 -1
  91. package/dist/components/pages/video-list/video-list-client.mjs +1 -1
  92. package/dist/components/pages/video-list/video-list-recommend-item.mjs +1 -1
  93. package/dist/components/pages/video-list/video-list-skeleton.mjs +1 -1
  94. package/dist/components/ui/badge.d.mts +1 -1
  95. package/dist/components/ui/button.d.mts +2 -2
  96. package/dist/components/ui/empty.d.mts +1 -1
  97. package/dist/components/ui/item.d.mts +2 -2
  98. package/dist/components/ui/toggle.d.mts +1 -1
  99. package/dist/hooks/use-content-operate.mjs +1 -1
  100. package/dist/i18n/locales/en.mjs +1 -1
  101. package/dist/i18n/locales/zh-CN.mjs +1 -1
  102. package/dist/materials.d.mts +2 -2
  103. package/dist/materials.mjs +1 -1
  104. package/dist/service/advertisement.d.mts +4 -0
  105. package/dist/service/advertisement.mjs +1 -1
  106. package/dist/utils/common.mjs +1 -1
  107. package/dist/utils/http.mjs +1 -1
  108. package/dist/utils/tracking.d.mts +3 -11
  109. package/dist/utils/tracking.mjs +1 -1
  110. package/dist/utils/use-compatible-router.mjs +1 -1
  111. package/dist/utils.d.mts +2 -2
  112. package/dist/utils.mjs +1 -1
  113. package/package.json +1 -1
  114. package/theme.css +47 -0
  115. package/dist/components/biz/business/profile/profile-header/my-client.d.mts +0 -12
  116. package/dist/components/biz/business/profile/profile-header/my-client.mjs +0 -2
  117. package/dist/components/biz/business/profile/profile-header/my-profile-actions.mjs +0 -2
  118. package/dist/components/biz/business/profile/profile-header/my-profile-header.mjs +0 -2
  119. package/dist/components/biz/business/profile/profile-header/shared.mjs +0 -2
  120. package/dist/components/biz/business/profile/profile-header/visitor-client.d.mts +0 -12
  121. package/dist/components/biz/business/profile/profile-header/visitor-client.mjs +0 -2
  122. package/dist/components/biz/business/profile/profile-header/visitor-profile-actions.mjs +0 -2
  123. package/dist/components/biz/business/profile/profile-header/visitor-profile-header.mjs +0 -2
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{updateUrlParams as e}from"../../../utils/common.mjs";import t from"../../../utils/event-bus.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{gContentGetRecommendSearchList as r}from"../../../service/generated/client.mjs";import{useRouter as i}from"../../../utils/use-compatible-router.mjs";import{Box as a}from"../../ui/box.mjs";import{Popover as o,PopoverContent as s,PopoverTrigger as c}from"../../ui/popover.mjs";import{useRequest as l}from"../../../hooks/query/use-query.mjs";import{eventKey as u}from"../../../constants/event-key.mjs";import{useSearchHistory as d}from"../../../hooks/use-search-history.mjs";import{SearchHistoryClient as f}from"../../biz/business/search-history/client.mjs";import p from"../../../assets/icons/search/filter.mjs";import{trackSearchResultPageView as m}from"../search-result/tracking.mjs";import{trackSearchPageView as h,trackSearchTextRecommendClick as g}from"./tracking.mjs";import _ from"./hot-recommend.mjs";import v from"./hot-search.mjs";import{SEARCH_RESULT_SORT_OPTIONS as y}from"./search-result/shared.mjs";import ee from"./search-result/index.mjs";import te from"./top-header.mjs";import{memo as b,useEffect as x,useMemo as S,useRef as C,useState as w}from"react";import{usePathname as T,useSearchParams as E}from"next/navigation";import{jsx as D,jsxs as O}from"react/jsx-runtime";import{useTranslations as ne}from"next-intl";const k=[{labelKey:`tabs.all`,value:`all`},{labelKey:`tabs.video`,value:`video`},{labelKey:`tabs.user`,value:`user`}],A=b(({searchType:e,sort:t,tabList:n,onChange:r,onSortChange:i})=>{let[l,u]=w(!1);return O(a,{as:`nav`,className:`sticky top-[66px] z-40 flex items-center justify-between bg-[linear-gradient(180deg,rgba(6,3,21,0.98)_0%,rgba(6,3,21,0.88)_100%)] px-[16px] pb-[24px] pt-[23px] backdrop-blur-[16px]`,children:[D(a,{className:`flex items-center gap-[10px]`,children:n.map(t=>D(`button`,{type:`button`,className:`text-[16px] leading-[22px] transition-colors ${e===t.value?`font-medium text-white`:`font-normal text-white/80`}`,onClick:()=>{e!==t.value&&r(t.value)},children:t.label},t.value))}),O(o,{open:l,onOpenChange:u,children:[D(c,{"aria-label":`排序筛选`,className:`flex size-[24px] items-center justify-center text-white/70`,children:D(p,{className:`size-[20px]`})}),D(s,{side:`bottom`,align:`end`,sideOffset:8,className:`w-[132px] border border-white/10 bg-[#10071E]/95 p-[8px] backdrop-blur-[18px]`,children:D(a,{className:`flex flex-col gap-[4px]`,children:y.map(e=>D(`button`,{type:`button`,className:`rounded-[8px] px-[12px] py-[8px] text-left text-[14px] leading-[20px] ${e.value===t?`bg-white/10 text-white`:`text-white/70`}`,onClick:()=>{i(e.value),u(!1)},children:e.label},e.value))})})]})]})});A.displayName=`SearchResultTabs`;function j(){let o=ne(`components.pages.search.pageClient`),{userInfo:s}=n(),c=s?.user_id||`guest`,p=E(),b=T(),j=i(),M=p.get(`q`)?.toString()||``,{data:N,refetch:P}=l([`hotSearchKey`],()=>r({user_id:c})),F=S(()=>N?.data?.recommend_list??[],[N]),[I,L]=w(M),[R,z]=w(M),[B,V]=w(0),[H,U]=w(k[0].value),[W,G]=w(y[0].value),[K,q]=w(0),{history:J,addHistory:Y}=d({storageKey:c}),X=S(()=>k.map(e=>({value:e.value,label:o(e.labelKey)})),[o]),Z=S(()=>I.trim()===``?F.length>0||J.length>0||I.trim()===``:!1,[J.length,F.length,I]),Q=S(()=>I.trim()!==``&&!Z,[I,Z]);x(()=>(t.on(u.EXCHANGE_SEARCH_TYPE,U),()=>{t.off(u.EXCHANGE_SEARCH_TYPE,U)}),[]),x(()=>{h()},[]);let $=C(I);return $.current=I,x(()=>{Q&&m(H,$.current)},[Q,H]),O(a,{className:`min-h-screen w-full bg-[radial-gradient(79.9%_42.18%_at_50%_0%,rgba(71,20,126,0.95)_0%,rgba(14,6,32,0.98)_42%,#05010F_100%)] pb-[24px]`,children:[D(te,{setSearchInputVal:t=>{t!==I&&(L(t),e({q:t}))},initInputVal:R,initInputVersion:B,addSearchHistory:Y}),Z&&O(a,{className:`w-full pt-[8px]`,children:[J.length>0&&D(f,{title:o(`searchHistory`),rows:2,storageKey:c,onHistoryClick:e=>{z(e),V(e=>e+1);let t=new URLSearchParams(p.toString());t.set(`q`,e),j.push(`${b}?${t.toString()}`)}}),D(v,{initHotSearchKeywordList:F,onRefreshHotKey:async()=>(await P()).data??{code:0,message:``,data:{recommend_list:[]}},onClick:e=>{g(e.title||``,e.trace_id||``,e.trace_info||``),z(e.title||``),V(e=>e+1),Y(e.title)}})]}),D(_,{isShow:I.trim()===``}),Q&&O(a,{className:`relative mt-[8px] min-h-[calc(100vh-74px)] overflow-hidden rounded-t-[16px] bg-[linear-gradient(180deg,rgba(6,3,21,0.9)_19.905%,rgba(6,3,21,0)_100%)] backdrop-blur-[2px]`,children:[D(A,{searchType:H,sort:W,tabList:X,onChange:e=>{U(e)},onSortChange:e=>{G(e),q(e=>e+1)}}),D(ee,{inputVal:I,searchType:H,sort:W,refreshVersion:K},`${H}-${I}-${W}-${K}`)]})]})}export{j as default};
2
+ "use client";import{updateUrlParams as e}from"../../../utils/common.mjs";import t from"../../../utils/event-bus.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{gContentGetRecommendSearchList as r}from"../../../service/generated/client.mjs";import{useRouter as i}from"../../../utils/use-compatible-router.mjs";import{Box as a}from"../../ui/box.mjs";import{Popover as o,PopoverContent as s,PopoverTrigger as c}from"../../ui/popover.mjs";import{useRequest as l}from"../../../hooks/query/use-query.mjs";import{eventKey as u}from"../../../constants/event-key.mjs";import{useSearchHistory as d}from"../../../hooks/use-search-history.mjs";import{SearchHistoryClient as f}from"../../biz/business/search-history/client.mjs";import p from"../../../assets/icons/search/filter.mjs";import{trackSearchResultPageView as m}from"../search-result/tracking.mjs";import{trackSearchPageView as h,trackSearchTextRecommendClick as g}from"./tracking.mjs";import ee from"./hot-recommend.mjs";import _ from"./hot-search.mjs";import{SEARCH_RESULT_SORT_OPTIONS as v}from"./search-result/shared.mjs";import te from"./search-result/index.mjs";import ne from"./top-header.mjs";import{usePathname as y,useSearchParams as b}from"next/navigation";import{memo as x,useEffect as S,useMemo as C,useRef as w,useState as T}from"react";import{jsx as E,jsxs as D}from"react/jsx-runtime";import{useTranslations as O}from"next-intl";const k=[{labelKey:`tabs.all`,value:`all`},{labelKey:`tabs.video`,value:`video`},{labelKey:`tabs.user`,value:`user`}],A=x(({searchType:e,sort:t,tabList:n,onChange:r,onSortChange:i})=>{let[l,u]=T(!1);return D(a,{as:`nav`,className:`sticky top-[66px] z-40 flex items-center justify-between bg-[linear-gradient(180deg,rgba(6,3,21,0.98)_0%,rgba(6,3,21,0.88)_100%)] no-vw-x-16 pb-[24px] pt-[23px] backdrop-blur-[16px]`,children:[E(a,{className:`flex items-center gap-[10px]`,children:n.map(t=>E(`button`,{type:`button`,className:`text-[16px] leading-[22px] transition-colors ${e===t.value?`font-medium text-white`:`font-normal text-white/80`}`,onClick:()=>{e!==t.value&&r(t.value)},children:t.label},t.value))}),D(o,{open:l,onOpenChange:u,children:[E(c,{"aria-label":`排序筛选`,className:`flex size-[24px] items-center justify-center text-white/70`,children:E(p,{className:`size-[20px]`})}),E(s,{side:`bottom`,align:`end`,sideOffset:8,className:`w-[132px] border border-white/10 bg-[#10071E]/95 p-[8px] backdrop-blur-[18px]`,children:E(a,{className:`flex flex-col gap-[4px]`,children:v.map(e=>E(`button`,{type:`button`,className:`rounded-[8px] px-[12px] py-[8px] text-left text-[14px] leading-[20px] ${e.value===t?`bg-white/10 text-white`:`text-white/70`}`,onClick:()=>{i(e.value),u(!1)},children:e.label},e.value))})})]})]})});A.displayName=`SearchResultTabs`;function j(){let o=O(`components.pages.search.pageClient`),{userInfo:s}=n(),c=s?.user_id||`guest`,p=b(),x=y(),j=i(),M=p.get(`q`)?.toString()||``,{data:N,refetch:P}=l([`hotSearchKey`],()=>r({user_id:c})),F=C(()=>N?.data?.recommend_list??[],[N]),[I,L]=T(M),[R,z]=T(M),[B,V]=T(0),[H,U]=T(k[0].value),[W,G]=T(v[0].value),[K,q]=T(0),{history:J,addHistory:Y}=d({storageKey:c}),X=C(()=>k.map(e=>({value:e.value,label:o(e.labelKey)})),[o]),Z=C(()=>I.trim()===``?F.length>0||J.length>0||I.trim()===``:!1,[J.length,F.length,I]),Q=C(()=>I.trim()!==``&&!Z,[I,Z]);S(()=>(t.on(u.EXCHANGE_SEARCH_TYPE,U),()=>{t.off(u.EXCHANGE_SEARCH_TYPE,U)}),[]),S(()=>{h()},[]);let $=w(I);return $.current=I,S(()=>{Q&&m(H,$.current)},[Q,H]),D(a,{className:`min-h-screen w-full bg-[radial-gradient(79.9%_42.18%_at_50%_0%,rgba(71,20,126,0.95)_0%,rgba(14,6,32,0.98)_42%,#05010F_100%)] pb-[24px]`,children:[E(ne,{setSearchInputVal:t=>{t!==I&&(L(t),e({q:t}))},initInputVal:R,initInputVersion:B,addSearchHistory:Y}),Z&&D(a,{className:`w-full pt-[8px]`,children:[J.length>0&&E(f,{title:o(`searchHistory`),rows:2,storageKey:c,onHistoryClick:e=>{z(e),V(e=>e+1);let t=new URLSearchParams(p.toString());t.set(`q`,e),j.push(`${x}?${t.toString()}`)}}),E(_,{initHotSearchKeywordList:F,onRefreshHotKey:async()=>(await P()).data??{code:0,message:``,data:{recommend_list:[]}},onClick:e=>{g(e.title||``,e.trace_id||``,e.trace_info||``),z(e.title||``),V(e=>e+1),Y(e.title)}})]}),E(ee,{isShow:I.trim()===``}),Q&&D(a,{className:`relative mt-[8px] min-h-[calc(100vh-74px)] overflow-hidden rounded-t-[16px] bg-[linear-gradient(180deg,rgba(6,3,21,0.9)_19.905%,rgba(6,3,21,0)_100%)] backdrop-blur-[2px]`,children:[E(A,{searchType:H,sort:W,tabList:X,onChange:e=>{U(e)},onSortChange:e=>{G(e),q(e=>e+1)}}),E(te,{inputVal:I,searchType:H,sort:W,refreshVersion:K},`${H}-${I}-${W}-${K}`)]})]})}export{j as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import e from"../../../../utils/event-bus.mjs";import{gContentGetRecommendVideoList as t}from"../../../../service/generated/client.mjs";import{gContentGetRecommendVideoListKey as n}from"../../../../service/generated/tanstack.mjs";import{Box as r}from"../../../ui/box.mjs";import{EmptyState as i}from"../../../ui/empty.mjs";import{Text as a}from"../../../ui/text.mjs";import{Skeleton as o}from"../../../ui/skeleton.mjs";import{useRequest as s}from"../../../../hooks/query/use-query.mjs";import{eventKey as c}from"../../../../constants/event-key.mjs";import{SearchUserRowCard as l}from"./search-user.mjs";import{SearchVideoWaterfall as u}from"./search-video-info.mjs";import{useEffect as d,useMemo as f,useState as p}from"react";import{ChevronDown as m}from"lucide-react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{useTranslations as _}from"next-intl";function v(e,t){return JSON.stringify({type:1,keywords:e,sort:t})}function y(){return g(r,{className:`w-full`,children:[h(r,{className:`px-[16px]`,children:h(r,{className:`flex flex-col gap-[12px]`,children:Array.from({length:2}).map((e,t)=>g(r,{className:`flex h-[88px] items-center gap-[8px] rounded-[8px] bg-white/8 px-[12px] py-[8px]`,children:[h(o,{className:`size-[56px] rounded-full bg-white/10`}),g(r,{className:`min-w-0 flex-1`,children:[h(o,{className:`h-[20px] w-[96px] rounded-[4px] bg-white/10`}),h(o,{className:`mt-[6px] h-[20px] w-full rounded-[4px] bg-white/10`}),h(o,{className:`mt-[6px] h-[20px] w-[120px] rounded-[4px] bg-white/10`})]}),h(o,{className:`h-[24px] w-[64px] rounded-full bg-white/10`})]},`search-all-user-skeleton-${t}`))})}),g(r,{className:`mt-[32px] flex w-full gap-[15px] px-[16px]`,children:[g(r,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[h(o,{className:`h-[218px] w-full rounded-[8px] bg-white/8`}),h(o,{className:`h-[120px] w-full rounded-[8px] bg-white/8`})]}),g(r,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[h(o,{className:`h-[120px] w-full rounded-[8px] bg-white/8`}),h(o,{className:`h-[218px] w-full rounded-[8px] bg-white/8`})]})]})]})}function b({searchInputVal:o,sort:b,refreshVersion:x}){let S=_(`components.pages.search.searchResult`),[C,w]=p(!1),[T,E]=p({});d(()=>{w(!1),E({})},[x,o,b]);let D=f(()=>v(o,b),[o,b]),{data:O,isFetching:k,isLoading:A}=s(f(()=>[...n({data_type:2,extra_params:D,page:1,page_size:10}),x],[x,D]),async()=>(await t({data_type:2,extra_params:D,page:1,page_size:10})).data??{}),j=f(()=>O?.users?.list??[],[O]),M=f(()=>j.map(e=>{let t=String(e.user_id||``).trim();return!t||T[t]===void 0?e:{...e,is_following:T[t]}}),[T,j]),N=f(()=>O?.videos?.list??[],[O]),P=f(()=>C?M:M.slice(0,2),[C,M]),F=!C&&M.length>2,I=!!((A||k)&&M.length===0&&N.length===0),L=!k&&M.length===0&&N.length===0;return I?h(y,{}):L?h(i,{type:`nodata`,text:S(`searchAll.emptyResult`),className:`!pt-[72px]`}):g(r,{className:`w-full pb-[24px]`,children:[P.length>0&&g(r,{className:`px-[16px]`,children:[h(r,{className:`flex flex-col gap-[12px]`,children:P.map((e,t)=>h(l,{item:e,onFollowChange:t=>{let n=String(e.user_id||``).trim();n&&E(e=>({...e,[n]:t?1:0}))}},String(e.user_id??t)))}),F&&g(`button`,{type:`button`,className:`mt-[12px] flex h-[48px] w-full items-center justify-center gap-[4px] rounded-[8px] bg-[linear-gradient(180deg,#15041B_8.824%,#250561_113.72%)] text-white/70 backdrop-blur-[4px]`,onClick:()=>w(!0),children:[h(a,{className:`text-[14px] leading-[20px]`,children:`展开全部`}),h(m,{className:`size-[16px]`,strokeWidth:1.5})]})]}),N.length>0&&h(u,{list:N,title:`相似推荐`,onMoreClick:()=>{e.emit(c.EXCHANGE_SEARCH_TYPE,`video`)},sectionClassName:P.length>0?`mt-[32px] w-full`:`w-full`})]})}export{b as default};
2
+ "use client";import e from"../../../../utils/event-bus.mjs";import{gContentGetRecommendVideoList as t}from"../../../../service/generated/client.mjs";import{gContentGetRecommendVideoListKey as n}from"../../../../service/generated/tanstack.mjs";import{Box as r}from"../../../ui/box.mjs";import{EmptyState as i}from"../../../ui/empty.mjs";import{Text as a}from"../../../ui/text.mjs";import{Skeleton as o}from"../../../ui/skeleton.mjs";import{useRequest as s}from"../../../../hooks/query/use-query.mjs";import{eventKey as c}from"../../../../constants/event-key.mjs";import{SearchUserRowCard as l}from"./search-user.mjs";import{SearchVideoWaterfall as u}from"./search-video-info.mjs";import{useEffect as d,useMemo as f,useState as p}from"react";import{ChevronDown as m}from"lucide-react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{useTranslations as _}from"next-intl";function v(e,t){return JSON.stringify({type:1,keywords:e,sort:t})}function y(){return g(r,{className:`w-full`,children:[h(r,{className:`no-vw-x-16`,children:h(r,{className:`flex flex-col gap-[12px]`,children:Array.from({length:2}).map((e,t)=>g(r,{className:`flex h-[88px] items-center gap-[8px] rounded-[8px] bg-white/8 px-[12px] py-[8px]`,children:[h(o,{className:`size-[56px] rounded-full bg-white/10`}),g(r,{className:`min-w-0 flex-1`,children:[h(o,{className:`h-[20px] w-[96px] rounded-[4px] bg-white/10`}),h(o,{className:`mt-[6px] h-[20px] w-full rounded-[4px] bg-white/10`}),h(o,{className:`mt-[6px] h-[20px] w-[120px] rounded-[4px] bg-white/10`})]}),h(o,{className:`h-[24px] w-[64px] rounded-full bg-white/10`})]},`search-all-user-skeleton-${t}`))})}),g(r,{className:`mt-[32px] flex w-full gap-[15px] px-[16px]`,children:[g(r,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[h(o,{className:`h-[218px] w-full rounded-[8px] bg-white/8`}),h(o,{className:`h-[120px] w-full rounded-[8px] bg-white/8`})]}),g(r,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[h(o,{className:`h-[120px] w-full rounded-[8px] bg-white/8`}),h(o,{className:`h-[218px] w-full rounded-[8px] bg-white/8`})]})]})]})}function b({searchInputVal:o,sort:b,refreshVersion:x}){let S=_(`components.pages.search.searchResult`),[C,w]=p(!1),[T,E]=p({});d(()=>{w(!1),E({})},[x,o,b]);let D=f(()=>v(o,b),[o,b]),{data:O,isFetching:k,isLoading:A}=s(f(()=>[...n({data_type:2,extra_params:D,page:1,page_size:10}),x],[x,D]),async()=>(await t({data_type:2,extra_params:D,page:1,page_size:10})).data??{}),j=f(()=>O?.users?.list??[],[O]),M=f(()=>j.map(e=>{let t=String(e.user_id||``).trim();return!t||T[t]===void 0?e:{...e,is_following:T[t]}}),[T,j]),N=f(()=>O?.videos?.list??[],[O]),P=f(()=>C?M:M.slice(0,2),[C,M]),F=!C&&M.length>2,I=!!((A||k)&&M.length===0&&N.length===0),L=!k&&M.length===0&&N.length===0;return I?h(y,{}):L?h(i,{type:`nodata`,text:S(`searchAll.emptyResult`),className:`!pt-[72px]`}):g(r,{className:`w-full pb-[24px]`,children:[P.length>0&&g(r,{className:`no-vw-x-16`,children:[h(r,{className:`flex flex-col gap-[12px]`,children:P.map((e,t)=>h(l,{item:e,onFollowChange:t=>{let n=String(e.user_id||``).trim();n&&E(e=>({...e,[n]:t?1:0}))}},String(e.user_id??t)))}),F&&g(`button`,{type:`button`,className:`mt-[12px] flex h-[48px] w-full items-center justify-center gap-[4px] rounded-[8px] bg-[linear-gradient(180deg,#15041B_8.824%,#250561_113.72%)] text-white/70 backdrop-blur-[4px]`,onClick:()=>w(!0),children:[h(a,{className:`text-[14px] leading-[20px]`,children:`展开全部`}),h(m,{className:`size-[16px]`,strokeWidth:1.5})]})]}),N.length>0&&h(u,{list:N,title:`相似推荐`,onMoreClick:()=>{e.emit(c.EXCHANGE_SEARCH_TYPE,`video`)},sectionClassName:P.length>0?`mt-[32px] w-full`:`w-full`})]})}export{b as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{gContentGetRecommendVideoList as e}from"../../../../service/generated/client.mjs";import{Box as t}from"../../../ui/box.mjs";import{EmptyState as n}from"../../../ui/empty.mjs";import{InfiniteScroll as r}from"../../../ui/infinite-scroll.mjs";import{Skeleton as i}from"../../../ui/skeleton.mjs";import{usePaginated as a}from"../../../../hooks/query/use-query.mjs";import o from"../../../../assets/icons/common/right_arrow_thin.mjs";import{WaterfallRecommend as s}from"../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{trackSearchResultClick as c}from"../../search-result/tracking.mjs";import{buildSearchVideoWaterfallColumns as l}from"./shared.mjs";import{memo as u,useCallback as d,useMemo as f}from"react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{useTranslations as h}from"next-intl";function g(){return m(t,{className:`flex w-full gap-[15px] px-[16px]`,children:[m(t,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[p(i,{className:`h-[218px] w-full rounded-[8px] bg-white/8`}),p(i,{className:`h-[120px] w-full rounded-[8px] bg-white/8`}),p(i,{className:`h-[218px] w-full rounded-[8px] bg-white/8`})]}),m(t,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[p(i,{className:`h-[120px] w-full rounded-[8px] bg-white/8`}),p(i,{className:`h-[218px] w-full rounded-[8px] bg-white/8`}),p(i,{className:`h-[120px] w-full rounded-[8px] bg-white/8`})]})]})}const _=u(({list:e,title:t,onMoreClick:n,sectionClassName:r=`w-full`})=>{let i=f(()=>l(e),[e]),a=!!t;return e.length===0?null:p(s,{title:t||``,columns:i,sectionClassName:r,headerClassName:a?`mb-[16px] flex items-center justify-between px-[16px]`:`hidden`,titleClassName:`min-w-0 flex-1 text-[18px] leading-[24px] font-medium text-white`,moreLinkClassName:`ml-[8px] flex size-[24px] shrink-0 items-center justify-center text-white/50`,moreIcon:a&&n?p(o,{className:`size-[16px]`}):void 0,onMoreClick:n,containerClassName:`relative flex w-full gap-[15px] px-[16px]`,onItemClick:e=>{e.selectionId&&c(null,e.selectionId,`video`)}})});_.displayName=`SearchVideoWaterfall`;const v=u(({inputVal:i,sort:o,refreshVersion:s})=>{let c=h(`components.pages.search.searchResult`),l=d(async t=>await e({data_type:2,extra_params:JSON.stringify({type:3,keywords:i,sort:o}),page:t||1,page_size:20}),[i,o]),u=a({key:f(()=>[`search-result`,`video`,i,o,s],[i,s,o]),initialPageParam:1,async queryFn(e){return(await l(e))?.data?.videos??{has_more:!1,total:0,list:[]}},getNextPageParam(e,t){if(e.has_more)return t.length+1}}),v=f(()=>(u.data?.pages??[]).flatMap(e=>e.list??[]),[u.data?.pages]),y=!!((u.isPending||u.isFetching)&&v.length===0),b=d(async()=>{try{await u.fetchNextPage()}catch(e){console.error(`获取视频搜索结果失败`,e)}},[u]);return y?p(g,{}):v.length===0?p(n,{type:`nodata`,text:c(`searchVideoInfo.noRelevantContent`),className:`!pt-[72px]`}):m(t,{className:`w-full pb-[24px]`,children:[p(_,{list:v}),u.hasNextPage&&p(r,{loadMore:async e=>b(),hasMore:u.hasNextPage,className:`w-full`})]})});v.displayName=`SearchVideoInfo`;export{_ as SearchVideoWaterfall,v as default};
2
+ "use client";import{gContentGetRecommendVideoList as e}from"../../../../service/generated/client.mjs";import{Box as t}from"../../../ui/box.mjs";import{EmptyState as n}from"../../../ui/empty.mjs";import{InfiniteScroll as r}from"../../../ui/infinite-scroll.mjs";import{Skeleton as i}from"../../../ui/skeleton.mjs";import{usePaginated as a}from"../../../../hooks/query/use-query.mjs";import o from"../../../../assets/icons/common/right_arrow_thin.mjs";import{WaterfallRecommend as s}from"../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{trackSearchResultClick as c}from"../../search-result/tracking.mjs";import{buildSearchVideoWaterfallColumns as l}from"./shared.mjs";import{memo as u,useCallback as d,useMemo as f}from"react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{useTranslations as h}from"next-intl";function g(){return m(t,{className:`flex w-full gap-[15px] px-[16px]`,children:[m(t,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[p(i,{className:`h-[218px] w-full rounded-[8px] bg-white/8`}),p(i,{className:`h-[120px] w-full rounded-[8px] bg-white/8`}),p(i,{className:`h-[218px] w-full rounded-[8px] bg-white/8`})]}),m(t,{className:`flex min-w-0 flex-1 flex-col gap-[16px]`,children:[p(i,{className:`h-[120px] w-full rounded-[8px] bg-white/8`}),p(i,{className:`h-[218px] w-full rounded-[8px] bg-white/8`}),p(i,{className:`h-[120px] w-full rounded-[8px] bg-white/8`})]})]})}const _=u(({list:e,title:t,onMoreClick:n,sectionClassName:r=`w-full`})=>{let i=f(()=>l(e),[e]),a=!!t;return e.length===0?null:p(s,{title:t||``,columns:i,sectionClassName:r,headerClassName:a?`mb-[16px] flex items-center justify-between no-vw-x-16`:`hidden`,titleClassName:`min-w-0 flex-1 text-[18px] leading-[24px] font-medium text-white`,moreLinkClassName:`ml-[8px] flex size-[24px] shrink-0 items-center justify-center text-white/50`,moreIcon:a&&n?p(o,{className:`size-[16px]`}):void 0,onMoreClick:n,containerClassName:`relative flex w-full gap-[8px] no-vw-x-16`,onItemClick:e=>{e.selectionId&&c(null,e.selectionId,`video`)}})});_.displayName=`SearchVideoWaterfall`;const v=u(({inputVal:i,sort:o,refreshVersion:s})=>{let c=h(`components.pages.search.searchResult`),l=d(async t=>await e({data_type:2,extra_params:JSON.stringify({type:3,keywords:i,sort:o}),page:t||1,page_size:20}),[i,o]),u=a({key:f(()=>[`search-result`,`video`,i,o,s],[i,s,o]),initialPageParam:1,async queryFn(e){return(await l(e))?.data?.videos??{has_more:!1,total:0,list:[]}},getNextPageParam(e,t){if(e.has_more)return t.length+1}}),v=f(()=>(u.data?.pages??[]).flatMap(e=>e.list??[]),[u.data?.pages]),y=!!((u.isPending||u.isFetching)&&v.length===0),b=d(async()=>{try{await u.fetchNextPage()}catch(e){console.error(`获取视频搜索结果失败`,e)}},[u]);return y?p(g,{}):v.length===0?p(n,{type:`nodata`,text:c(`searchVideoInfo.noRelevantContent`),className:`!pt-[72px]`}):m(t,{className:`w-full pb-[24px]`,children:[p(_,{list:v}),u.hasNextPage&&p(r,{loadMore:async e=>b(),hasMore:u.hasNextPage,className:`w-full`})]})});v.displayName=`SearchVideoInfo`;export{_ as SearchVideoWaterfall,v as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useRouter as e}from"../../../utils/use-compatible-router.mjs";import{Input as t}from"../../ui/input.mjs";import{toast as n}from"../../../ui.mjs";import{useKeepAliveEffect as r,useKeepAliveState as i}from"../../common/keep-scroll-position/index.mjs";import{isPCEnv as a}from"../../../utils/tools.mjs";import{LeftArrowIcon as o}from"../../common/icons/left-arrow.mjs";import s from"../../../assets/icons/search.mjs";import c from"../../../assets/icons/clear.mjs";import{memo as l,useCallback as u}from"react";import{useSearchParams as d}from"next/navigation";import{jsx as f,jsxs as p}from"react/jsx-runtime";import{useTranslations as m}from"next-intl";function h(){}const g=l(({setSearchInputVal:l,initInputVal:g,initInputVersion:_,addSearchHistory:v,clearCallback:y=h})=>{let b=m(`components.pages.search`),x=e(),[S,C]=i(`search-input-val`,``),w=d().get(`q`),T=e=>{C(e.target.value)},E=u(e=>{l(e),v(e)},[v,l]);r(()=>{g&&(C(g),E(g))},[E,g,_,C],`search-init-input-effect`),r(()=>{w&&(C(w),E(w))},[E,C,w],`search-url-params-effect`);function D(){if(n.dismiss(),window.location.search.split(`from_code=`)[1]){x.push(`/`);return}x.back()}return f(`div`,{className:`app-top-nav relative h-[66px] w-full`,children:f(`header`,{className:`fixed left-0 right-0 top-0 z-50`,style:{willChange:`transform`,transform:`translateZ(0)`},children:p(`div`,{className:`mx-auto flex h-[66px] items-end gap-[8px] px-[16px] pb-[16px] pt-[16px]`,children:[f(`button`,{type:`button`,"aria-label":`返回`,className:`flex size-[24px] shrink-0 items-center justify-center text-white`,onClick:D,children:f(o,{className:`h-[16px] w-[16px]`})}),p(`div`,{className:`flex h-[34px] min-w-0 flex-1 items-center overflow-hidden rounded-[100px] border border-[#E62AFF]/90 bg-black/40 backdrop-blur-[2px]`,children:[p(`div`,{className:`relative flex h-full min-w-0 flex-1 items-center pl-[12px] pr-[10px]`,children:[f(`span`,{className:`pointer-events-none absolute inset-y-0 left-[12px] flex items-center justify-center`,children:f(s,{className:`h-[14px] w-[14px] text-white/60`})}),f(t,{placeholder:b(`topHeader.placeholder`),maxLength:20,value:S,className:`!h-[20px] !w-full !rounded-none !border-0 !bg-transparent !px-0 !pl-[22px] !pr-[18px] !py-0 !text-[14px] !leading-[20px] !text-white placeholder:!text-white/90`,onChange:T,onKeyDown:e=>{if(e.key===`Enter`){if(e.preventDefault(),!S.trim())return;E(S.trim())}}}),S&&f(`span`,{className:`absolute inset-y-0 right-0 flex items-center justify-center`,children:f(c,{className:`h-[15px] w-[15px] text-white/50`,onClick:()=>{a()||(C(``),l(``),y())}})})]}),f(`button`,{type:`button`,className:`mx-[2px] flex h-[30px] w-[56px] shrink-0 items-center justify-center rounded-[100px] bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-[14px] leading-[20px] text-white`,onClick:()=>{S.trim()&&E(S.trim())},children:b(`topHeader.search`)})]})]})})})});g.displayName=`SearchTopHeader`;export{g as default};
2
+ "use client";import{useRouter as e}from"../../../utils/use-compatible-router.mjs";import{Input as t}from"../../ui/input.mjs";import{toast as n}from"../../../ui.mjs";import{useKeepAliveEffect as r,useKeepAliveState as i}from"../../common/keep-scroll-position/index.mjs";import{isPCEnv as a}from"../../../utils/tools.mjs";import{LeftArrowIcon as o}from"../../common/icons/left-arrow.mjs";import s from"../../../assets/icons/search.mjs";import c from"../../../assets/icons/clear.mjs";import{useSearchParams as l}from"next/navigation";import{memo as u,useCallback as d}from"react";import{jsx as f,jsxs as p}from"react/jsx-runtime";import{useTranslations as m}from"next-intl";function h(){}const g=u(({setSearchInputVal:u,initInputVal:g,initInputVersion:_,addSearchHistory:v,clearCallback:y=h})=>{let b=m(`components.pages.search`),x=e(),[S,C]=i(`search-input-val`,``),w=l().get(`q`),T=e=>{C(e.target.value)},E=d(e=>{u(e),v(e)},[v,u]);r(()=>{g&&(C(g),E(g))},[E,g,_,C],`search-init-input-effect`),r(()=>{w&&(C(w),E(w))},[E,C,w],`search-url-params-effect`);function D(){if(n.dismiss(),window.location.search.split(`from_code=`)[1]){x.push(`/`);return}x.back()}return f(`div`,{className:`app-top-nav relative h-[66px] w-full`,children:f(`header`,{className:`fixed left-0 right-0 top-0 z-50`,style:{willChange:`transform`,transform:`translateZ(0)`},children:p(`div`,{className:`mx-auto flex h-[66px] items-center gap-[8px] no-vw-x-16 pb-[16px] pt-[16px]`,children:[f(`button`,{type:`button`,"aria-label":`返回`,className:`flex size-[24px] shrink-0 items-center justify-center text-white`,onClick:D,children:f(o,{className:`h-[16px] w-[16px]`})}),p(`div`,{className:`flex h-[34px] min-w-0 flex-1 items-center overflow-hidden rounded-[100px] border border-[#E62AFF]/90 bg-black/40 backdrop-blur-[2px]`,children:[p(`div`,{className:`relative flex h-full min-w-0 flex-1 items-center pl-[12px] pr-[10px]`,children:[f(`span`,{className:`pointer-events-none absolute inset-y-0 left-[12px] flex items-center justify-center`,children:f(s,{className:`h-[14px] w-[14px] text-white/60`})}),f(t,{placeholder:b(`topHeader.placeholder`),maxLength:20,value:S,className:`!h-[20px] !w-full !rounded-none !border-0 !bg-transparent !px-0 !pl-[22px] !pr-[18px] !py-0 !text-[14px] !leading-[20px] !text-white placeholder:!text-white/90`,onChange:T,onKeyDown:e=>{if(e.key===`Enter`){if(e.preventDefault(),!S.trim())return;E(S.trim())}}}),S&&f(`span`,{className:`absolute inset-y-0 right-0 flex items-center justify-center`,children:f(c,{className:`h-[15px] w-[15px] text-white/50`,onClick:()=>{a()||(C(``),u(``),y())}})})]}),f(`button`,{type:`button`,className:`mx-[2px] flex h-[30px] w-[56px] shrink-0 items-center justify-center rounded-[100px] bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-[14px] leading-[20px] text-white`,onClick:()=>{S.trim()&&E(S.trim())},children:b(`topHeader.search`)})]})]})})})});g.displayName=`SearchTopHeader`;export{g as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{updateUrlParams as e}from"../../../utils/common.mjs";import t from"../../../utils/event-bus.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{useRouter as r}from"../../../utils/use-compatible-router.mjs";import{Box as i}from"../../ui/box.mjs";import{eventKey as a}from"../../../constants/event-key.mjs";import{useSearchHistory as o}from"../../../hooks/use-search-history.mjs";import{trackSearchResultPageView as s}from"./tracking.mjs";import{SEARCH_RESULT_SORT_OPTIONS as c}from"./shared.mjs";import l from"./search-user.mjs";import u from"./search-video-info.mjs";import d from"./search-all.mjs";import{SearchTab as f}from"./search-tab.mjs";import p from"./top-header.mjs";import{useEffect as m,useMemo as h,useState as g}from"react";import{useSearchParams as _}from"next/navigation";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as b}from"next-intl";const x=[{labelKey:`tabs.all`,value:`all`},{labelKey:`tabs.video`,value:`video`},{labelKey:`tabs.user`,value:`user`}];function S(){r();let S=b(`components.pages.search.pageClient`),{userInfo:C}=n(),w=C?.user_id||`guest`,T=_().get(`q`)?.toString()||``,[E,D]=g(T),[O,k]=g(0);m(()=>{D(T),k(e=>e+1)},[T]);let[A,j]=g(x[0].value),[M,N]=g(c[0].value),[P,F]=g(0),{addHistory:I}=o({storageKey:w}),L=h(()=>x.map(e=>({value:e.value,label:S(e.labelKey)})),[S]),R=h(()=>E.trim()!==``,[E]);return m(()=>(t.on(a.EXCHANGE_SEARCH_TYPE,j),()=>{t.off(a.EXCHANGE_SEARCH_TYPE,j)}),[j]),m(()=>{E.trim()&&s(A,E)},[A,E]),y(i,{className:`flex h-dvh w-full flex-col`,children:[v(i,{className:`shrink-0`,children:v(p,{setSearchInputVal:t=>{t!==E&&(D(t),e({q:t}))},initInputVal:T,initInputVersion:O,addSearchHistory:I})}),v(i,{className:`mt-[16px] min-h-0 flex-1 overflow-hidden rounded-t-[16px]`,children:R&&y(i,{className:`flex h-full flex-col bg-[linear-gradient(180deg,rgba(6,3,21,0.9)_0%,rgba(6,3,21,0)_100%)] backdrop-blur-[2px]`,children:[v(f,{searchType:A,tabList:L,onChange:e=>{j(e)},sort:M,onSortChange:e=>{N(e),F(e=>e+1)}}),y(`div`,{className:`min-h-0 flex-1 overflow-y-auto pb-[24px]`,children:[A===`user`&&v(l,{inputVal:E,sort:M,refreshVersion:P}),A===`all`&&v(d,{searchInputVal:E,sort:M,refreshVersion:P}),A===`video`&&v(u,{inputVal:E,sort:M,refreshVersion:P})]})]})})]})}export{S as default};
2
+ "use client";import{updateUrlParams as e}from"../../../utils/common.mjs";import t from"../../../utils/event-bus.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{useRouter as r}from"../../../utils/use-compatible-router.mjs";import{Box as i}from"../../ui/box.mjs";import{eventKey as a}from"../../../constants/event-key.mjs";import{useSearchHistory as o}from"../../../hooks/use-search-history.mjs";import{trackSearchResultPageView as s}from"./tracking.mjs";import{SEARCH_RESULT_SORT_OPTIONS as c}from"./shared.mjs";import l from"./search-user.mjs";import u from"./search-video-info.mjs";import d from"./search-all.mjs";import{SearchTab as f}from"./search-tab.mjs";import p from"./top-header.mjs";import{useSearchParams as m}from"next/navigation";import{useEffect as h,useMemo as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as b}from"next-intl";const x=[{labelKey:`tabs.all`,value:`all`},{labelKey:`tabs.video`,value:`video`},{labelKey:`tabs.user`,value:`user`}];function S(){r();let S=b(`components.pages.search.pageClient`),{userInfo:C}=n(),w=C?.user_id||`guest`,T=m().get(`q`)?.toString()||``,[E,D]=_(T),[O,k]=_(0);h(()=>{D(T),k(e=>e+1)},[T]);let[A,j]=_(x[0].value),[M,N]=_(c[0].value),[P,F]=_(0),{addHistory:I}=o({storageKey:w}),L=g(()=>x.map(e=>({value:e.value,label:S(e.labelKey)})),[S]),R=g(()=>E.trim()!==``,[E]);return h(()=>(t.on(a.EXCHANGE_SEARCH_TYPE,j),()=>{t.off(a.EXCHANGE_SEARCH_TYPE,j)}),[j]),h(()=>{E.trim()&&s(A,E)},[A,E]),y(i,{className:`flex h-dvh w-full flex-col`,children:[v(i,{className:`shrink-0`,children:v(p,{setSearchInputVal:t=>{t!==E&&(D(t),e({q:t}))},initInputVal:T,initInputVersion:O,addSearchHistory:I})}),v(i,{className:`mt-[16px] min-h-0 flex-1 overflow-hidden rounded-t-[16px]`,children:R&&y(i,{className:`flex h-full flex-col bg-[linear-gradient(180deg,rgba(6,3,21,0.9)_0%,rgba(6,3,21,0)_100%)] backdrop-blur-[2px]`,children:[v(f,{searchType:A,tabList:L,onChange:e=>{j(e)},sort:M,onSortChange:e=>{N(e),F(e=>e+1)}}),y(`div`,{className:`min-h-0 flex-1 overflow-y-auto pb-[24px]`,children:[A===`user`&&v(l,{inputVal:E,sort:M,refreshVersion:P}),A===`all`&&v(d,{searchInputVal:E,sort:M,refreshVersion:P}),A===`video`&&v(u,{inputVal:E,sort:M,refreshVersion:P})]})]})})]})}export{S as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import e from"../../../utils/event-bus.mjs";import{gContentGetRecommendVideoList as t}from"../../../service/generated/client.mjs";import{gContentGetRecommendVideoListKey as n}from"../../../service/generated/tanstack.mjs";import{Box as r}from"../../ui/box.mjs";import{Text as i}from"../../ui/text.mjs";import{Skeleton as a}from"../../ui/skeleton.mjs";import{useRequest as o}from"../../../hooks/query/use-query.mjs";import{eventKey as s}from"../../../constants/event-key.mjs";import{SearchResultEmpty as c}from"./search-empty.mjs";import{SearchUserRowCard as l}from"./search-user.mjs";import{SearchVideoWaterfall as u}from"./search-video-info.mjs";import{useEffect as d,useMemo as f,useState as p}from"react";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{useTranslations as g}from"next-intl";function _({className:e}){return m(`svg`,{viewBox:`0 0 12.728 7.778`,fill:`currentColor`,"aria-hidden":!0,className:e,children:m(`path`,{d:`M6.36391 4.94972L11.3137 0L12.7279 1.41421L6.36391 7.77822L0 1.41421L1.41421 0L6.36391 4.94972Z`})})}function v(e,t){return JSON.stringify({type:1,keywords:e,sort:t})}function y(){return h(r,{className:`w-full`,children:[m(r,{className:`px-[16px]`,children:h(r,{className:`overflow-hidden rounded-[8px] bg-white/8`,children:[m(r,{className:`flex flex-col gap-[16px] px-[15px] pt-[16px]`,children:Array.from({length:3}).map((e,t)=>h(r,{className:`flex h-[66px] items-center gap-[8px]`,children:[m(a,{className:`size-[56px] rounded-full bg-white/10`}),h(r,{className:`min-w-0 flex-1`,children:[m(a,{className:`h-[20px] w-[96px] rounded-[4px] bg-white/10`}),m(a,{className:`mt-[2px] h-[20px] w-full rounded-[4px] bg-white/10`}),m(a,{className:`mt-[2px] h-[20px] w-[120px] rounded-[4px] bg-white/10`})]}),m(a,{className:`h-[24px] w-[64px] rounded-full bg-white/10`})]},`search-all-user-skeleton-${t}`))}),m(r,{className:`flex h-[48px] items-center justify-center`,children:m(a,{className:`h-[20px] w-[88px] rounded-[4px] bg-white/10`})})]})}),h(r,{className:`mt-[24px] flex w-full justify-between gap-[16px] px-[16px]`,children:[h(r,{className:`flex w-[171px] shrink-0 flex-col gap-[16px]`,children:[m(a,{className:`h-[218px] w-[171px] rounded-[8px] bg-white/8`}),m(a,{className:`h-[120px] w-[171px] rounded-[8px] bg-white/8`})]}),h(r,{className:`flex w-[171px] shrink-0 flex-col gap-[16px]`,children:[m(a,{className:`h-[120px] w-[171px] rounded-[8px] bg-white/8`}),m(a,{className:`h-[218px] w-[171px] rounded-[8px] bg-white/8`})]})]})]})}function b({searchInputVal:a,sort:b,refreshVersion:x}){let S=g(`components.pages.search.searchResult`),[C,w]=p(!1),[T,E]=p({});d(()=>{w(!1),E({})},[x,a,b]);let D=f(()=>v(a,b),[a,b]),{data:O,isFetching:k,isLoading:A}=o(f(()=>[...n({data_type:2,extra_params:D,page:1,page_size:10}),x],[x,D]),async()=>(await t({data_type:2,extra_params:D,page:1,page_size:10})).data??{}),j=f(()=>O?.users?.list??[],[O]),M=f(()=>j.map(e=>{let t=String(e.user_id||``).trim();return!t||T[t]===void 0?e:{...e,is_following:T[t]}}),[T,j]),N=f(()=>O?.videos?.list??[],[O]),P=f(()=>C?M:M.slice(0,3),[C,M]),F=!C&&M.length>3,I=!!((A||k)&&M.length===0&&N.length===0),L=!k&&M.length===0&&N.length===0;return I?m(y,{}):L?m(c,{text:S(`searchAll.emptyResult`)}):h(r,{className:`w-full pb-[24px]`,children:[P.length>0&&m(r,{className:`px-[16px]`,children:h(r,{className:`overflow-hidden rounded-[8px] bg-white/10`,children:[m(r,{className:`flex flex-col gap-[16px] px-[15px] pt-[16px] ${F?``:`pb-[16px]`}`.trim(),children:P.map((e,t)=>m(l,{item:e,onFollowChange:t=>{let n=String(e.user_id||``).trim();n&&E(e=>({...e,[n]:t?1:0}))}},String(e.user_id??t)))}),F&&h(`button`,{type:`button`,className:`flex h-[48px] w-full items-center justify-center gap-[4px] rounded-bl-[8px] rounded-br-[8px] text-[rgba(255,255,255,0.7)]`,onClick:()=>w(!0),children:[m(i,{className:`text-[14px] leading-[20px] font-normal`,children:`展开全部`}),m(r,{className:`flex size-[24px] items-center justify-center`,children:m(_,{className:`h-[7.778px] w-[12.728px] text-[rgba(255,255,255,0.7)]`})})]})]})}),N.length>0&&m(u,{list:N,title:`相似推荐`,onMoreClick:()=>{e.emit(s.EXCHANGE_SEARCH_TYPE,`video`)},sectionClassName:P.length>0?`mt-[24px] w-full`:`w-full`})]})}export{b as default};
2
+ "use client";import e from"../../../utils/event-bus.mjs";import{gContentGetRecommendVideoList as t}from"../../../service/generated/client.mjs";import{gContentGetRecommendVideoListKey as n}from"../../../service/generated/tanstack.mjs";import{Box as r}from"../../ui/box.mjs";import{Text as i}from"../../ui/text.mjs";import{Skeleton as a}from"../../ui/skeleton.mjs";import{useRequest as o}from"../../../hooks/query/use-query.mjs";import{eventKey as s}from"../../../constants/event-key.mjs";import{SearchResultEmpty as c}from"./search-empty.mjs";import{SearchUserRowCard as l}from"./search-user.mjs";import{SearchVideoWaterfall as u}from"./search-video-info.mjs";import{useEffect as d,useMemo as f,useState as p}from"react";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{useTranslations as g}from"next-intl";function _({className:e}){return m(`svg`,{viewBox:`0 0 12.728 7.778`,fill:`currentColor`,"aria-hidden":!0,className:e,children:m(`path`,{d:`M6.36391 4.94972L11.3137 0L12.7279 1.41421L6.36391 7.77822L0 1.41421L1.41421 0L6.36391 4.94972Z`})})}function v(e,t){return JSON.stringify({type:1,keywords:e,sort:t})}function y(){return h(r,{className:`w-full`,children:[m(r,{className:`px-[16px]`,children:h(r,{className:`overflow-hidden rounded-[8px] bg-white/8`,children:[m(r,{className:`flex flex-col gap-[16px] px-[15px] pt-[16px]`,children:Array.from({length:3}).map((e,t)=>h(r,{className:`flex h-[66px] items-center gap-[8px]`,children:[m(a,{className:`size-[56px] rounded-full bg-white/10`}),h(r,{className:`min-w-0 flex-1`,children:[m(a,{className:`h-[20px] w-[96px] rounded-[4px] bg-white/10`}),m(a,{className:`mt-[2px] h-[20px] w-full rounded-[4px] bg-white/10`}),m(a,{className:`mt-[2px] h-[20px] w-[120px] rounded-[4px] bg-white/10`})]}),m(a,{className:`h-[24px] w-[64px] rounded-full bg-white/10`})]},`search-all-user-skeleton-${t}`))}),m(r,{className:`flex h-[48px] items-center justify-center`,children:m(a,{className:`h-[20px] w-[88px] rounded-[4px] bg-white/10`})})]})}),h(r,{className:`mt-[24px] flex w-full justify-between gap-[16px] px-[16px]`,children:[h(r,{className:`flex w-[171px] shrink-0 flex-col gap-[16px]`,children:[m(a,{className:`h-[218px] w-[171px] rounded-[8px] bg-white/8`}),m(a,{className:`h-[120px] w-[171px] rounded-[8px] bg-white/8`})]}),h(r,{className:`flex w-[171px] shrink-0 flex-col gap-[16px]`,children:[m(a,{className:`h-[120px] w-[171px] rounded-[8px] bg-white/8`}),m(a,{className:`h-[218px] w-[171px] rounded-[8px] bg-white/8`})]})]})]})}function b({searchInputVal:a,sort:b,refreshVersion:x}){let S=g(`components.pages.search.searchResult`),[C,w]=p(!1),[T,E]=p({});d(()=>{w(!1),E({})},[x,a,b]);let D=f(()=>v(a,b),[a,b]),{data:O,isFetching:k,isLoading:A}=o(f(()=>[...n({data_type:2,extra_params:D,page:1,page_size:10}),x],[x,D]),async()=>(await t({data_type:2,extra_params:D,page:1,page_size:10})).data??{}),j=f(()=>O?.users?.list??[],[O]),M=f(()=>j.map(e=>{let t=String(e.user_id||``).trim();return!t||T[t]===void 0?e:{...e,is_following:T[t]}}),[T,j]),N=f(()=>O?.videos?.list??[],[O]),P=f(()=>C?M:M.slice(0,3),[C,M]),F=!C&&M.length>3,I=!!((A||k)&&M.length===0&&N.length===0),L=!k&&M.length===0&&N.length===0;return I?m(y,{}):L?m(c,{text:S(`searchAll.emptyResult`)}):h(r,{className:`w-full pb-[24px]`,children:[P.length>0&&m(r,{className:`no-vw-x-16`,children:h(r,{className:`overflow-hidden rounded-[8px] bg-white/10`,children:[m(r,{className:`flex flex-col gap-[16px] px-[15px] pt-[16px] ${F?``:`pb-[16px]`}`.trim(),children:P.map((e,t)=>m(l,{item:e,onFollowChange:t=>{let n=String(e.user_id||``).trim();n&&E(e=>({...e,[n]:t?1:0}))}},String(e.user_id??t)))}),F&&h(`button`,{type:`button`,className:`flex h-[48px] w-full items-center justify-center gap-[4px] rounded-bl-[8px] rounded-br-[8px] text-[rgba(255,255,255,0.7)]`,onClick:()=>w(!0),children:[m(i,{className:`text-[14px] leading-[20px] font-normal`,children:`展开全部`}),m(r,{className:`flex size-[24px] items-center justify-center`,children:m(_,{className:`h-[7.778px] w-[12.728px] text-[rgba(255,255,255,0.7)]`})})]})]})}),N.length>0&&m(u,{list:N,title:`相似推荐`,onMoreClick:()=>{e.emit(s.EXCHANGE_SEARCH_TYPE,`video`)},sectionClassName:P.length>0?`mt-[24px] w-full`:`w-full`})]})}export{b as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../ui/box.mjs";import{Popover as t,PopoverContent as n,PopoverTrigger as r}from"../../ui/popover.mjs";import{SEARCH_RESULT_SORT_OPTIONS as i}from"./shared.mjs";import{memo as a,useState as o}from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";function l({className:e}){return c(`svg`,{viewBox:`0 0 22 15`,fill:`currentColor`,"aria-hidden":!0,className:e,children:[s(`rect`,{x:`0`,y:`0`,width:`13.5`,height:`2`,rx:`1`}),s(`rect`,{x:`0`,y:`6.5`,width:`13.5`,height:`2`,rx:`1`}),s(`rect`,{x:`0`,y:`13`,width:`13.5`,height:`2`,rx:`1`}),s(`path`,{d:`M15 1C15 0.447715 15.4477 0 16 0C16.5523 0 17 0.447715 17 1V11.2969L18.2412 9.84961C18.6006 9.43028 19.2311 9.38179 19.6504 9.74121C20.0697 10.1006 20.1182 10.7311 19.7588 11.1504L16.7588 14.6504C16.4865 14.9681 16.0458 15.0826 15.6533 14.9375C15.2608 14.7923 15 14.4185 15 14V1Z`})]})}const u=a(({searchType:a,onChange:u,tabList:d,sort:f,onSortChange:p})=>{let[m,h]=o(!1);return s(e,{as:`nav`,className:`sticky top-0 z-40 px-[16px] pb-[16px] pt-[12px]`,children:c(e,{className:`flex h-[24px] items-center justify-between`,children:[s(e,{className:`flex items-center gap-[10px]`,children:d.map(e=>s(`button`,{type:`button`,className:`text-[16px] leading-[24px] transition-colors ${a===e.value?`font-medium text-white`:`font-normal text-white/80`}`,onClick:()=>{a!==e.value&&u(e.value)},children:e.label},e.value))}),c(t,{open:m,onOpenChange:h,children:[s(r,{"aria-label":`排序筛选`,className:`flex size-[24px] items-center justify-center`,children:s(l,{className:`h-[15px] w-[20px] text-white/40`})}),s(n,{side:`bottom`,align:`end`,sideOffset:8,className:`w-[132px] border border-white/10 bg-[#10071E]/95 p-[8px] backdrop-blur-[18px]`,children:s(e,{className:`flex flex-col gap-[4px]`,children:i.map(e=>s(`button`,{type:`button`,className:`rounded-[8px] px-[12px] py-[8px] text-left text-[14px] leading-[20px] ${e.value===f?`bg-white/10 text-white`:`text-white/70`}`,onClick:()=>{p(e.value),h(!1)},children:e.label},e.value))})})]})]})})});u.displayName=`SearchTab`;export{u as SearchTab};
2
+ "use client";import{Box as e}from"../../ui/box.mjs";import{Popover as t,PopoverContent as n,PopoverTrigger as r}from"../../ui/popover.mjs";import{SEARCH_RESULT_SORT_OPTIONS as i}from"./shared.mjs";import{memo as a,useState as o}from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";function l({className:e}){return c(`svg`,{viewBox:`0 0 22 15`,fill:`currentColor`,"aria-hidden":!0,className:e,children:[s(`rect`,{x:`0`,y:`0`,width:`13.5`,height:`2`,rx:`1`}),s(`rect`,{x:`0`,y:`6.5`,width:`13.5`,height:`2`,rx:`1`}),s(`rect`,{x:`0`,y:`13`,width:`13.5`,height:`2`,rx:`1`}),s(`path`,{d:`M15 1C15 0.447715 15.4477 0 16 0C16.5523 0 17 0.447715 17 1V11.2969L18.2412 9.84961C18.6006 9.43028 19.2311 9.38179 19.6504 9.74121C20.0697 10.1006 20.1182 10.7311 19.7588 11.1504L16.7588 14.6504C16.4865 14.9681 16.0458 15.0826 15.6533 14.9375C15.2608 14.7923 15 14.4185 15 14V1Z`})]})}const u=a(({searchType:a,onChange:u,tabList:d,sort:f,onSortChange:p})=>{let[m,h]=o(!1);return s(e,{as:`nav`,className:`sticky top-0 z-40 no-vw-x-16 pb-[16px] pt-[12px]`,children:c(e,{className:`flex h-[24px] items-center justify-between`,children:[s(e,{className:`flex items-center gap-[10px]`,children:d.map(e=>s(`button`,{type:`button`,className:`text-[16px] leading-[24px] transition-colors ${a===e.value?`font-medium text-white`:`font-normal text-white/80`}`,onClick:()=>{a!==e.value&&u(e.value)},children:e.label},e.value))}),c(t,{open:m,onOpenChange:h,children:[s(r,{"aria-label":`排序筛选`,className:`flex size-[24px] items-center justify-center`,children:s(l,{className:`h-[15px] w-[20px] text-white/40`})}),s(n,{side:`bottom`,align:`end`,sideOffset:8,className:`w-[132px] border border-white/10 bg-[#10071E]/95 p-[8px] backdrop-blur-[18px]`,children:s(e,{className:`flex flex-col gap-[4px]`,children:i.map(e=>s(`button`,{type:`button`,className:`rounded-[8px] px-[12px] py-[8px] text-left text-[14px] leading-[20px] ${e.value===f?`bg-white/10 text-white`:`text-white/70`}`,onClick:()=>{p(e.value),h(!1)},children:e.label},e.value))})})]})]})})});u.displayName=`SearchTab`;export{u as SearchTab};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gContentGetRecommendVideoList as t,pInteractionFollow as n,pInteractionUnfollow as r}from"../../../service/generated/client.mjs";import{Image as i}from"../../ui/image.mjs";import{Box as a}from"../../ui/box.mjs";import{InfiniteScroll as o}from"../../ui/infinite-scroll.mjs";import{Text as s}from"../../ui/text.mjs";import{Skeleton as c}from"../../ui/skeleton.mjs";import{usePaginated as l}from"../../../hooks/query/use-query.mjs";import{useRequireLogin as u}from"../../../hooks/use-auth.mjs";import d from"../../../assets/images/user/default_avatar.mjs";import{SearchResultEmpty as f}from"./search-empty.mjs";import{formatSearchFollowerCount as p,resolveSearchUserDescription as m,resolveSearchUserName as h}from"./shared.mjs";import{toast as g}from"sonner";import{memo as _,useCallback as v,useEffect as y,useMemo as b,useState as x}from"react";import{Check as S,Plus as C}from"lucide-react";import{jsx as w,jsxs as T}from"react/jsx-runtime";import{useTranslations as E}from"next-intl";import D from"next/link";const O=typeof d==`string`?d:d.src;function k(e,t){return String(t||e?.user_id||e?.userId||``).trim()}function A({src:e,alt:t,variant:n}){let r=n===`row`?`size-[56px] p-[4.375px]`:`size-[40px] p-[3px]`,o=n===`row`?`border-[3px]`:`border-[2px]`;return w(a,{className:`rounded-full bg-white/20 ${r}`,children:w(a,{className:`relative size-full overflow-hidden rounded-full border-solid border-white/40 ${o}`,children:w(i,{src:e||O,fill:!0,objectFit:`cover`,alt:t})})})}function j({item:t,variant:i,onFollowChange:a}){let o=u(),{userInfo:c,userId:l}=e(),[d,f]=x(!1),p=k(c,l),m=p!==``&&p===String(t.user_id||``).trim(),h=!!t.is_following,_=v(()=>{!t.user_id||d||o(()=>{let i=k(e.getState().userInfo,e.getState().userId);if(!i){g.error(`请先登录`);return}(async()=>{f(!0);try{let e=h?await r({follower_id:i,followee_id:t.user_id}):await n({follower_id:i,followee_id:t.user_id});if(e.code!==0){g.error(e.message||(h?`取消关注失败`:`关注失败`));return}a?.(!h)}catch(e){console.error(`切换关注状态失败`,e),g.error(h?`取消关注失败`:`关注失败`)}finally{f(!1)}})()})},[h,t.user_id,a,d,o]);return m?null:i===`grid`?w(`button`,{type:`button`,"aria-label":h?`取消关注`:`关注`,className:`flex size-[24px] shrink-0 items-center justify-center rounded-full transition-opacity ${h?`bg-white/15 text-white`:`bg-black/30 text-white/75`} ${d?`opacity-50`:``}`,onClick:_,children:w(h?S:C,{className:`size-[14px]`})}):T(`button`,{type:`button`,className:`flex h-[24px] shrink-0 items-center justify-center rounded-full transition-opacity ${h?`border border-white/25 bg-white/10 px-[8px] text-white/85`:`w-[64px] border border-white/60 bg-black/20 text-white/60`} ${d?`opacity-50`:``}`,onClick:_,children:[!h&&w(C,{className:`mr-[2px] size-[16px]`}),w(s,{className:h?`text-[12px] leading-[18px]`:`text-[14px] leading-[20px]`,children:h?`已关注`:`关注`})]})}const M=_(({item:e,onFollowChange:t})=>{let n=h(e),r=m(e),i=p(e.follower_count);return T(a,{className:`flex w-full items-center gap-[8px]`,children:[T(D,{href:`/profile/${e.user_id||``}`,className:`flex min-w-0 flex-1 items-center gap-[8px]`,children:[w(A,{src:e.avatar,alt:n||`用户头像`,variant:`row`}),T(a,{className:`min-w-0 max-w-[194px] flex-1`,children:[w(s,{className:`block truncate text-[14px] leading-[20px] font-normal text-white`,children:n}),w(s,{className:`mt-[2px] block truncate text-[14px] leading-[20px] text-white/60`,children:r}),T(s,{className:`mt-[2px] block truncate text-[14px] leading-[20px] text-white/60`,children:[`粉丝:`,i]})]})]}),w(j,{item:e,variant:`row`,onFollowChange:t})]})});M.displayName=`SearchUserRowCard`;const N=_(({item:e,onFollowChange:t})=>{let n=h(e),r=m(e);return T(a,{className:`h-[170px] rounded-[8px] bg-white/10 px-[16px] py-[16px]`,children:[T(a,{className:`flex items-start justify-between`,children:[w(D,{href:`/profile/${e.user_id||``}`,className:`flex items-center`,children:w(A,{src:e.avatar,alt:n||`用户头像`,variant:`grid`})}),w(j,{item:e,variant:`grid`,onFollowChange:t})]}),T(D,{href:`/profile/${e.user_id||``}`,className:`mt-[16px] block`,children:[w(s,{className:`block truncate text-[14px] leading-[20px] font-medium text-white`,children:n}),w(s,{className:`mt-[8px] block text-[14px] leading-[20px] text-white/60 line-clamp-4`,children:r})]})]})});N.displayName=`SearchUserGridCard`;const P={background:`linear-gradient(180deg, rgba(255,30,255,0.8) 0%, rgba(108,67,238,0) 100%), linear-gradient(145deg, rgba(255,30,172,0.6) 2.9%, rgba(108,67,238,0) 100%), linear-gradient(180deg, rgba(151,86,227,1) 0%, rgba(108,67,238,1) 100%)`,WebkitMask:`linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)`,WebkitMaskComposite:`xor`,maskComposite:`exclude`,padding:`0.5px`},F=_(({item:e,isFirst:t,onFollowChange:n})=>T(a,{className:`relative flex h-[88px] items-center rounded-[8px] bg-white/10 px-[12px] py-[8px]`,children:[t&&w(a,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:P}),w(M,{item:e,onFollowChange:n})]}));F.displayName=`SearchUserCard`;function I(){return w(a,{className:`flex flex-col gap-[12px] px-[16px]`,children:Array.from({length:6}).map((e,t)=>T(a,{className:`flex h-[88px] items-center gap-[8px] rounded-[8px] bg-white/8 px-[12px] py-[8px]`,children:[w(c,{className:`size-[56px] shrink-0 rounded-full bg-white/10`}),T(a,{className:`min-w-0 flex-1`,children:[w(c,{className:`h-[20px] w-[100px] rounded-[4px] bg-white/10`}),w(c,{className:`mt-[4px] h-[20px] w-[160px] rounded-[4px] bg-white/10`}),w(c,{className:`mt-[4px] h-[20px] w-[80px] rounded-[4px] bg-white/10`})]}),w(c,{className:`h-[24px] w-[64px] shrink-0 rounded-full bg-white/10`})]},`search-user-row-skeleton-${t}`))})}const L=_(({inputVal:e,sort:n,refreshVersion:r})=>{let i=E(`components.pages.search.searchResult`),[s,c]=x({});y(()=>{c({})},[e,r,n]);let u=v(async r=>await t({data_type:2,extra_params:JSON.stringify({type:4,keywords:e,sort:n}),page:r||1,page_size:20}),[e,n]),d=l({key:b(()=>[`search-result`,`user`,e,n,r],[e,r,n]),initialPageParam:1,async queryFn(e){return(await u(e))?.data?.users??{has_more:!1,total:0,list:[]}},getNextPageParam(e,t){if(e.has_more)return t.length+1}}),p=b(()=>(d.data?.pages??[]).flatMap(e=>e.list??[]).map(e=>{let t=String(e.user_id||``).trim();return!t||s[t]===void 0?e:{...e,is_following:s[t]}}),[s,d.data?.pages]),m=!!((d.isPending||d.isFetching)&&p.length===0),h=v((e,t)=>{e&&c(n=>({...n,[e]:t?1:0}))},[]),g=v(async()=>{try{await d.fetchNextPage()}catch(e){console.error(`获取用户搜索结果失败`,e)}},[d]);return m?w(I,{}):p.length===0?w(f,{text:i(`searchUser.emptyResult`)}):T(a,{className:`w-full pb-[24px]`,children:[w(a,{className:`flex flex-col gap-[12px] px-[16px]`,children:p.map((e,t)=>w(F,{item:e,isFirst:t===0,onFollowChange:t=>{h(String(e.user_id||``),t)}},String(e.user_id??t)))}),d.hasNextPage&&w(o,{loadMore:async e=>g(),hasMore:d.hasNextPage,className:`w-full`})]})});L.displayName=`SearchUser`;export{M as SearchUserRowCard,L as default};
2
+ "use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gContentGetRecommendVideoList as t,pInteractionFollow as n,pInteractionUnfollow as r}from"../../../service/generated/client.mjs";import{Image as i}from"../../ui/image.mjs";import{Box as a}from"../../ui/box.mjs";import{InfiniteScroll as o}from"../../ui/infinite-scroll.mjs";import{Text as s}from"../../ui/text.mjs";import{Skeleton as c}from"../../ui/skeleton.mjs";import{usePaginated as l}from"../../../hooks/query/use-query.mjs";import{useRequireLogin as u}from"../../../hooks/use-auth.mjs";import d from"../../../assets/images/user/default_avatar.mjs";import{SearchResultEmpty as f}from"./search-empty.mjs";import{formatSearchFollowerCount as p,resolveSearchUserDescription as m,resolveSearchUserName as h}from"./shared.mjs";import{toast as g}from"sonner";import{memo as _,useCallback as v,useEffect as y,useMemo as b,useState as x}from"react";import{Check as S,Plus as C}from"lucide-react";import{jsx as w,jsxs as T}from"react/jsx-runtime";import{useTranslations as E}from"next-intl";import D from"next/link";const O=typeof d==`string`?d:d.src;function k(e,t){return String(t||e?.user_id||e?.userId||``).trim()}function A({src:e,alt:t,variant:n}){let r=n===`row`?`size-[56px] p-[4.375px]`:`size-[40px] p-[3px]`,o=n===`row`?`border-[3px]`:`border-[2px]`;return w(a,{className:`rounded-full bg-white/20 ${r}`,children:w(a,{className:`relative size-full overflow-hidden rounded-full border-solid border-white/40 ${o}`,children:w(i,{src:e||O,fill:!0,objectFit:`cover`,alt:t})})})}function j({item:t,variant:i,onFollowChange:a}){let o=u(),{userInfo:c,userId:l}=e(),[d,f]=x(!1),p=k(c,l),m=p!==``&&p===String(t.user_id||``).trim(),h=!!t.is_following,_=v(()=>{!t.user_id||d||o(()=>{let i=k(e.getState().userInfo,e.getState().userId);if(!i){g.error(`请先登录`);return}(async()=>{f(!0);try{let e=h?await r({follower_id:i,followee_id:t.user_id}):await n({follower_id:i,followee_id:t.user_id});if(e.code!==0){g.error(e.message||(h?`取消关注失败`:`关注失败`));return}a?.(!h)}catch(e){console.error(`切换关注状态失败`,e),g.error(h?`取消关注失败`:`关注失败`)}finally{f(!1)}})()})},[h,t.user_id,a,d,o]);return m?null:i===`grid`?w(`button`,{type:`button`,"aria-label":h?`取消关注`:`关注`,className:`flex size-[24px] shrink-0 items-center justify-center rounded-full transition-opacity ${h?`bg-white/15 text-white`:`bg-black/30 text-white/75`} ${d?`opacity-50`:``}`,onClick:_,children:w(h?S:C,{className:`size-[14px]`})}):T(`button`,{type:`button`,className:`flex h-[24px] shrink-0 items-center justify-center rounded-full transition-opacity ${h?`border border-white/25 bg-white/10 px-[8px] text-white/85`:`w-[64px] border border-white/60 bg-black/20 text-white/60`} ${d?`opacity-50`:``}`,onClick:_,children:[!h&&w(C,{className:`mr-[2px] size-[16px]`}),w(s,{className:h?`text-[12px] leading-[18px]`:`text-[14px] leading-[20px]`,children:h?`已关注`:`关注`})]})}const M=_(({item:e,onFollowChange:t})=>{let n=h(e),r=m(e),i=p(e.follower_count);return T(a,{className:`flex w-full items-center gap-[8px]`,children:[T(D,{href:`/profile/${e.user_id||``}`,className:`flex min-w-0 flex-1 items-center gap-[8px]`,children:[w(A,{src:e.avatar,alt:n||`用户头像`,variant:`row`}),T(a,{className:`min-w-0 max-w-[194px] flex-1`,children:[w(s,{className:`block truncate text-[14px] leading-[20px] font-normal text-white`,children:n}),w(s,{className:`mt-[2px] block truncate text-[14px] leading-[20px] text-white/60`,children:r}),T(s,{className:`mt-[2px] block truncate text-[14px] leading-[20px] text-white/60`,children:[`粉丝:`,i]})]})]}),w(j,{item:e,variant:`row`,onFollowChange:t})]})});M.displayName=`SearchUserRowCard`;const N=_(({item:e,onFollowChange:t})=>{let n=h(e),r=m(e);return T(a,{className:`h-[170px] rounded-[8px] bg-white/10 px-[16px] py-[16px]`,children:[T(a,{className:`flex items-start justify-between`,children:[w(D,{href:`/profile/${e.user_id||``}`,className:`flex items-center`,children:w(A,{src:e.avatar,alt:n||`用户头像`,variant:`grid`})}),w(j,{item:e,variant:`grid`,onFollowChange:t})]}),T(D,{href:`/profile/${e.user_id||``}`,className:`mt-[16px] block`,children:[w(s,{className:`block truncate text-[14px] leading-[20px] font-medium text-white`,children:n}),w(s,{className:`mt-[8px] block text-[14px] leading-[20px] text-white/60 line-clamp-4`,children:r})]})]})});N.displayName=`SearchUserGridCard`;const P={background:`linear-gradient(180deg, rgba(255,30,255,0.8) 0%, rgba(108,67,238,0) 100%), linear-gradient(145deg, rgba(255,30,172,0.6) 2.9%, rgba(108,67,238,0) 100%), linear-gradient(180deg, rgba(151,86,227,1) 0%, rgba(108,67,238,1) 100%)`,WebkitMask:`linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)`,WebkitMaskComposite:`xor`,maskComposite:`exclude`,padding:`0.5px`},F=_(({item:e,isFirst:t,onFollowChange:n})=>T(a,{className:`relative flex h-[88px] items-center rounded-[8px] bg-white/10 px-[12px] py-[8px]`,children:[t&&w(a,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:P}),w(M,{item:e,onFollowChange:n})]}));F.displayName=`SearchUserCard`;function I(){return w(a,{className:`flex flex-col gap-[12px] px-[16px]`,children:Array.from({length:6}).map((e,t)=>T(a,{className:`flex h-[88px] items-center gap-[8px] rounded-[8px] bg-white/8 px-[12px] py-[8px]`,children:[w(c,{className:`size-[56px] shrink-0 rounded-full bg-white/10`}),T(a,{className:`min-w-0 flex-1`,children:[w(c,{className:`h-[20px] w-[100px] rounded-[4px] bg-white/10`}),w(c,{className:`mt-[4px] h-[20px] w-[160px] rounded-[4px] bg-white/10`}),w(c,{className:`mt-[4px] h-[20px] w-[80px] rounded-[4px] bg-white/10`})]}),w(c,{className:`h-[24px] w-[64px] shrink-0 rounded-full bg-white/10`})]},`search-user-row-skeleton-${t}`))})}const L=_(({inputVal:e,sort:n,refreshVersion:r})=>{let i=E(`components.pages.search.searchResult`),[s,c]=x({});y(()=>{c({})},[e,r,n]);let u=v(async r=>await t({data_type:2,extra_params:JSON.stringify({type:4,keywords:e,sort:n}),page:r||1,page_size:20}),[e,n]),d=l({key:b(()=>[`search-result`,`user`,e,n,r],[e,r,n]),initialPageParam:1,async queryFn(e){return(await u(e))?.data?.users??{has_more:!1,total:0,list:[]}},getNextPageParam(e,t){if(e.has_more)return t.length+1}}),p=b(()=>(d.data?.pages??[]).flatMap(e=>e.list??[]).map(e=>{let t=String(e.user_id||``).trim();return!t||s[t]===void 0?e:{...e,is_following:s[t]}}),[s,d.data?.pages]),m=!!((d.isPending||d.isFetching)&&p.length===0),h=v((e,t)=>{e&&c(n=>({...n,[e]:t?1:0}))},[]),g=v(async()=>{try{await d.fetchNextPage()}catch(e){console.error(`获取用户搜索结果失败`,e)}},[d]);return m?w(I,{}):p.length===0?w(f,{text:i(`searchUser.emptyResult`)}):T(a,{className:`w-full pb-[24px]`,children:[w(a,{className:`flex flex-col gap-[12px] no-vw-x-16`,children:p.map((e,t)=>w(F,{item:e,isFirst:t===0,onFollowChange:t=>{h(String(e.user_id||``),t)}},String(e.user_id??t)))}),d.hasNextPage&&w(o,{loadMore:async e=>g(),hasMore:d.hasNextPage,className:`w-full`})]})});L.displayName=`SearchUser`;export{M as SearchUserRowCard,L as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{useRouter as e}from"../../../utils/use-compatible-router.mjs";import{Input as t}from"../../ui/input.mjs";import{toast as n}from"../../../ui.mjs";import{useKeepAliveEffect as r,useKeepAliveState as i}from"../../common/keep-scroll-position/index.mjs";import{LeftArrowIcon as a}from"../../common/icons/left-arrow.mjs";import{memo as o,useCallback as s}from"react";import{useSearchParams as c}from"next/navigation";import{jsx as l,jsxs as u}from"react/jsx-runtime";import{useTranslations as d}from"next-intl";const f=o(({setSearchInputVal:o,initInputVal:f,initInputVersion:p,addSearchHistory:m})=>{let h=d(`components.pages.search`),g=e(),[_,v]=i(`search-input-val`,``),y=c().get(`q`),b=e=>{v(e.target.value)},x=s(e=>{o(e),m(e)},[m,o]);r(()=>{f&&(v(f),x(f))},[x,f,p,v],`search-init-input-effect`),r(()=>{y&&(v(y),x(y))},[x,v,y],`search-url-params-effect`);function S(){if(n.dismiss(),window.location.search.split(`from_code=`)[1]){g.push(`/`);return}g.back()}return l(`div`,{className:`app-top-nav w-full`,children:u(`header`,{className:`flex h-[60px] items-center gap-[8px] px-[16px] pb-[10px] pt-[16px]`,children:[l(`button`,{type:`button`,"aria-label":`返回`,className:`flex size-[24px] shrink-0 items-center justify-center text-white`,onClick:S,children:l(a,{className:`h-[16px] w-[16px]`})}),l(`div`,{className:`relative h-[34px] min-w-0 flex-1`,children:u(`div`,{className:`flex h-full min-w-0 flex-1 items-center overflow-hidden rounded-[100px] border-[0.5px] border-[rgba(230,42,255,0.9)] bg-black/40 backdrop-blur-[2px]`,children:[l(`div`,{className:`flex h-full min-w-0 flex-1 items-center pl-[20px] pr-[8px]`,children:l(t,{placeholder:h(`topHeader.placeholder`),maxLength:20,value:_,className:`!h-[24px] !w-full !rounded-none !border-0 !bg-transparent !px-0 !py-0 !text-[14px] !leading-[24px] !text-white/90 placeholder:!text-white/90`,onChange:b,onKeyDown:e=>{if(e.key===`Enter`){if(e.preventDefault(),!_.trim())return;x(_.trim())}}})}),l(`button`,{type:`button`,className:`mx-[2px] flex h-[30px] w-[56px] shrink-0 items-center justify-center rounded-[100px] bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-[14px] leading-[20px] text-white`,onClick:()=>{_.trim()&&x(_.trim())},children:h(`topHeader.search`)})]})})]})})});f.displayName=`SearchTopHeader`;export{f as default};
2
+ "use client";import{useRouter as e}from"../../../utils/use-compatible-router.mjs";import{Input as t}from"../../ui/input.mjs";import{toast as n}from"../../../ui.mjs";import{useKeepAliveEffect as r,useKeepAliveState as i}from"../../common/keep-scroll-position/index.mjs";import{LeftArrowIcon as a}from"../../common/icons/left-arrow.mjs";import{useSearchParams as o}from"next/navigation";import{memo as s,useCallback as c}from"react";import{jsx as l,jsxs as u}from"react/jsx-runtime";import{useTranslations as d}from"next-intl";const f=s(({setSearchInputVal:s,initInputVal:f,initInputVersion:p,addSearchHistory:m})=>{let h=d(`components.pages.search`),g=e(),[_,v]=i(`search-input-val`,``),y=o().get(`q`),b=e=>{v(e.target.value)},x=c(e=>{s(e),m(e)},[m,s]);r(()=>{f&&(v(f),x(f))},[x,f,p,v],`search-init-input-effect`),r(()=>{y&&(v(y),x(y))},[x,v,y],`search-url-params-effect`);function S(){if(n.dismiss(),window.location.search.split(`from_code=`)[1]){g.push(`/`);return}g.back()}return l(`div`,{className:`app-top-nav w-full`,children:u(`header`,{className:`flex h-[60px] items-center gap-[8px] no-vw-x-16 pb-[10px] pt-[16px]`,children:[l(`button`,{type:`button`,"aria-label":`返回`,className:`flex size-[24px] shrink-0 items-center justify-center text-white`,onClick:S,children:l(a,{className:`h-[16px] w-[16px]`})}),l(`div`,{className:`relative h-[34px] min-w-0 flex-1`,children:u(`div`,{className:`flex h-full min-w-0 flex-1 items-center overflow-hidden rounded-[100px] border-[0.5px] border-[rgba(230,42,255,0.9)] bg-black/40 backdrop-blur-[2px]`,children:[l(`div`,{className:`flex h-full min-w-0 flex-1 items-center pl-[20px] pr-[8px]`,children:l(t,{placeholder:h(`topHeader.placeholder`),maxLength:20,value:_,className:`!h-[24px] !w-full !rounded-none !border-0 !bg-transparent !px-0 !py-0 !text-[14px] !leading-[24px] !text-white/90 placeholder:!text-white/90`,onChange:b,onKeyDown:e=>{if(e.key===`Enter`){if(e.preventDefault(),!_.trim())return;x(_.trim())}}})}),l(`button`,{type:`button`,className:`mx-[2px] flex h-[30px] w-[56px] shrink-0 items-center justify-center rounded-[100px] bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-[14px] leading-[20px] text-white`,onClick:()=>{_.trim()&&x(_.trim())},children:h(`topHeader.search`)})]})})]})})});f.displayName=`SearchTopHeader`;export{f as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../../utils/cn.mjs";import{useUserStore as t}from"../../../../store/modules/user-store.mjs";import{gUserGetUserPrivacySettings as n}from"../../../../service/generated/client.mjs";import{Box as r}from"../../../ui/box.mjs";import{useLoginModalStore as i}from"../../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as a,useRequest as o}from"../../../../hooks/query/use-query.mjs";import{locales as s}from"../../../../i18n.mjs";import{DeleteConfirmDialog as c}from"../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{HeaderNav as l}from"../../../common/header-nav/client.mjs";import{ResetPasswordDrawer as u}from"./reset-password-drawer.mjs";import{useEffect as d,useRef as f,useState as p}from"react";import{useRouter as m}from"next/navigation";import{ChevronRight as h}from"lucide-react";import{jsx as g,jsxs as _}from"react/jsx-runtime";import{useLocale as v,useTranslations as y}from"next-intl";import b from"next/link";function x(e){return{collection:Number(e?.collections_open??0)>0,follower:Number(e?.follower_open??0)>0,following:Number(e?.following_open??0)>0,like:Number(e?.like_open??0)>0}}function S({className:h}={}){let S=y(`components.pages.settings.components`),w=v(),{open:T}=i(),E=t(e=>e.isLogin),D=t(e=>e.token),O=t(e=>e.logout),k=t(e=>e.userId),A=(E||!!D)&&!!k,j=x(),[M,N]=p(j),P=f(j),[F,I]=p(!1),[L,R]=p(!1);a();let z=[`user-privacy-settings`,k],B=w===`zh-CN`?`en`:`zh-CN`;s.find(e=>e.code===B)?.name;let{data:V}=o(z,()=>n({user_id:k}),{enabled:!!k}),H=V?.data;d(()=>{if(!H)return;let e=x(H);N(e),P.current=e},[H]),d(()=>{P.current=M},[M]);let U=a(),W=m();function G(){U([`user-profile`,`mine`]),O(),W.push(`/user/mine`)}function K(e){R(e)}function q(){R(!0)}function J(){R(!1)}function Y(){G()}function X(e){I(e)}function Z(){if(!A){T();return}I(!0)}function Q(e){A||(e.preventDefault(),e.stopPropagation(),T())}return _(r,{className:e(`min-h-dvh bg-[var(--color-surface-panel-dark)]`,h),children:[g(l,{className:`!bg-[var(--color-surface-panel-dark)] !border-transparent`,title:S(`settings.title`)}),g(u,{open:F,onOpenChange:X}),_(r,{className:`mx-4 mt-4 flex flex-col`,children:[g(`button`,{type:`button`,className:`block w-full text-left`,onClick:Z,children:g(C,{title:S(`settings.resetPasswordTitle`)})}),g(b,{href:`/feedback`,onClick:Q,className:`block`,children:g(C,{title:S(`settings.feedbackTitle`)})})]}),F||!A?null:g(r,{className:`fixed inset-x-0 bottom-0 z-40 flex flex-col pb-[env(safe-area-inset-bottom)]`,children:g(`div`,{className:`flex flex-col items-center px-4 py-2`,style:{background:`var(--color-overlay-panel-fade-start90)`,backdropFilter:`blur(var(--effect-backdrop-blur-detail-hero))`},children:g(`button`,{type:`button`,className:`flex h-12 w-full items-center justify-center rounded-[8px] text-base text-[var(--color-text-primary)] transition-opacity active:opacity-80`,style:{background:`var(--color-surface-white10)`},onClick:q,children:S(`settings.button`)})})}),g(c,{open:L,onOpenChange:K,onCancel:J,onConfirm:Y,title:``,description:S(`settings.logoutConfirmMessage`),confirmText:S(`settings.confirm`),cancelText:S(`settings.cancel`)})]})}function C({title:e}){return _(`div`,{className:`flex h-14 items-center justify-between px-4`,children:[g(`span`,{className:`text-base text-[var(--color-text-primary)]`,children:e}),g(h,{className:`size-6 shrink-0 opacity-50 text-[var(--color-text-primary)]`})]})}export{S as Settings};
2
+ "use client";import{cn as e}from"../../../../utils/cn.mjs";import{useUserStore as t}from"../../../../store/modules/user-store.mjs";import{gUserGetUserPrivacySettings as n}from"../../../../service/generated/client.mjs";import{Box as r}from"../../../ui/box.mjs";import{useLoginModalStore as i}from"../../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as a,useRequest as o}from"../../../../hooks/query/use-query.mjs";import{locales as s}from"../../../../i18n.mjs";import{DeleteConfirmDialog as c}from"../../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{HeaderNav as l}from"../../../common/header-nav/client.mjs";import{ResetPasswordDrawer as u}from"./reset-password-drawer.mjs";import{useRouter as d}from"next/navigation";import{useEffect as f,useRef as p,useState as m}from"react";import{ChevronRight as h}from"lucide-react";import{jsx as g,jsxs as _}from"react/jsx-runtime";import{useLocale as v,useTranslations as y}from"next-intl";import b from"next/link";function x(e){return{collection:Number(e?.collections_open??0)>0,follower:Number(e?.follower_open??0)>0,following:Number(e?.following_open??0)>0,like:Number(e?.like_open??0)>0}}function S({className:h}={}){let S=y(`components.pages.settings.components`),w=v(),{open:T}=i(),E=t(e=>e.isLogin),D=t(e=>e.token),O=t(e=>e.logout),k=t(e=>e.userId),A=(E||!!D)&&!!k,j=x(),[M,N]=m(j),P=p(j),[F,I]=m(!1),[L,R]=m(!1);a();let z=[`user-privacy-settings`,k],B=w===`zh-CN`?`en`:`zh-CN`;s.find(e=>e.code===B)?.name;let{data:V}=o(z,()=>n({user_id:k}),{enabled:!!k}),H=V?.data;f(()=>{if(!H)return;let e=x(H);N(e),P.current=e},[H]),f(()=>{P.current=M},[M]);let U=a(),W=d();function G(){U([`user-profile`,`mine`]),O(),W.push(`/user/mine`)}function K(e){R(e)}function q(){R(!0)}function J(){R(!1)}function Y(){G()}function X(e){I(e)}function Z(){if(!A){T();return}I(!0)}function Q(e){A||(e.preventDefault(),e.stopPropagation(),T())}return _(r,{className:e(`min-h-dvh bg-[var(--color-surface-panel-dark)]`,h),children:[g(l,{className:`!bg-[var(--color-surface-panel-dark)] !border-transparent`,title:S(`settings.title`)}),g(u,{open:F,onOpenChange:X}),_(r,{className:`mx-4 mt-4 flex flex-col`,children:[g(`button`,{type:`button`,className:`block w-full text-left`,onClick:Z,children:g(C,{title:S(`settings.resetPasswordTitle`)})}),g(b,{href:`/feedback`,onClick:Q,className:`block`,children:g(C,{title:S(`settings.feedbackTitle`)})})]}),F||!A?null:g(r,{className:`fixed inset-x-0 bottom-0 z-40 flex flex-col pb-[env(safe-area-inset-bottom)]`,children:g(`div`,{className:`flex flex-col items-center px-4 py-2`,style:{background:`var(--color-overlay-panel-fade-start90)`,backdropFilter:`blur(var(--effect-backdrop-blur-detail-hero))`},children:g(`button`,{type:`button`,className:`flex h-12 w-full items-center justify-center rounded-[8px] text-base text-[var(--color-text-primary)] transition-opacity active:opacity-80`,style:{background:`var(--color-surface-white10)`},onClick:q,children:S(`settings.button`)})})}),g(c,{open:L,onOpenChange:K,onCancel:J,onConfirm:Y,title:``,description:S(`settings.logoutConfirmMessage`),confirmText:S(`settings.confirm`),cancelText:S(`settings.cancel`)})]})}function C({title:e}){return _(`div`,{className:`flex h-14 items-center justify-between px-4`,children:[g(`span`,{className:`text-base text-[var(--color-text-primary)]`,children:e}),g(h,{className:`size-6 shrink-0 opacity-50 text-[var(--color-text-primary)]`})]})}export{S as Settings};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{cn as t}from"../../../utils/cn.mjs";import{gContentGetAppChannels as n,gContentGetVideoDetail as r}from"../../../service/generated/client.mjs";import{trackAppPageView as i}from"../../../utils/tracking.mjs";import{useRouter as a}from"../../../utils/use-compatible-router.mjs";import{EmptyState as o}from"../../ui/empty.mjs";import{buildVideoPlayerSrc as ee}from"../../common/video-player/process-m3u8-cache.mjs";import{notifyBridgeEpisodeChanged as s}from"../../../utils/login-modal-bridge.mjs";import{useRequest as c}from"../../../hooks/query/use-query.mjs";import{queryKey as l}from"../../../constants/query-key.mjs";import{useKeepAliveEffect as u,useKeepAliveState as d}from"../../common/keep-scroll-position/index.mjs";import{apiCollectClick as f}from"../../../utils/api-collect.mjs";import p from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{VideoDetailMaterialRuntimeProvider as te}from"../../biz/business/detail/shared/runtime-context-provider.mjs";import{resolveMaterialProps as ne,videoDetailMaterials as m}from"../../biz/business/detail/shared/registry.mjs";import{DetailHero as re}from"../../biz/business/detail/shared/video-hero.mjs";import{Fragment as ie,useCallback as h,useEffect as g,useMemo as _,useRef as v}from"react";import{useParams as ae,useSearchParams as oe}from"next/navigation";import{Fragment as y,jsx as b,jsxs as x}from"react/jsx-runtime";import{useTranslations as se}from"next-intl";const S=[{id:`detail-info`,componentName:`video-detail-info`,props:{}},{id:`detail-info-title-tags-episodes`,componentName:`video-detail-info-title-tags-episodes`,props:{}},{id:`detail-actions`,componentName:`video-detail-actions`,props:{}},{id:`detail-recommend`,componentName:`video-detail-recommend`,props:{title:`猜你喜欢`,rows:2,columns:3,smartTagEnabled:!1,smartTagIds:[`腐剧`],showPlayCount:!0,playCountDelta:0,showEpisode:!0,enableInfinite:!1,items:[{contentId:`d6a35ba3279e6f0d`,contentName:`贺总的私宠罪妻`,titleMode:`custom`,title:`贺总的私宠罪妻`,description:`简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百`,coverMode:`upload`,coverUrl:`/truss/20260227/69a136457d10f.jpgxxx`,showPlayCount:!0,playCountDelta:0,showEpisode:!0},{contentId:`b0f42fed731239a7`,contentName:`少年江湖物语`,titleMode:`custom`,title:`少年江湖物语`,description:`网剧《少年江湖物语》讲述了一个江湖中邪不压正,青春正好,有情有爱的温暖故事。剧中有魔教教主,有天下第一剑客,有身世成谜的江湖大夫,有忠心耿耿的小丫鬟,更有艳压秦淮的当红花魁,众多看似完全没有交集的人物纷纷亮相登场,搅乱江湖一池春水。`,coverMode:`content`,coverUrl:`/md-204/uploads/default/other/2024-08-26/14664d2c31e61c201a29cd4abba267c5.jpg`,showPlayCount:!0,playCountDelta:0,showEpisode:!0},{contentId:`c2304e94ec0ba208`,contentName:`王的男人`,titleMode:`custom`,title:`王的男人`,description:`朝鲜第十代王燕山王君时期,艺人长生(甘宇成饰)和孔吉(李俊基饰)因为不肯加入当地的艺人团,来到京城汉阳谋生。此时暴君燕山君(郑镇荣饰)沉迷于宠妾张绿水(姜成妍饰),朝纲混乱,民不聊生。长生与孔吉二人在街头开始表演讽刺君主的喜剧,大受欢迎,却遭逮捕。后要求到王面前表演,求得一笑。结果,多亏孔吉的急中生智,燕山君才笑了出来。两人随即被留在宫中取乐,孔吉更是因为美色令王倍加宠爱。他们不停表演,大臣们却各自心怀鬼胎,导致了杀戮局面。最终,君王和艺人的命运又将如何呢?`,coverMode:`content`,coverUrl:`/md-204/resource/8c/8cb28f46831558fbeb2f34b2076c3b4e.jpg`,showPlayCount:!0,playCountDelta:0,showEpisode:!0},{contentId:`c7ffc6a558ae8683`,contentName:`怒`,titleMode:`custom`,title:`怒`,description:`炎炎夏日,东京八王子郊外社区,一对夫妇惨遭杀害。事后凶手用血在墙上写下大大的“怒”字,随后逃亡,销声匿迹长达一年之久。而在此期间,三个身份不明的男子和身边的人相遇了。曾自甘堕落的爱子(宫崎葵饰)被父亲(渡边谦饰)领回海滨小镇,邂逅了不善言辞的哲也(松山研一饰)。在东京工作的同性恋优马(妻夫木聪饰)将柔情似水的直人(绫野刚饰)带回了家,他不相信对方,却又尝试去相信。随母亲搬到冲绳的小泉(广濑铃饰)跟着同学辰哉(佐久本宝饰)登上一座荒岛,在废墟中遇到了背包客田中(森山未来饰),他们短暂成为朋友,而可怕的命运突然降临泉的头上。不久之后,通缉令遍布全国,三个男子的真实身份引人生疑……本片根据吉田修一的同名原作改编。`,coverMode:`content`,coverUrl:`/md-204/resource/24/24ef267eef2c35b5e4cf12dac8b55c14.jpg`,showPlayCount:!0,playCountDelta:0,showEpisode:!0},{contentId:`98217427ed96ec51`,contentName:`熔炉`,titleMode:`custom`,title:`熔炉`,description:`来自首尔的哑语美术老师仁浩(孔宥饰)来到雾津,应聘慈爱聋哑人学校。天降大雾,他意外撞车,维修时邂逅了人权组织成员柔珍(郑有美饰)。仁浩妻子早亡,8岁女儿天生哮喘由祖母照看,所以他不辞辛苦谋职养家。然而,双胞胎的校长与教导主任竟逼仁浩索贿5千万韩元。同时,仁浩逐渐发现学校笼罩着一种紧张压抑的气氛,令人窒息。有三个孩子引人关注:聪颖的金妍斗(金贤秀饰)、贪吃的陈宥利(郑仁絮饰)和弟弟自杀身亡的全民秀(白承焕饰),民秀总是满脸淤青。下课后,仁浩还听到女厕所中有呼喊与哭泣,在门卫的阻拦下他未深究。之后。他意外目睹了校长行贿警察,教导员毒打民秀,宿导溺罚妍斗的行径。一个惊天的隐秘被慢慢揭开,真相令韩国震惊……本片取材于2005年光州一所聋哑障碍人学校的真实事件,改编自韩国作家孔枝泳的同名小说。`,coverMode:`content`,coverUrl:`/md-204/resource/b4/b410ccdcd86936455b9460a9152aaa47.jpg`,showPlayCount:!0,playCountDelta:0,showEpisode:!0},{contentId:`caa2b4eb4eb40de0`,contentName:`再次来寻我`,titleMode:`custom`,title:`再次来寻我`,description:`在宇回到曾经与初恋志勋相遇的303号房,这里即将被拆迁,他在房间里回忆和志勋的点点滴滴,突然被书桌上的电话所吸引,一拿起话筒听到的竟是志勋的声音!在房子主人的同意下,在宇带着电话离开了303室,在回家的途中他发现自己像走在一个陌生的地方,而对面走来的竟是已消失已久的志勋…`,coverMode:`content`,coverUrl:`/md-204/resource/2b/2b43375f2248c1a012847d4507fd21a3.jpg`,showPlayCount:!0,playCountDelta:0,showEpisode:!0}]}}];function C(e,t){let n=String(e||``).split(`/`).filter(Boolean),r=n.findIndex(e=>e===`video`||e===`webview`);return r<0?!1:n[r+1]===t}function w({detailId:f,initialInformation:w,isWebView:T=!1,materialConfig:E}){let D=se(`components.pages.videoDetail`),O=a(),k=ae(),ce=oe(),A=v(!1),j=k.level,M=Array.isArray(j)?j:typeof j==`string`?[j]:[],N=M.findIndex(e=>e===`episode`),le=N>=0?M[N+1]:M[2],P=Math.max(1,Number(le)||1),[ue,F]=d(`detail-current-series-num-${f}`,P);g(()=>{F(P)},[P,F]);let I=Math.max(1,Number(ue)||1),L=Math.max(0,I-1),{data:R,isPending:z,isFetching:B,isError:V,isSuccess:H}=c(_(()=>[`video-detail`,f],[f]),async()=>f?await r({id:f}):null,{enabled:!!f}),U=_(()=>{let e=R?.data?.video;return!e||typeof e!=`object`?null:{...e,content_type:1,episode_cnt:e.links?.length||0}},[R?.data?.video]),de=w??U??null,[W,G]=d(`detail-information-${f}`,de);g(()=>{!W?.id||A.current||(A.current=!0,i({page_key:`page_video_detail`,page_name:`详情页`}))},[W?.id]);let fe=W?.links?.[L]?.id||``,K=!!f&&!W&&(z||B),q=!f||!!W||V||H,[pe,me]=d(`info-detail-active-tab-${f}`,`video`),[J,Y]=d(`info-detail-comment-add-count-${f}`,0),[X,he]=d(`info-detail-comment-total-${f}`,void 0);g(()=>{!W&&U&&G(U)},[W,U,G]);let Z=h(e=>{G(t=>t&&{...t,...e})},[G]);u(()=>{W?.id&&W.id},[W?.id],`detail-page-report-${f}`),g(()=>{!W||typeof window>`u`||window.sensors?.track?.(`detail_page_view`,{object_id:W.id||f,author_id:W.up_user,object_type:W.content_type,object_category:W.content_type,object_tags:W.tags?.map(e=>e.name),block_id:``,page_source:window.location?.pathname||``})},[f,W]),g(()=>{Y(0)},[fe,Y]),_(()=>(typeof X==`number`?X:0)+J,[J,X]);let ge=h(()=>{},[!1,me]);h(()=>{Y(e=>e+1)},[Y]),g(()=>{},[!1,ge,W?.id,ce]);let Q=h(e=>{let t=Math.max(1,Math.floor(Number(e)||1));if(typeof window>`u`)return;let n=String(W?.id||f||``).trim();if(!n)return;let r=T||window.isWebView===!0,i=`/${r?`webview`:`video`}/${n}/${encodeURIComponent(W?.name||``)}/episode/${t}`,{search:a,hash:o,pathname:c}=window.location,l=`${i}${a}${o}`,u=`${c}${a}${o}`,d=C(c,n);if(u!==l){if(r){let e=W?.links?.[Math.max(0,t-1)],r=ee(String(e?.m3u8_url||e?.preview_m3u8_url||``).trim());s({poster:String(W?.img_y||W?.img_x||W?.preview_images?.[0]||``).trim(),src:r,title:String(W?.title||W?.name||``).trim(),contentId:n,episode:t}),I!==t&&F(t);return}d&&typeof window.history?.replaceState==`function`?(window.history.replaceState(window.history.state,``,l),F(t)):O.replace(l,{scroll:!1});return}I!==t&&F(t)},[I,f,W?.id,W?.img_x,W?.img_y,W?.links,W?.name,W?.preview_images,W?.title,T,O,F]);g(()=>{let e=Array.isArray(W?.links)?W.links.length:0;e<=0||I<=e||Q(1)},[I,Q,W?.links]);let $=W?.status===`1`,{data:_e}=c([l.CHANNEL],()=>n()),ve=e(_e?.data),ye=_(()=>{if(E!==void 0){let e=new Map(S.map(e=>[e.componentName,e]));return E.map(t=>{let n=e.get(t.componentName);return{...n,...t,props:{...n?.props??{},...t.props??{}}}})}return S},[E]),be=_(()=>({information:W??void 0,currentSeriesNum:I,onEpisodeChange:Q,onUpdateInformation:Z,detailId:f,episodeIndex:L,isShow:!0,isWebView:T,isInformationLoading:K,isInformationResolved:q}),[I,f,L,Q,Z,W,K,q,T,!0]),xe=h(e=>{if(!W)return null;let t=m[e.componentName];if(!t)return null;let n=t.clientComponent,r=ne(t,e.props);return r.isValid?b(n,{...r.props}):b(`div`,{children:`组件配置错误`})},[W]);return x(`div`,{className:`w-full min-h-screen bg-bg2 text-text1 ${T?``:`pt-11`}`,children:[!T&&b(`div`,{className:`fixed bg-black top-0 left-0 right-0 z-[1000]`,children:b(p,{data:{list:ve}})}),b(`div`,{className:`mx-auto w-full max-w-[840px] pb-6`,children:x(y,{children:[W&&!$&&b(o,{type:`no-content`,text:D(`videoDetailClient.videoUnavailable`)}),W&&$&&x(y,{children:[!T&&b(re,{isVideo:!0,information:W,episodeIndex:L}),b(`div`,{id:`selectPopupPosition`,className:`w-full`}),!1,x(`div`,{className:t(`w-full`,!1),children:[b(te,{value:be,children:ye.map(e=>b(ie,{children:xe(e)},e.id))}),!1]}),!1]}),!W&&b(o,{type:`no-content`,text:D(`videoDetailClient.videoDeleted`)})]})})]})}export{w as default};
2
+ "use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{cn as t}from"../../../utils/cn.mjs";import{gContentGetAppChannels as n,gContentGetVideoDetail as r}from"../../../service/generated/client.mjs";import{trackAppPageView as i}from"../../../utils/tracking.mjs";import{useRouter as a}from"../../../utils/use-compatible-router.mjs";import{EmptyState as o}from"../../ui/empty.mjs";import{buildVideoPlayerSrc as s}from"../../common/video-player/process-m3u8-cache.mjs";import{notifyBridgeEpisodeChanged as ee}from"../../../utils/login-modal-bridge.mjs";import{useRequest as c}from"../../../hooks/query/use-query.mjs";import{queryKey as l}from"../../../constants/query-key.mjs";import{useKeepAliveEffect as u,useKeepAliveState as d}from"../../common/keep-scroll-position/index.mjs";import{apiCollectClick as f}from"../../../utils/api-collect.mjs";import p from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{VideoDetailMaterialRuntimeProvider as te}from"../../biz/business/detail/shared/runtime-context-provider.mjs";import{resolveMaterialProps as ne,videoDetailMaterials as m}from"../../biz/business/detail/shared/registry.mjs";import{DetailHero as re}from"../../biz/business/detail/shared/video-hero.mjs";import{useParams as ie,useSearchParams as ae}from"next/navigation";import{Fragment as h,useCallback as g,useEffect as _,useMemo as v,useRef as oe}from"react";import{Fragment as y,jsx as b,jsxs as x}from"react/jsx-runtime";import{useTranslations as se}from"next-intl";const S=[{id:`detail-info`,componentName:`video-detail-info`,props:{}},{id:`detail-info-title-tags-episodes`,componentName:`video-detail-info-title-tags-episodes`,props:{}},{id:`detail-actions`,componentName:`video-detail-actions`,props:{}},{id:`detail-recommend`,componentName:`video-detail-recommend`,props:{title:`猜你喜欢`,rows:2,columns:3,smartTagEnabled:!1,smartTagIds:[`腐剧`],showPlayCount:!0,playCountDelta:0,showEpisode:!0,enableInfinite:!1,items:[{contentId:`d6a35ba3279e6f0d`,contentName:`贺总的私宠罪妻`,titleMode:`custom`,title:`贺总的私宠罪妻`,description:`简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百简介多少字是不是两百`,coverMode:`upload`,coverUrl:`/truss/20260227/69a136457d10f.jpgxxx`,showPlayCount:!0,playCountDelta:0,showEpisode:!0},{contentId:`b0f42fed731239a7`,contentName:`少年江湖物语`,titleMode:`custom`,title:`少年江湖物语`,description:`网剧《少年江湖物语》讲述了一个江湖中邪不压正,青春正好,有情有爱的温暖故事。剧中有魔教教主,有天下第一剑客,有身世成谜的江湖大夫,有忠心耿耿的小丫鬟,更有艳压秦淮的当红花魁,众多看似完全没有交集的人物纷纷亮相登场,搅乱江湖一池春水。`,coverMode:`content`,coverUrl:`/md-204/uploads/default/other/2024-08-26/14664d2c31e61c201a29cd4abba267c5.jpg`,showPlayCount:!0,playCountDelta:0,showEpisode:!0},{contentId:`c2304e94ec0ba208`,contentName:`王的男人`,titleMode:`custom`,title:`王的男人`,description:`朝鲜第十代王燕山王君时期,艺人长生(甘宇成饰)和孔吉(李俊基饰)因为不肯加入当地的艺人团,来到京城汉阳谋生。此时暴君燕山君(郑镇荣饰)沉迷于宠妾张绿水(姜成妍饰),朝纲混乱,民不聊生。长生与孔吉二人在街头开始表演讽刺君主的喜剧,大受欢迎,却遭逮捕。后要求到王面前表演,求得一笑。结果,多亏孔吉的急中生智,燕山君才笑了出来。两人随即被留在宫中取乐,孔吉更是因为美色令王倍加宠爱。他们不停表演,大臣们却各自心怀鬼胎,导致了杀戮局面。最终,君王和艺人的命运又将如何呢?`,coverMode:`content`,coverUrl:`/md-204/resource/8c/8cb28f46831558fbeb2f34b2076c3b4e.jpg`,showPlayCount:!0,playCountDelta:0,showEpisode:!0},{contentId:`c7ffc6a558ae8683`,contentName:`怒`,titleMode:`custom`,title:`怒`,description:`炎炎夏日,东京八王子郊外社区,一对夫妇惨遭杀害。事后凶手用血在墙上写下大大的“怒”字,随后逃亡,销声匿迹长达一年之久。而在此期间,三个身份不明的男子和身边的人相遇了。曾自甘堕落的爱子(宫崎葵饰)被父亲(渡边谦饰)领回海滨小镇,邂逅了不善言辞的哲也(松山研一饰)。在东京工作的同性恋优马(妻夫木聪饰)将柔情似水的直人(绫野刚饰)带回了家,他不相信对方,却又尝试去相信。随母亲搬到冲绳的小泉(广濑铃饰)跟着同学辰哉(佐久本宝饰)登上一座荒岛,在废墟中遇到了背包客田中(森山未来饰),他们短暂成为朋友,而可怕的命运突然降临泉的头上。不久之后,通缉令遍布全国,三个男子的真实身份引人生疑……本片根据吉田修一的同名原作改编。`,coverMode:`content`,coverUrl:`/md-204/resource/24/24ef267eef2c35b5e4cf12dac8b55c14.jpg`,showPlayCount:!0,playCountDelta:0,showEpisode:!0},{contentId:`98217427ed96ec51`,contentName:`熔炉`,titleMode:`custom`,title:`熔炉`,description:`来自首尔的哑语美术老师仁浩(孔宥饰)来到雾津,应聘慈爱聋哑人学校。天降大雾,他意外撞车,维修时邂逅了人权组织成员柔珍(郑有美饰)。仁浩妻子早亡,8岁女儿天生哮喘由祖母照看,所以他不辞辛苦谋职养家。然而,双胞胎的校长与教导主任竟逼仁浩索贿5千万韩元。同时,仁浩逐渐发现学校笼罩着一种紧张压抑的气氛,令人窒息。有三个孩子引人关注:聪颖的金妍斗(金贤秀饰)、贪吃的陈宥利(郑仁絮饰)和弟弟自杀身亡的全民秀(白承焕饰),民秀总是满脸淤青。下课后,仁浩还听到女厕所中有呼喊与哭泣,在门卫的阻拦下他未深究。之后。他意外目睹了校长行贿警察,教导员毒打民秀,宿导溺罚妍斗的行径。一个惊天的隐秘被慢慢揭开,真相令韩国震惊……本片取材于2005年光州一所聋哑障碍人学校的真实事件,改编自韩国作家孔枝泳的同名小说。`,coverMode:`content`,coverUrl:`/md-204/resource/b4/b410ccdcd86936455b9460a9152aaa47.jpg`,showPlayCount:!0,playCountDelta:0,showEpisode:!0},{contentId:`caa2b4eb4eb40de0`,contentName:`再次来寻我`,titleMode:`custom`,title:`再次来寻我`,description:`在宇回到曾经与初恋志勋相遇的303号房,这里即将被拆迁,他在房间里回忆和志勋的点点滴滴,突然被书桌上的电话所吸引,一拿起话筒听到的竟是志勋的声音!在房子主人的同意下,在宇带着电话离开了303室,在回家的途中他发现自己像走在一个陌生的地方,而对面走来的竟是已消失已久的志勋…`,coverMode:`content`,coverUrl:`/md-204/resource/2b/2b43375f2248c1a012847d4507fd21a3.jpg`,showPlayCount:!0,playCountDelta:0,showEpisode:!0}]}}];function C(e,t){let n=String(e||``).split(`/`).filter(Boolean),r=n.findIndex(e=>e===`video`||e===`webview`);return r<0?!1:n[r+1]===t}function w({detailId:f,initialInformation:w,isWebView:T=!1,materialConfig:E}){let D=se(`components.pages.videoDetail`),O=a(),k=ie(),ce=ae(),A=oe(!1),j=k.level,M=Array.isArray(j)?j:typeof j==`string`?[j]:[],N=M.findIndex(e=>e===`episode`),le=N>=0?M[N+1]:M[2],P=Math.max(1,Number(le)||1),[ue,F]=d(`detail-current-series-num-${f}`,P);_(()=>{F(P)},[P,F]);let I=Math.max(1,Number(ue)||1),L=Math.max(0,I-1),{data:R,isPending:z,isFetching:B,isError:V,isSuccess:H}=c(v(()=>[`video-detail`,f],[f]),async()=>f?await r({id:f}):null,{enabled:!!f}),U=v(()=>{let e=R?.data?.video;return!e||typeof e!=`object`?null:{...e,content_type:1,episode_cnt:e.links?.length||0}},[R?.data?.video]),de=w??U??null,[W,G]=d(`detail-information-${f}`,de);_(()=>{!W?.id||A.current||(A.current=!0,i({page_key:`page_video_detail`,page_name:`详情页`}))},[W?.id]);let fe=W?.links?.[L]?.id||``,K=!!f&&!W&&(z||B),q=!f||!!W||V||H,[pe,me]=d(`info-detail-active-tab-${f}`,`video`),[J,Y]=d(`info-detail-comment-add-count-${f}`,0),[X,he]=d(`info-detail-comment-total-${f}`,void 0);_(()=>{!W&&U&&G(U)},[W,U,G]);let Z=g(e=>{G(t=>t&&{...t,...e})},[G]);u(()=>{W?.id&&W.id},[W?.id],`detail-page-report-${f}`),_(()=>{!W||typeof window>`u`||window.sensors?.track?.(`detail_page_view`,{object_id:W.id||f,author_id:W.up_user,object_type:W.content_type,object_category:W.content_type,object_tags:W.tags?.map(e=>e.name),block_id:``,page_source:window.location?.pathname||``})},[f,W]),_(()=>{Y(0)},[fe,Y]),v(()=>(typeof X==`number`?X:0)+J,[J,X]);let ge=g(()=>{},[!1,me]);g(()=>{Y(e=>e+1)},[Y]),_(()=>{},[!1,ge,W?.id,ce]);let Q=g(e=>{let t=Math.max(1,Math.floor(Number(e)||1));if(typeof window>`u`)return;let n=String(W?.id||f||``).trim();if(!n)return;let r=T||window.isWebView===!0,i=`/${r?`webview`:`video`}/${n}/${encodeURIComponent(W?.name||``)}/episode/${t}`,{search:a,hash:o,pathname:c}=window.location,l=`${i}${a}${o}`,u=`${c}${a}${o}`,d=C(c,n);if(u!==l){if(r){let e=W?.links?.[Math.max(0,t-1)],r=s(String(e?.m3u8_url||e?.preview_m3u8_url||``).trim());ee({poster:String(W?.img_y||W?.img_x||W?.preview_images?.[0]||``).trim(),src:r,title:String(W?.title||W?.name||``).trim(),contentId:n,episode:t}),I!==t&&F(t);return}d&&typeof window.history?.replaceState==`function`?(window.history.replaceState(window.history.state,``,l),F(t)):O.replace(l,{scroll:!1});return}I!==t&&F(t)},[I,f,W?.id,W?.img_x,W?.img_y,W?.links,W?.name,W?.preview_images,W?.title,T,O,F]);_(()=>{let e=Array.isArray(W?.links)?W.links.length:0;e<=0||I<=e||Q(1)},[I,Q,W?.links]);let $=W?.status===`1`,{data:_e}=c([l.CHANNEL],()=>n()),ve=e(_e?.data),ye=v(()=>{if(E!==void 0){let e=new Map(S.map(e=>[e.componentName,e]));return E.map(t=>{let n=e.get(t.componentName);return{...n,...t,props:{...n?.props??{},...t.props??{}}}})}return S},[E]),be=v(()=>({information:W??void 0,currentSeriesNum:I,onEpisodeChange:Q,onUpdateInformation:Z,detailId:f,episodeIndex:L,isShow:!0,isWebView:T,isInformationLoading:K,isInformationResolved:q}),[I,f,L,Q,Z,W,K,q,T,!0]),xe=g(e=>{if(!W)return null;let t=m[e.componentName];if(!t)return null;let n=t.clientComponent,r=ne(t,e.props);return r.isValid?b(n,{...r.props}):b(`div`,{children:`组件配置错误`})},[W]);return x(`div`,{className:`w-full min-h-screen bg-bg2 text-text1 ${T?``:`pt-11`}`,children:[!T&&b(`div`,{className:`fixed bg-black top-0 left-0 right-0 z-[1000]`,children:b(p,{data:{list:ve}})}),b(`div`,{className:`mx-auto w-full max-w-[840px] pb-6`,children:x(y,{children:[W&&!$&&b(o,{type:`no-content`,text:D(`videoDetailClient.videoUnavailable`)}),W&&$&&x(y,{children:[!T&&b(re,{isVideo:!0,information:W,episodeIndex:L}),b(`div`,{id:`selectPopupPosition`,className:`w-full`}),!1,x(`div`,{className:t(`w-full`,!1),children:[b(te,{value:be,children:ye.map(e=>b(h,{children:xe(e)},e.id))}),!1]}),!1]}),!W&&b(o,{type:`no-content`,text:D(`videoDetailClient.videoDeleted`)})]})})]})}export{w as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{cn as e}from"../../../utils/cn.mjs";import{pContentGetNewstVideoList as t,pContentGetTopRatedVideoList as n}from"../../../service/generated/client.mjs";import{pContentGetNewstVideoListKey as r,pContentGetTopRatedVideoListKey as i}from"../../../service/generated/tanstack.mjs";import{useRouter as a}from"../../../utils/use-compatible-router.mjs";import{Button as o}from"../../ui/button.mjs";import{Box as s}from"../../ui/box.mjs";import{InfiniteScroll as c}from"../../ui/infinite-scroll.mjs";import{Text as l}from"../../ui/text.mjs";import{usePaginated as u}from"../../../hooks/query/use-query.mjs";import d from"../../../assets/icons/left_arrow.mjs";import{getNextVideoListPageParam as f,resolveNextCursor as p}from"./types.mjs";import{VideoListRecommendItem as m}from"./video-list-recommend-item.mjs";import{VideoListSkeleton as h}from"./video-list-skeleton.mjs";import{useEffect as g,useMemo as _,useState as v}from"react";import{jsx as y,jsxs as b}from"react/jsx-runtime";const x=[];function S({title:S=`列表页`,tags:C=x}){let w=a(),[T,E]=v(`hot`),D=_(()=>({page_size:10,tags:C.length?C:void 0}),[C]),{data:O,fetchNextPage:k,hasNextPage:A,isPending:j,isFetching:M}=u({key:_(()=>T===`hot`?i(D):r(D),[D,T]),queryFn:async e=>{let r={page_size:10,cursor:e||void 0,tags:C.length?C:void 0},i=(T===`hot`?await n(r):await t(r)).data,a=Array.isArray(i?.videos)?i.videos:[];return{list:a,nextCursor:a.length<10?``:p(i)}},getNextPageParam:f,initialPageParam:``,options:{staleTime:0,refetchOnMount:`always`,refetchOnWindowFocus:!1,refetchOnReconnect:!1}}),N=_(()=>O?.pages?.flatMap(e=>e.list)??[],[O?.pages]),P=(O?.pages?.length??0)>0,F=_(()=>P?A??!1:!0,[P,A]),I=N.length===0&&(!P||j||M);g(()=>{typeof window>`u`||window.scrollTo({top:0,behavior:`auto`})},[T]);function L(){w.back()}let R=_(()=>N.map(e=>{let t=e.id??e.mid??``;return y(m,{item:e,href:`/video/${t}/${e.name??``}`},t)}),[N]);return I?y(h,{}):b(s,{as:`main`,className:`min-h-[100dvh] bg-[linear-gradient(180deg,#160320_0%,#2a0a56_100%)] text-white`,children:[b(s,{className:`sticky top-0 z-20 bg-[linear-gradient(180deg,rgba(22,3,32,0.98)_0%,rgba(22,3,32,0.92)_100%)] px-[16px] pb-[12px] pt-[10px] backdrop-blur-[16px]`,children:[b(s,{as:`header`,className:`flex items-center justify-between`,children:[y(o,{type:`button`,variant:`ghost`,size:`icon-sm`,onClick:L,className:`h-[24px] w-[24px] rounded-none p-0 text-white hover:bg-transparent`,children:y(d,{className:`h-[16px] w-[16px]`})}),y(l,{as:`h1`,className:`min-w-0 flex-1 truncate px-[16px] text-center text-[18px] font-medium leading-[22px] text-white`,children:S}),y(s,{className:`h-[24px] w-[24px] shrink-0 opacity-0`,"aria-hidden":!0})]}),b(s,{as:`nav`,className:`mt-[12px] flex gap-[14px]`,children:[y(o,{type:`button`,variant:`ghost`,onClick:()=>E(`hot`),className:e(`h-[28px] min-w-[64px] rounded-[100px] px-[16px] text-[14px] font-normal leading-[20px] text-white`,T===`hot`?`bg-[linear-gradient(90deg,#9756e3_0%,#6c43ee_100%)] shadow-[0_8px_20px_rgba(122,76,255,0.35)] hover:bg-transparent`:`bg-white/20 hover:bg-white/25`),children:`最热`}),y(o,{type:`button`,variant:`ghost`,onClick:()=>E(`latest`),className:e(`h-[28px] min-w-[64px] rounded-[100px] px-[16px] text-[14px] font-normal leading-[20px] text-white`,T===`latest`?`bg-[linear-gradient(90deg,#9756e3_0%,#6c43ee_100%)] shadow-[0_8px_20px_rgba(122,76,255,0.35)] hover:bg-transparent`:`bg-white/20 hover:bg-white/25`),children:`最新`})]})]}),y(c,{loadMore:()=>k().then(()=>void 0),hasMore:F,noMoreText:`没有更多了`,threshold:300,className:`px-[16px] pb-[24px]`,children:y(s,{as:`section`,className:`flex flex-col gap-[16px]`,children:R})},T)]})}export{S as default};
2
+ "use client";import{cn as e}from"../../../utils/cn.mjs";import{pContentGetNewstVideoList as t,pContentGetTopRatedVideoList as n}from"../../../service/generated/client.mjs";import{pContentGetNewstVideoListKey as r,pContentGetTopRatedVideoListKey as i}from"../../../service/generated/tanstack.mjs";import{useRouter as a}from"../../../utils/use-compatible-router.mjs";import{Button as o}from"../../ui/button.mjs";import{Box as s}from"../../ui/box.mjs";import{InfiniteScroll as c}from"../../ui/infinite-scroll.mjs";import{Text as l}from"../../ui/text.mjs";import{usePaginated as u}from"../../../hooks/query/use-query.mjs";import d from"../../../assets/icons/left_arrow.mjs";import{getNextVideoListPageParam as f,resolveNextCursor as p}from"./types.mjs";import{VideoListRecommendItem as m}from"./video-list-recommend-item.mjs";import{VideoListSkeleton as h}from"./video-list-skeleton.mjs";import{useEffect as g,useMemo as _,useState as v}from"react";import{jsx as y,jsxs as b}from"react/jsx-runtime";const x=[];function S({title:S=`列表页`,tags:C=x}){let w=a(),[T,E]=v(`hot`),D=_(()=>({page_size:10,tags:C.length?C:void 0}),[C]),{data:O,fetchNextPage:k,hasNextPage:A,isPending:j,isFetching:M}=u({key:_(()=>T===`hot`?i(D):r(D),[D,T]),queryFn:async e=>{let r={page_size:10,cursor:e||void 0,tags:C.length?C:void 0},i=(T===`hot`?await n(r):await t(r)).data,a=Array.isArray(i?.videos)?i.videos:[];return{list:a,nextCursor:a.length<10?``:p(i)}},getNextPageParam:f,initialPageParam:``,options:{staleTime:0,refetchOnMount:`always`,refetchOnWindowFocus:!1,refetchOnReconnect:!1}}),N=_(()=>O?.pages?.flatMap(e=>e.list)??[],[O?.pages]),P=(O?.pages?.length??0)>0,F=_(()=>P?A??!1:!0,[P,A]),I=N.length===0&&(!P||j||M);g(()=>{typeof window>`u`||window.scrollTo({top:0,behavior:`auto`})},[T]);function L(){w.back()}let R=_(()=>N.map(e=>{let t=e.id??e.mid??``;return y(m,{item:e,href:`/video/${t}/${e.name??``}`},t)}),[N]);return I?y(h,{}):b(s,{as:`main`,className:`min-h-[100dvh] bg-[linear-gradient(180deg,#160320_0%,#2a0a56_100%)] text-white`,children:[b(s,{className:`sticky top-0 z-20 bg-[linear-gradient(180deg,rgba(22,3,32,0.98)_0%,rgba(22,3,32,0.92)_100%)] no-vw-x-16 pb-[12px] pt-[10px] backdrop-blur-[16px]`,children:[b(s,{as:`header`,className:`flex items-center justify-between`,children:[y(o,{type:`button`,variant:`ghost`,size:`icon-sm`,onClick:L,className:`h-[24px] w-[24px] rounded-none p-0 text-white hover:bg-transparent`,children:y(d,{className:`h-[16px] w-[16px]`})}),y(l,{as:`h1`,className:`min-w-0 flex-1 truncate px-[16px] text-center text-[18px] font-medium leading-[22px] text-white`,children:S}),y(s,{className:`h-[24px] w-[24px] shrink-0 opacity-0`,"aria-hidden":!0})]}),b(s,{as:`nav`,className:`mt-[12px] flex gap-[14px]`,children:[y(o,{type:`button`,variant:`ghost`,onClick:()=>E(`hot`),className:e(`h-[28px] min-w-[64px] rounded-[100px] px-[16px] text-[14px] font-normal leading-[20px] text-white`,T===`hot`?`bg-[linear-gradient(90deg,#9756e3_0%,#6c43ee_100%)] shadow-[0_8px_20px_rgba(122,76,255,0.35)] hover:bg-transparent`:`bg-white/20 hover:bg-white/25`),children:`最热`}),y(o,{type:`button`,variant:`ghost`,onClick:()=>E(`latest`),className:e(`h-[28px] min-w-[64px] rounded-[100px] px-[16px] text-[14px] font-normal leading-[20px] text-white`,T===`latest`?`bg-[linear-gradient(90deg,#9756e3_0%,#6c43ee_100%)] shadow-[0_8px_20px_rgba(122,76,255,0.35)] hover:bg-transparent`:`bg-white/20 hover:bg-white/25`),children:`最新`})]})]}),y(c,{loadMore:()=>k().then(()=>void 0),hasMore:F,noMoreText:`没有更多了`,threshold:300,className:`no-vw-x-16 pb-[24px]`,children:y(s,{as:`section`,className:`flex flex-col gap-[16px]`,children:R})},T)]})}export{S as default};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Image as e}from"../../ui/image.mjs";import{Box as t}from"../../ui/box.mjs";import{Text as n}from"../../ui/text.mjs";import r from"../../ui/link.mjs";import{memo as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";function s(e){return e.img_x??e.img_y??``}function c(e){return!Number.isFinite(e)||e==null||e<=0?``:(e>10?e/10:e).toFixed(1)}function l(e){return Array.isArray(e.tags)?e.tags.map(e=>String(e?.name??``).trim()).filter(Boolean).slice(0,5):[]}function u({item:i,href:u=``}){let d=i.name,f=s(i),p=c(i.score),m=l(i);return o(r,{href:u,className:`block cursor-pointer rounded-[16px] border-[0.5px] border-[#ff1eff] bg-[rgba(255,255,255,0.1)] p-4`,"aria-label":d,children:[a(t,{className:`relative aspect-[326/207] w-full overflow-hidden rounded-[8px] bg-[linear-gradient(180deg,#2d1147_0%,#13031f_100%)]`,children:f?a(e,{src:f,alt:d,fill:!0,className:`object-cover`}):null}),o(t,{className:`mt-2 flex flex-col gap-2`,children:[o(t,{className:`flex items-center justify-between gap-3`,children:[a(n,{as:`h3`,className:`min-w-0 flex-1 truncate text-[14px] font-medium leading-normal text-white`,children:d}),p?a(n,{className:`shrink-0 font-mono text-[18px] font-bold leading-5 text-[#ffc039] tabular-nums`,children:p}):null]}),m.length>0?a(t,{className:`flex flex-wrap gap-[6px]`,children:m.map(e=>a(t,{className:`flex h-[18px] shrink-0 items-center justify-center rounded bg-[rgba(217,217,217,0.2)] px-1 py-0.5`,children:a(n,{className:`text-[12px] leading-[14px] text-white`,children:e})},e))}):null]})]})}const d=i(u);d.displayName=`VideoListRecommendItem`;export{d as VideoListRecommendItem};
2
+ "use client";import{Image as e}from"../../ui/image.mjs";import{Box as t}from"../../ui/box.mjs";import{Text as n}from"../../ui/text.mjs";import r from"../../ui/link.mjs";import{memo as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";function s(e){return e.img_x??e.img_y??``}function c(e){return!Number.isFinite(e)||e==null||e<=0?``:(e>10?e/10:e).toFixed(1)}function l(e){return Array.isArray(e.tags)?e.tags.map(e=>String(e?.name??``).trim()).filter(Boolean):[]}function u(e){return String(e.description??``).trim()}function d({item:i,href:d=``}){let f=i.name,p=s(i),m=c(i.score),h=l(i),g=u(i);return o(r,{href:d,className:`block cursor-pointer rounded-[16px] border-[0.5px] border-[#ff1eff] bg-[rgba(255,255,255,0.1)] p-4`,"aria-label":f,children:[a(t,{className:`relative aspect-[326/207] w-full overflow-hidden rounded-[8px] bg-[linear-gradient(180deg,#2d1147_0%,#13031f_100%)]`,children:p?a(e,{src:p,alt:f,fill:!0,className:`object-cover`}):null}),o(t,{className:`mt-2 flex flex-col gap-2`,children:[o(t,{className:`flex items-start justify-between gap-3`,children:[a(n,{as:`h3`,className:`min-w-0 flex-1 truncate text-[18px] font-medium leading-normal text-white`,children:f}),m?a(n,{className:`shrink-0 pt-[1px] font-mono text-[20px] font-bold leading-5 text-[#ffc039] tabular-nums`,children:m}):null]}),h.length>0?a(t,{className:`flex flex-wrap gap-[6px]`,children:h.map(e=>a(t,{className:`flex h-[18px] shrink-0 items-center justify-center rounded bg-[rgba(217,217,217,0.2)] px-1 py-0.5`,children:a(n,{className:`text-[12px] leading-[14px] text-white`,children:e})},e))}):null,g?a(n,{className:`line-clamp-3 text-[14px] leading-6 text-white/50`,children:g}):null]})]})}const f=i(d);f.displayName=`VideoListRecommendItem`;export{f as VideoListRecommendItem};
@@ -1,2 +1,2 @@
1
1
 
2
- "use client";import{Box as e}from"../../ui/box.mjs";import{Skeleton as t}from"../../ui/skeleton.mjs";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({count:i=3}){return r(e,{as:`main`,className:`min-h-[100dvh] bg-[linear-gradient(180deg,#160320_0%,#2a0a56_100%)] text-white`,children:[r(e,{className:`sticky top-0 z-20 bg-[linear-gradient(180deg,rgba(22,3,32,0.98)_0%,rgba(22,3,32,0.92)_100%)] px-[16px] pb-[12px] pt-[10px] backdrop-blur-[16px]`,children:[r(e,{as:`header`,className:`flex items-center justify-between`,children:[n(t,{className:`h-[24px] w-[24px] rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`back-icon-skeleton`}),n(e,{className:`flex flex-1 justify-center px-[16px]`,children:n(t,{className:`h-[22px] w-[96px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-list-title-skeleton`})}),n(e,{className:`h-[24px] w-[24px] shrink-0`})]}),r(e,{as:`nav`,className:`mt-[12px] flex gap-[14px]`,children:[n(t,{className:`h-[28px] w-[64px] rounded-[100px] !bg-[rgba(255,255,255,0.16)]`,"aria-label":`hot-tab-skeleton`}),n(t,{className:`h-[28px] w-[64px] rounded-[100px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`latest-tab-skeleton`})]})]}),n(e,{className:`flex flex-col gap-[16px] px-[16px] pb-[24px]`,children:Array.from({length:i}).map((i,a)=>r(e,{className:`rounded-[16px] border-[0.5px] border-[#ff1eff] bg-[rgba(255,255,255,0.1)] p-4`,children:[n(t,{className:`aspect-[326/207] w-full rounded-[8px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-cover-skeleton`}),r(e,{className:`mt-2 flex flex-col gap-2`,children:[r(e,{className:`flex items-center justify-between gap-3`,children:[n(t,{className:`h-[14px] min-h-[14px] flex-1 rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-title-skeleton`}),n(t,{className:`h-5 w-9 shrink-0 rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-score-skeleton`})]}),r(e,{className:`flex flex-wrap gap-[6px]`,children:[n(t,{className:`h-[18px] w-14 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-1`}),n(t,{className:`h-[18px] w-9 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-2`}),n(t,{className:`h-[18px] w-12 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-3`}),n(t,{className:`h-[18px] w-16 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-4`})]})]})]},`video-list-skeleton-${a}`))})]})}export{i as VideoListSkeleton};
2
+ "use client";import{Box as e}from"../../ui/box.mjs";import{Skeleton as t}from"../../ui/skeleton.mjs";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({count:i=3}){return r(e,{as:`main`,className:`min-h-[100dvh] bg-[linear-gradient(180deg,#160320_0%,#2a0a56_100%)] text-white`,children:[r(e,{className:`sticky top-0 z-20 bg-[linear-gradient(180deg,rgba(22,3,32,0.98)_0%,rgba(22,3,32,0.92)_100%)] no-vw-x-16 pb-[12px] pt-[10px] backdrop-blur-[16px]`,children:[r(e,{as:`header`,className:`flex items-center justify-between`,children:[n(t,{className:`h-[24px] w-[24px] rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`back-icon-skeleton`}),n(e,{className:`flex flex-1 justify-center px-[16px]`,children:n(t,{className:`h-[22px] w-[96px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-list-title-skeleton`})}),n(e,{className:`h-[24px] w-[24px] shrink-0`})]}),r(e,{as:`nav`,className:`mt-[12px] flex gap-[14px]`,children:[n(t,{className:`h-[28px] w-[64px] rounded-[100px] !bg-[rgba(255,255,255,0.16)]`,"aria-label":`hot-tab-skeleton`}),n(t,{className:`h-[28px] w-[64px] rounded-[100px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`latest-tab-skeleton`})]})]}),n(e,{className:`flex flex-col gap-[16px] no-vw-x-16 pb-[24px]`,children:Array.from({length:i}).map((i,a)=>r(e,{className:`rounded-[16px] border-[0.5px] border-[#ff1eff] bg-[rgba(255,255,255,0.1)] p-4`,children:[n(t,{className:`aspect-[326/207] w-full rounded-[8px] !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-cover-skeleton`}),r(e,{className:`mt-2 flex flex-col gap-2`,children:[r(e,{className:`flex items-center justify-between gap-3`,children:[n(t,{className:`h-[14px] min-h-[14px] flex-1 rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-title-skeleton`}),n(t,{className:`h-5 w-9 shrink-0 rounded-sm !bg-[rgba(255,255,255,0.12)]`,"aria-label":`video-score-skeleton`})]}),r(e,{className:`flex flex-wrap gap-[6px]`,children:[n(t,{className:`h-[18px] w-14 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-1`}),n(t,{className:`h-[18px] w-9 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-2`}),n(t,{className:`h-[18px] w-12 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-3`}),n(t,{className:`h-[18px] w-16 shrink-0 rounded !bg-[rgba(217,217,217,0.2)]`,"aria-label":`video-tag-skeleton-4`})]})]})]},`video-list-skeleton-${a}`))})]})}export{i as VideoListSkeleton};
@@ -6,7 +6,7 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
6
6
  //#region components/ui/badge.d.ts
7
7
  /** badgeVariants 工具定义。 */
8
8
  declare const badgeVariants: (props?: ({
9
- variant?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
9
+ variant?: "link" | "default" | "outline" | "secondary" | "ghost" | "destructive" | null | undefined;
10
10
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
11
11
  /** Badge 组件。 */
12
12
  declare function Badge({
@@ -7,8 +7,8 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
7
7
  //#region components/ui/button.d.ts
8
8
  /** buttonVariants 工具定义。 */
9
9
  declare const buttonVariants: (props?: ({
10
- variant?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
11
- size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
10
+ variant?: "link" | "default" | "outline" | "secondary" | "ghost" | "destructive" | null | undefined;
11
+ size?: "icon" | "xs" | "sm" | "icon-xs" | "icon-sm" | "default" | "lg" | "icon-lg" | null | undefined;
12
12
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
13
13
  /** Button 组件属性。 */
14
14
  type ButtonProps = Button.Props & VariantProps<typeof buttonVariants> & {
@@ -34,7 +34,7 @@ type EmptyStateProps = React.ComponentProps<'div'> & {
34
34
  };
35
35
  /** emptyMediaVariants 工具定义。 */
36
36
  declare const emptyMediaVariants: (props?: ({
37
- variant?: "default" | "icon" | null | undefined;
37
+ variant?: "icon" | "default" | null | undefined;
38
38
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
39
39
  /** EmptyMedia 组件。 */
40
40
  declare function EmptyMedia({
@@ -70,7 +70,7 @@ declare function ItemSeparator({
70
70
  /** itemVariants 工具定义。 */
71
71
  declare const itemVariants: (props?: ({
72
72
  variant?: "default" | "outline" | "muted" | null | undefined;
73
- size?: "default" | "xs" | "sm" | null | undefined;
73
+ size?: "xs" | "sm" | "default" | null | undefined;
74
74
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
75
75
  /** Item 组件。 */
76
76
  declare function Item({
@@ -82,7 +82,7 @@ declare function Item({
82
82
  }: ItemProps): React.ReactElement;
83
83
  /** itemMediaVariants 工具定义。 */
84
84
  declare const itemMediaVariants: (props?: ({
85
- variant?: "default" | "icon" | "image" | null | undefined;
85
+ variant?: "icon" | "default" | "image" | null | undefined;
86
86
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
87
87
  /** ItemMedia 组件。 */
88
88
  declare function ItemMedia({
@@ -8,7 +8,7 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
8
8
  /** toggleVariants 工具定义。 */
9
9
  declare const toggleVariants: (props?: ({
10
10
  variant?: "default" | "outline" | null | undefined;
11
- size?: "default" | "sm" | "lg" | null | undefined;
11
+ size?: "sm" | "default" | "lg" | null | undefined;
12
12
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
13
13
  /** Toggle 组件属性。 */
14
14
  type ToggleProps = Toggle.Props & VariantProps<typeof toggleVariants> & {
@@ -1,2 +1,2 @@
1
1
 
2
- import{useUserStore as e}from"../store/modules/user-store.mjs";import{gCommunityGetUserCollections as t,pCommunityAddContentToCollection as n,pInteractionBatchQueryContentInteractions as r,pInteractionCancelDislike as i,pInteractionCancelLike as a,pInteractionDislike as o,pInteractionLike as s,pInteractionRemoveCollect as c}from"../service/generated/client.mjs";import{useRouter as l}from"../utils/use-compatible-router.mjs";import{useLoginModalStore as u}from"../store/modules/login-modal-store.mjs";import d from"../components/common/collection-popup/index.mjs";import f from"../components/common/share-popup/share-popup.mjs";import{useInteractionAnimation as p}from"./use-interaction-animation.mjs";import{toast as m}from"sonner";import{useCallback as h,useEffect as g,useMemo as _,useState as v}from"react";import{usePathname as y,useSearchParams as b}from"next/navigation";function x(e){let t=Number(e);if(Number.isFinite(t))return t===0?1:t}function S(){let t=e.getState().userId||e.getState().userInfo?.userId;if(!t){let{open:e}=u.getState();return e(),null}return t}async function C(t,n){try{let i=e.getState().userId||e.getState().userInfo?.userId;if(!i)return console.warn(`用户未登录,无法查询交互状态`),null;let a=await r({app_id:0,user_id:i,content_ids:t,content_type:n});return a.code===0?a.data:(console.error(`查询交互状态失败:`,a.message),null)}catch(e){return console.error(`查询交互状态异常:`,e),null}}async function ee(e,t){try{let n=S();if(!n)return{success:!1,message:`请先登录`};let r=await s({user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`点赞失败`}}catch(e){return console.error(`点赞失败:`,e),{success:!1,message:`点赞失败`}}}async function w(e,t){try{let n=S();if(!n)return{success:!1,message:`请先登录`};let r=await a({user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`取消点赞失败`}}catch(e){return console.error(`取消点赞失败:`,e),{success:!1,message:`取消点赞失败`}}}async function T(e,t){try{let n=S();if(!n)return{success:!1,message:`请先登录`};let r=await o({app_id:0,user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`点踩失败`}}catch(e){return console.error(`点踩异常:`,e),{success:!1,message:`点踩异常`}}}async function E(e,t){try{let n=S();if(!n)return{success:!1,message:`请先登录`};let r=await i({app_id:0,user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`取消点踩失败`}}catch(e){return console.error(`取消点踩异常:`,e),{success:!1,message:`取消点踩异常`}}}function D({id:r,isLike:i,isDislike:a,isCollect:o,likeCnt:s,dislikeCnt:S,contentType:C,animationClasses:D,copyUrl:O,prefetchDefaultCollection:k=!1}){let{isLogin:A,userInfo:j,userId:M}=e(),N=l(),P=y(),F=b()?.toString()||``,[I,L]=v(void 0),R=D?.like||`like-shake-animation`,z=D?.dislike||`dislike-shake-animation`,B=_(()=>String(M||j?.userId||``),[M,j?.userId]);g(()=>{L(void 0)},[B]);let[V,H]=v(!1),[U,W]=v(!1);g(()=>{f.clear(),d.clear()},[P,F]),g(()=>()=>{f.clear(),d.clear()},[]);let G=h(async()=>{if(!A||!B)return null;try{let e=await t({page:1,page_size:40});if(e.code!==0)return L(null),null;let n=(e.data?.data?.collections??[]).find(e=>e?.is_default),r=(typeof n?.title==`string`?n.title.trim():``)||null;return L(r),r}catch(e){return console.error(`获取默认收藏夹失败:`,e),L(null),null}},[A,B]);g(()=>{!A||!B||k&&I===void 0&&G()},[I,G,A,k,B]);let K=h(()=>{if(!A){let{open:e}=u.getState();return e(),!1}return!0},[A]),q=p(),J=p(),Y=h(async e=>{try{return e?await ee(r,C):await w(r,C)}catch(e){return console.error(`点赞操作失败`,e),{success:!1,message:`点赞操作失败`}}},[r,C]),X=h(async()=>{if(!(!K()||V)){H(!0);try{let e=!i;e&&q.trigger(R);let t={isLike:e,likeCnt:Math.max(0,s+(e?1:-1))};e&&a&&(t.isDislike=!1,t.dislikeCnt=Math.max(0,S-1));let n=await Y(e);if(!n.success){m.error(n.message||`点赞失败`);return}return t}finally{H(!1)}}},[q,i,a,s,S,Y,K,V,R]),Z=h(async e=>{try{return e?await T(r,C):await E(r,C)}catch(e){return console.error(`点踩操作失败`,e),{success:!1,message:`点踩操作失败`}}},[r,C]),te=h(async()=>{if(!(!K()||U)){W(!0);try{let e=!a;e&&J.trigger(z);let t={isDislike:e,dislikeCnt:Math.max(0,S+(e?1:-1))};e&&i&&(t.isLike=!1,t.likeCnt=Math.max(0,s-1));let n=await Z(e);if(!n.success){m.error(n.message||`操作失败`);return}return t}finally{W(!1)}}},[J,i,a,s,S,Z,K,U,z]),Q=h(async({currentId:e,isCancel:t,collectionIds:r})=>{try{if(t){let t=String(M||j?.userId||``);if(!t)return{success:!1};let n=await c({app_id:0,user_id:t,content_id:e,content_type:C});return n.code===0?{success:!0}:{success:!1,message:n.message}}if(!String(M||j?.userId||``))return{success:!1};let i=r?.[0],a=x(C),o=await n({...i?{collection_id:i}:{},content_id:e,...a===void 0?{}:{source_type:a}});return o.code===0?{success:!0}:{success:!1,message:o.message}}catch(e){return console.error(`取消收藏操作失败`,e),{success:!1,message:e?.message}}},[M,j?.userId,C]),$=h(({currentCollect:e,onUpdate:t})=>K()?(e?(async()=>{let e=await Q({currentId:r,isCancel:!0});if(!e?.success){m.error(e?.message||`操作失败`);return}t({isCollect:!1})})():(f.clear(),d.show({toCreateCollection:()=>{N.push(`/collection/create?information_id=${r}`)},onCollect:e=>{(async()=>{let n=await Q({currentId:r,isCancel:!1,collectionIds:[e]});if(!n?.success){m.error(n?.message||`操作失败`);return}t({isCollect:!0})})()}})),!0):!1,[r,N,K,Q]),ne=h(async({currentCollect:e,onUpdate:t})=>{if(!K())return;if(e){let e=await Q({currentId:r,isCancel:!0});return e?.success?(t({isCollect:!1}),{success:!0,isCollect:!1}):{success:!1,message:e?.message}}f.clear(),d.clear();let n=await Q({currentId:r,isCancel:!1});if(!n?.success)return{success:!1,message:n?.message};let i=I===void 0?await G():I;return t({isCollect:!0}),{success:!0,isCollect:!0,collectionTitle:i||void 0}},[I,G,Q,r,K]);return{likeAnimation:q,dislikeAnimation:J,handleLikeOperate:X,handleDislikeOperate:te,handleShareOperate:h((e,t)=>{let n=typeof t==`string`?{otherId:t}:t,i=n?.otherId||r,a=n?.shareUrl;f.show({copyUrl:O,data:{id:r,isCollect:o,parentId:i},...a?{shareUrl:a}:{},onCollect:t=>{$({currentCollect:t,onUpdate:e})}})},[r,o,$,O]),handleToCollectionOperate:$,handleDefaultCollectionOperate:ne}}export{C as batchQueryContentInteractions,D as useContentOperate};
2
+ import{useUserStore as e}from"../store/modules/user-store.mjs";import{gCommunityGetUserCollections as t,pCommunityAddContentToCollection as n,pInteractionBatchQueryContentInteractions as r,pInteractionCancelDislike as i,pInteractionCancelLike as a,pInteractionDislike as o,pInteractionLike as s,pInteractionRemoveCollect as c}from"../service/generated/client.mjs";import{useRouter as l}from"../utils/use-compatible-router.mjs";import{useLoginModalStore as u}from"../store/modules/login-modal-store.mjs";import d from"../components/common/collection-popup/index.mjs";import f from"../components/common/share-popup/share-popup.mjs";import{useInteractionAnimation as p}from"./use-interaction-animation.mjs";import{toast as m}from"sonner";import{usePathname as h,useSearchParams as g}from"next/navigation";import{useCallback as _,useEffect as v,useMemo as y,useState as b}from"react";function x(e){let t=Number(e);if(Number.isFinite(t))return t===0?1:t}function S(){let t=e.getState().userId||e.getState().userInfo?.userId;if(!t){let{open:e}=u.getState();return e(),null}return t}async function C(t,n){try{let i=e.getState().userId||e.getState().userInfo?.userId;if(!i)return console.warn(`用户未登录,无法查询交互状态`),null;let a=await r({app_id:0,user_id:i,content_ids:t,content_type:n});return a.code===0?a.data:(console.error(`查询交互状态失败:`,a.message),null)}catch(e){return console.error(`查询交互状态异常:`,e),null}}async function ee(e,t){try{let n=S();if(!n)return{success:!1,message:`请先登录`};let r=await s({user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`点赞失败`}}catch(e){return console.error(`点赞失败:`,e),{success:!1,message:`点赞失败`}}}async function w(e,t){try{let n=S();if(!n)return{success:!1,message:`请先登录`};let r=await a({user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`取消点赞失败`}}catch(e){return console.error(`取消点赞失败:`,e),{success:!1,message:`取消点赞失败`}}}async function T(e,t){try{let n=S();if(!n)return{success:!1,message:`请先登录`};let r=await o({app_id:0,user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`点踩失败`}}catch(e){return console.error(`点踩异常:`,e),{success:!1,message:`点踩异常`}}}async function E(e,t){try{let n=S();if(!n)return{success:!1,message:`请先登录`};let r=await i({app_id:0,user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`取消点踩失败`}}catch(e){return console.error(`取消点踩异常:`,e),{success:!1,message:`取消点踩异常`}}}function D({id:r,isLike:i,isDislike:a,isCollect:o,likeCnt:s,dislikeCnt:S,contentType:C,animationClasses:D,copyUrl:O,prefetchDefaultCollection:k=!1}){let{isLogin:A,userInfo:j,userId:M}=e(),N=l(),P=h(),F=g()?.toString()||``,[I,L]=b(void 0),R=D?.like||`like-shake-animation`,z=D?.dislike||`dislike-shake-animation`,B=y(()=>String(M||j?.userId||``),[M,j?.userId]);v(()=>{L(void 0)},[B]);let[V,H]=b(!1),[U,W]=b(!1);v(()=>{f.clear(),d.clear()},[P,F]),v(()=>()=>{f.clear(),d.clear()},[]);let G=_(async()=>{if(!A||!B)return null;try{let e=await t({page:1,page_size:40});if(e.code!==0)return L(null),null;let n=(e.data?.data?.collections??[]).find(e=>e?.is_default),r=(typeof n?.title==`string`?n.title.trim():``)||null;return L(r),r}catch(e){return console.error(`获取默认收藏夹失败:`,e),L(null),null}},[A,B]);v(()=>{!A||!B||k&&I===void 0&&G()},[I,G,A,k,B]);let K=_(()=>{if(!A){let{open:e}=u.getState();return e(),!1}return!0},[A]),q=p(),J=p(),Y=_(async e=>{try{return e?await ee(r,C):await w(r,C)}catch(e){return console.error(`点赞操作失败`,e),{success:!1,message:`点赞操作失败`}}},[r,C]),X=_(async()=>{if(!(!K()||V)){H(!0);try{let e=!i;e&&q.trigger(R);let t={isLike:e,likeCnt:Math.max(0,s+(e?1:-1))};e&&a&&(t.isDislike=!1,t.dislikeCnt=Math.max(0,S-1));let n=await Y(e);if(!n.success){m.error(n.message||`点赞失败`);return}return t}finally{H(!1)}}},[q,i,a,s,S,Y,K,V,R]),Z=_(async e=>{try{return e?await T(r,C):await E(r,C)}catch(e){return console.error(`点踩操作失败`,e),{success:!1,message:`点踩操作失败`}}},[r,C]),te=_(async()=>{if(!(!K()||U)){W(!0);try{let e=!a;e&&J.trigger(z);let t={isDislike:e,dislikeCnt:Math.max(0,S+(e?1:-1))};e&&i&&(t.isLike=!1,t.likeCnt=Math.max(0,s-1));let n=await Z(e);if(!n.success){m.error(n.message||`操作失败`);return}return t}finally{W(!1)}}},[J,i,a,s,S,Z,K,U,z]),Q=_(async({currentId:e,isCancel:t,collectionIds:r})=>{try{if(t){let t=String(M||j?.userId||``);if(!t)return{success:!1};let n=await c({app_id:0,user_id:t,content_id:e,content_type:C});return n.code===0?{success:!0}:{success:!1,message:n.message}}if(!String(M||j?.userId||``))return{success:!1};let i=r?.[0],a=x(C),o=await n({...i?{collection_id:i}:{},content_id:e,...a===void 0?{}:{source_type:a}});return o.code===0?{success:!0}:{success:!1,message:o.message}}catch(e){return console.error(`取消收藏操作失败`,e),{success:!1,message:e?.message}}},[M,j?.userId,C]),$=_(({currentCollect:e,onUpdate:t})=>K()?(e?(async()=>{let e=await Q({currentId:r,isCancel:!0});if(!e?.success){m.error(e?.message||`操作失败`);return}t({isCollect:!1})})():(f.clear(),d.show({toCreateCollection:()=>{N.push(`/collection/create?information_id=${r}`)},onCollect:e=>{(async()=>{let n=await Q({currentId:r,isCancel:!1,collectionIds:[e]});if(!n?.success){m.error(n?.message||`操作失败`);return}t({isCollect:!0})})()}})),!0):!1,[r,N,K,Q]),ne=_(async({currentCollect:e,onUpdate:t})=>{if(!K())return;if(e){let e=await Q({currentId:r,isCancel:!0});return e?.success?(t({isCollect:!1}),{success:!0,isCollect:!1}):{success:!1,message:e?.message}}f.clear(),d.clear();let n=await Q({currentId:r,isCancel:!1});if(!n?.success)return{success:!1,message:n?.message};let i=I===void 0?await G():I;return t({isCollect:!0}),{success:!0,isCollect:!0,collectionTitle:i||void 0}},[I,G,Q,r,K]);return{likeAnimation:q,dislikeAnimation:J,handleLikeOperate:X,handleDislikeOperate:te,handleShareOperate:_((e,t)=>{let n=typeof t==`string`?{otherId:t}:t,i=n?.otherId||r,a=n?.shareUrl;f.show({copyUrl:O,data:{id:r,isCollect:o,parentId:i},...a?{shareUrl:a}:{},onCollect:t=>{$({currentCollect:t,onUpdate:e})}})},[r,o,$,O]),handleToCollectionOperate:$,handleDefaultCollectionOperate:ne}}export{C as batchQueryContentInteractions,D as useContentOperate};
@@ -1,4 +1,4 @@
1
1
 
2
2
  var e={components:{biz:{basics:{fullscreenFeed:{runtime:{bottomInfo:{collapse:`Collapse`,expand:`Expand`,nextItem:`Next`,seriesAction:`Episodes · {title}`,seriesActionWithEpisode:`Episodes · {title} {episodeName}`},commentModal:{comment:`Comments`},userAction:{collectAction:`Collect`,commentAction:`Comment`,followFailed:`Follow failed`,like:`Like`,likeAction:`Like`,loginRequired:`Please log in first`,shareAction:`Share`},videoSlide:{watchFullscreen:`Watch full screen`}}}},business:{comment:{commentInput:{cannotSelectVideoWhenImageSelected:`Cannot select a video after choosing images`,dragFileNotSupported:`Drag-and-drop images/files is not supported. Please use the upload button below`,image:`Pictures`,imageUploadFailed:`Image upload failed`,partialImageUploadFailed:`Some images failed to upload`,pasteFileNotSupported:`Pasting images/files is not supported. Please use the upload button below`,placeholder:`Say something...`,publishCommentFailed:`Failed to publish comment`,publishDefault:`Publish`,publishSuccess:`Published successfully`,publishing:`Publishing...`,video:`Video`,videoUploadFailed:`Video upload failed`},commentItem:{contentInReview:`Content in review`,dislike:`Dislike`,like:`Like`,reply:`Reply`,replyCount:`{count} replies`},commentList:{dislikeHint:`Already disliked`,emptyPrompt:`No comments yet. Be the first one!`,fetchCommentsFailed:`Failed to fetch comments`,invalidReplyTarget:`Invalid reply target`,loading:`Loading...`,loginRequired:`Please log in first`,noMore:`No more`,publishCommentFailed:`Failed to publish comment`,publishReplyFailed:`Failed to publish reply`,viewMore:`View more`},replyDetail:{commentDetail:`Comment details`,dislike:`Dislike`,dislikeHint:`Already disliked`,fetchRepliesFailed:`Failed to fetch replies`,follow:`Follow`,followFailed:`Failed to follow`,followed:`Following`,invalidReplyTarget:`Invalid reply target`,like:`Like`,loginRequired:`Please log in first`,publishReplyFailed:`Failed to publish reply`,reply:`Reply`,underReview:`Content in review`,unfollowFailed:`Failed to unfollow`}},contact:{contactList:{myFollowing:`Following`,noFollowingUsers:`You are not following any users yet`,noMore:`No more`,noSearchResult:`No results found`},contactSearch:{cancel:`Cancel`,close:`Close`,placeholder:`Search users you want to @`}},detail:{detailFollowAction:{follow:`Follow`,following:`Following`},detailGuessLike:{title:`Guess you like it`},detailIntroduction:{collapse:`Collapse`,expand:`Expand`,score:`Score`},detailOperate:{collectAdded:`Added`,collectFailed:`Failed to collect`,collection:`Collection`,defaultCollection:`Default Collection`,like:`Like`,likeFailed:`Like failed`,likeSuccess:`Liked`,modifyCollection:`Change`,modifyCollectionSuccess:`Collection updated`,operateFailed:`Operation failed, please try again`,share:`Bagikan`,uncollectSuccess:`Removed from collection`,unlikeSuccess:`Like removed`},detailPopularComments:{emptyPrompt:`Looking forward to your first comment`,like:`Like`,mediaPlaceholder:`[Image/Video]`,popularComments:`Pop comments`},detailTabs:{discussion:`DISCUSSION`,video:`Video`},postRecommendList:{title:`Related Posts`},videoHero:{coverAlt:`Video player cover`,noVideos:`No videos available`}},fullscreenFeed:{variants:{fullscreenVideoFeed:{runtime:{client:{contentLoading:`Loading content...`}}}}},imageTextRecommend:{allEpisodes:`All {count} episodes`,defaultTitle:`Recommended Videos`,noCover:`No cover`,updatedTo:`Updated to {count} episodes`},marquee:{noticeAlt:`Notice`},navBar:{variants:{basicNavBar:{runtime:{channelFilterDialog:{add:`Add`,allAddedTo:`All have been added to`,allChannels:`All channels`,delete:`Delete`,moreChannels:`More channels`,myChannels:`My channels`,resetDefault:`Reset to default`},moreChannelEntry:`Other`}}}},searchHistory:{clear:`Clear`,clearAllHistory:`Delete all history`,confirmClearDescription:`Are you sure you want to delete all search history?`,defaultTitle:`Search History`,mockHistory1:`Sample history 1`,mockHistory2:`Sample history 2`,mockHistory3:`Sample history 3`},textRecommend:{defaultTitle:`Recommended search`,refreshBatch:`Refresh`}}},common:{blockedDialog:{contactSupport:`Contact Support`,description:`Due to: {remark}, your account has been restricted from logging in.
3
3
  Unblock time: {unblockTime}
4
- If this was not you, please contact support or file an appeal.`,gotIt:`Got it`,remarkDefault:`Abnormal behavior detected`,title:`Account Restricted`,unblockTimePermanent:`Permanent`},collectionPopup:{collectSuccess:`Added to collection`,coverAlt:`Cover image`,createCollection:`Create Collection`,createCollectionHint:`to create your collection.`,createModalAction:`Confirm`,createModalTitle:`New Collection`,favoriteToCollectionTitle:`Favorite to Collection`,newCollection:`New`,noCollections:`No collections yet`,postsCountSuffix:`Posts`,selectTitle:`Select Collection`,updateSuccess:`Collection updated`},debugLocaleSwitcher:{current:`Current`,languageDebugging:`Language Debugging`},deleteConfirmDialog:{cancel:`Cancel`,confirm:`Delete`,description:`This action cannot be undone.`},followButton:{follow:`Follow`,followFailed:`Failed to follow`,following:`Following`,loginFailed:`Login failed`,loginRequired:`Please log in first`,unfollowConfirmDialog:{cancel:`cancel`,confirm:`OK`,confirmUnfollow:`Are you sure you want to unfollow`},unfollowFailed:`Failed to unfollow`},imageCropModal:{cancel:`Cancel`,confirm:`Confirm`,processing:`Processing...`},infoCard:{cardBottom:{comment:`Comment`,dislike:`Dislike`,like:`Like`,share:`Share`}},list:{collectionList:{collectionListItem:{contentCountSuffix:`content`,movieLabel:`Movie`}}},photoGrid:{episodeLoading:`Episode Loading`,missingEpisode:`Missing valid episode`,noEpisodes:`No episodes available`},picker:{genderPicker:{cancel:`Cancel`,confirm:`Confirm`,options:{female:`Female`,male:`Male`,secret:`Secret`},title:`Select Gender`},pickerDrawer:{cancel:`Cancel`,confirm:`Confirm`,title:`Please Select`}},seriesEpisodes:{compactTotal:`{total} episodes`,completedSeriesTotal:`Completed series: {total} episodes`,episodeLabel:`Episode {episode}`,episodeNotFound:`Episode not found`,episodeSwitchFailed:`Failed to switch episode`,episodeSwitching:`Switching...`,episodeTitle:`Episode title`,ongoingSeriesTotal:`Ongoing series: {total} episodes`,ongoingSeriesUpdatedTo:`Ongoing series: updated to {total} episodes`,selectorTitle:`Episodes`,singleContent:`Single episode`},sharePopup:{shareContent:{copyFailed:`Copy failed`,copyShareLink:`Copy link`,copySuccess:`Copied`,shareHint:`Can paste a link to share with friends`,shareLinksTitle:`Share Links`},shareDrawer:{cancel:`Cancel`,collectionLabel:`Collection`,label:`Uncollect`,moments:`Moments`,wechat:`WeChat`,wechatFriend:`WeChat Friend`}},skeleton:{loading:`Loading`},title:`Are you sure you want to delete this content?`},pages:{collectionAdd:{page:{collectionNotFound:`Collection not found`,done:`Done`,emptyPublish:`No posts available to add`,selectPostFirst:`Please select posts first`,submitFailed:`Add failed, please try again later`,submitSuccess:`Added successfully`,submitting:`Adding...`,title:`Add posts to collection`,userNotFound:`User not found`}},collectionCreate:{form:{addCover:`Add cover`,clear:`Clear`,collectionNotFound:`Collection not found`,coverAlt:`Collection cover`,coverLabel:`Cover`,coverUploadFailed:`Failed to upload cover`,create:`Create`,createFailed:`Create failed`,createSuccess:`Created successfully`,createTitle:`Create Collection`,creating:`Creating...`,descriptionLabel:`Description`,descriptionPlaceholder:`Enter collection description`,descriptionRequired:`Please enter collection description`,editTitle:`Edit Collection`,label:`Name`,save:`Save`,saveFailed:`Save failed`,saveSuccess:`Saved successfully`,saving:`Saving...`,signatureLabel:`Description`,titlePlaceholder:`Please enter collection title`,titleRequired:`Please enter collection title`,uploading:`Uploading...`}},collectionDetail:{components:{collectionDetailCard:{collectedInLabel:`Collected in:`}},detail:{add:`Add Content`,batchRemoveVideosConfirmTitle:`Remove selected content from this collection?`,cancel:`Cancel`,collectionManageTitle:`Collection Management`,contentCountSuffix:`Section Contents`,coverAlt:`Collection cover`,defaultCollectionDeleteNotSupported:`Default collection cannot be deleted`,defaultTitle:`Collection`,delete:`Delete`,deleteCollection:`Delete collection`,deleteFailed:`Delete failed`,deleteSuccess:`Collection deleted`,deleting:`Deleting...`,done:`Done`,editCollection:`Edit Collection`,emptyContent:`No content yet`,manageCollection:`Manage Collection`,operationFailed:`Operation failed, please try again later`,ownerAvatarAlt:`Collection owner`,pleaseLogin:`Please log in first`,selectAll:`Select all`,subscribe:`Subscribe`,subscribeOperateFailed:`Subscription action failed`,subscribeProcessing:`Processing...`,subscribeSuccess:`Subscribed successfully`,subscribed:`Subscribed`,uncollectFailed:`Failed to remove from collection`,uncollectSuccess:`Removed from collection`,unsubscribeSuccess:`Unsubscribed`,updatedSuffix:`Update`}},edit:{page:{avatarUpdateSuccess:`Updated successfully`,avatarUploadFailed:`Failed to upload avatar. Please try again later.`,avatarUploading:`Uploading...`,clickToChangeAvatar:`Tap to change avatar`,displayIdLabel:`Display ID`,editBlockedWhileSaving:`Profile is being saved. Please wait before editing other fields.`,genderFemale:`Female`,genderLabel:`Gender`,genderMale:`Male`,genderSecret:`Private`,genderSelect:`Please select`,genderUpdateSuccess:`Gender updated successfully`,imageTypeInvalid:`Only JPG/JPEG/PNG formats are supported`,label:`Nickname`,loading:`Loading`,nicknameInvalidChars:`Nickname only supports _, - and .`,nicknamePlaceholder:`Enter your nickname`,nicknameRequired:`Please enter a nickname`,nicknameTooShort:`Nickname must be at least 2 characters`,nicknameUpdateSuccess:`Nickname updated successfully`,save:`Save`,saveFailed:`Save failed. Please try again later.`,saveSuccess:`Saved successfully`,savingInProgress:`Saving, please wait.`,signatureLabel:`Signature`,signaturePlaceholder:`Enter your bio`,signatureTooShort:`Bio must be at least 2 characters`,signatureUpdateSuccess:`Bio updated successfully`,submit:`Submit`,title:`Edit profile`,updateFailed:`Update failed. Please try again later.`,userNotFound:`User info not found`}},feedSeries:{feedSeriesClient:{episodeLoading:`Episode Loading`,episodeSelectorTitle:`Episodes`,missingEpisode:`Missing valid episode`,noEpisodes:`No episodes available`},page:{videoLoading:`Loading video...`}},feedback:{components:{feedbackForm:{addScreenshot:`Add screenshot`,alt:`Screenshot of feedback`,contactLabel:`Contact`,contentMinLength:`Problem description must be at least 4 characters.`,delete:`Delete`,imageTypeInvalid:`Only JPG/JPEG/PNG formats are supported`,label:`Feedback content`,loading:`Submitting...`,message:`Update failed, please try again later.`,missingContact:`Enter your contact information.`,missingFeedback:`Please enter your feedback`,missingScreenshot:`Please upload a screenshot`,optional:`Optional`,placeholder:`obtain SMS verification code`,placeholder1_6d0242:`Please enter your email or phone number so we can resolve your issue.`,screenshotHint:`You can upload up to 3 screenshots to help us identify the issue faster.`,screenshotLabel:`Upload Screenshot`,screenshotUploadFailed:`Screenshot upload failed, please try again later`,submit:`SUBMIT`,submitsuccess:`Feedback submitted successfully. We will resolve it as soon as possible.`,title:`Feedback`,uploading:`UPLOADING...`}}},follow:{components:{followButton:{follow:`Follow`,following:`Following`},interactionTabs:{fans:`Fans`,follow:`Follow`},userList:{follow:`Follow`,followBack:`Follow back`,followNow:`Follow now`,noFans:`No fans yet`,noFollowedUsers:`Not following any users`}},pages:{fans:{privateListUnavailable:`This fan list is not publicly available`},followed:{privateListUnavailable:`This following list is not publicly available`}}},fullscreenFeed:{page:{episodeSelectorTitle:`Episodes`,missingParams:`Missing testimonial bit or episode parameter`}},login:{forgot:{back:`Back`,emailPlaceholder:`Enter your email`,getCode:`Get verification code`,loginLink:`Remembered your password? Log in`,or:`or`,sendFailed:`Failed to send, please try again later`,sending:`Sending...`,title:`Forgot your password?`},index:{loginFailed:`Login failed. Please try again later.`,loginSuccess:`Logged in successfully`},loginClient:{agreeToTerms:`I have read and agree to the Terms of Service and Privacy Policy`,agreeToTermsPrefix:`I have read and agree to the `,and:` and `,close:`Close`,emailPlaceholder:`Enter your email`,forgotPassword:`Forgot Password`,hidePassword:`Hide password`,loggingIn:`Logging in...`,login:`Log in`,noAccount:`No account? `,passwordPlaceholder:`Enter your password`,privacyPolicy:`Privacy Policy`,registerLink:`Sign up`,showPassword:`Show password`,subtitle:`Sign up or log in to discover more great videos`,title:`Welcome 👋`,userAgreement:`Terms of Service`},password:{back:`Back`,confirmModify:`Confirm changes`,confirmPasswordPlaceholder:`Re-enter your password`,confirmReset:`Confirm reset`,passwordInvalidCharacters:`Use only letters, numbers, and supported special characters`,passwordNeedTwoTypes:`Include at least 2 character types (upper/lower/number/special)`,passwordPlaceholder:`Enter a password (8-32 characters)`,passwordSetSuccess:`Password updated`,passwordTooLong:`Password must be no more than 32 characters`,passwordTooShort:`Password must be at least 8 characters`,passwordsNotMatch:`Passwords do not match`,register:`Register`,setLoginPassword:`Set a login password`,setNewPassword:`Set a new password`,submitFailed:`Failed to submit. Please try again later.`,submitting:`Submitting...`},register:{back:`Back`,emailPlaceholder:`Enter your email`,getCode:`Sign up`,hasAccount:`Already have an account? `,invalidEmail:`Please enter a valid email`,loginLink:`Log in`,sendFailed:`Failed to send`,sending:`Sending...`,title:`Create your account`},resetPassword:{back:`Back`,codePlaceholder:`Enter the verification code`,passwordRuleHint:`Use 8-32 characters and include at least 2 types (upper/lower/number/special)`,resend:`Resend`,sendCode:`Send code`,sendFailed:`Failed to send`,title:`Reset password`,verifyEmail:`Verify email`,verifyFailed:`Verification failed. Please try again later.`,verifyHint:`Verify your identity`,verifyViaEmail:`Verify via email`,verifying:`Verifying...`},verify:{back:`Back`,invalidCode:`Invalid verification code`,nextStep:`Submit`,resend:`Resend`,resendCountdown:`Resend ({seconds}s)`,sentTo:`Sent to`,title:`Enter the verification code`,verifying:`Submitting...`}},postDetail:{postDetailClient:{comment:`Comments`,postDeleted:`This post has been deleted`,postOffline:`This post is no longer available`,reactions:`Reactions`}},profile:{client:{collect:`Collect`,collectionNotPublic:`This collection is private`,editProfile:`Edit profile`,exploreAdventures:`Explore amazing adventures.`,follow:`Follow`,followFailed:`Follow failed`,followSuccess:`Followed successfully`,followed:`Following`,history:`History`,imageTooLarge:`The image is too large. Please choose one smaller than 5MB.`,imageTypeInvalid:`Only JPG/JPEG/PNG formats are supported`,like:`Like`,likeNotPublic:`Likes are private`,loginNow:`Log in`,loginRequiredForUpload:`Please log in and try again.`,loginToSeeMoreVideos:`Log in to see more great videos`,loginToView:`Please log in to view`,mediaUpdateSuccess:`Updated successfully`,message:`Message`,operationFailed:`Operation failed. Please try again later.`,processing:`Processing...`,publish:`Publish`,unfollowFailed:`Unfollow failed`,unfollowSuccess:`Unfollowed`,uploadFailed:`Upload failed. Please try again later.`,welcomeToPlanet:`Welcome`},components:{tabs:{collectTab:{cancel:`Cancel`,cancelSelectAll:`Clear Selection`,collections:`Collections`,comic:`Anime`,created:`Created`,delete:`Delete`,deleteConfirmDescription:`Are you sure you want to remove the selected items from your collections?`,edit:`Edit`,emptyContent:`You haven't collected any content yet`,noCreatedCollections:`No created collections yet`,noSubscribedCollections:`No subscribed collections yet`,novel:`Novel`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,subscribed:`Subscribed`,uncollectFailed:`Failed to uncollect`,uncollectedSuccess:`Uncollected successfully`,video:`Video`},historyTab:{cancel:`Cancel`,collections:`Collections`,comic:`Anime`,delete:`Delete`,deleteFailed:`Deletion failed.`,edit:`Edit`,emptyContent:`You have no watch history yet`,historyDeletedSuccess:`Browsing history deleted`,novel:`Novel`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,video:`Video`},likeTab:{cancel:`Cancel`,collections:`Collections`,comic:`Anime`,delete:`Delete`,edit:`Edit`,emptyContent:`You haven't liked any content yet`,novel:`Novel`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,unlikeFailed:`Failed to unlike`,unlikedSuccess:`Unliked successfully`,video:`Video`},publishTab:{comic:`Anime`,deleteFailed:`Delete failed`,deleteSuccess:`Deleted`,emptyText:`No published content yet`,novel:`Novel`,posts:`Posts`,video:`Video`}},userProfileHeader:{fans:`Fans`,follow:`Follow`,likesReceived:`Likes Received`}}},publish:{components:{collection:{createCollection:`Create Collection`,moreCollections:`More collections`,syncToCollection:`Sync to collection`},collectionCard:{contentCountSuffix:`Bar Contents`},collectionPopup:{noCollections:`No collections yet`,syncToCollection:`Sync to collection`},coverItem:{coverAlt:`Cover`,editCover:`Edit cover`,uploadImage:`Upload Image`},editor:{headlineHint:`With Headline`},header:{publish:`Publish`},materialItem:{deleteMaterial:`Delete media`,uploadImage:`Uploaded image`,videoCover:`Video cover`},mediaPreview:{previewAlt:`Preview`},uploadProgress:{uploading:`Uploading`}},pageClient:{cancel:`cancel`,editContentFirst:`Please edit the content first`,maxMaterialCount:`You can upload up to 9 materials`,publishFailed:`Publish failed, please try again later`,publishSuccess:`Published successfully`,resume:`Continued`,switchToPostConfirm:`Switching to post will clear the main video. Continue?`,switchToVideoConfirm:`Switching to video will clear existing materials. Continue?`,title:`Confirm toggle`,uploadFailedCount:`{count} files failed to upload`}},search:{hotRecommend:{hotPostsTitle:`Popular Posts`,hotVideosTitle:`Popular Videos`},hotSearch:{recommendedSearches:`Recommended searches`},pageClient:{searchHistory:`Search History`,tabs:{all:`All`,post:`Posts`,user:`Users`,video:`Videos`}},searchResult:{searchAll:{emptyResult:`No related content found`,more:`MORE`,relatedSuffix:`Related`},searchUser:{emptyResult:`No related content found`,followersSuffix:`Followers`},searchVideoInfo:{noRelevantContent:`No relevant content found`}},topHeader:{placeholder:`Please enter keywords`,search:`Cari`}},settings:{components:{resetPasswordDrawer:{boundEmailNotice:`The email address is currently bound`,codeSentSuccess:`Verification code sent`,confirmPasswordPlaceholder:`Please confirm your password again`,passwordPlaceholder:`Enter your password`,passwordResetSuccess:`Password changed successfully`,resendAfter:`resend after`,resendCountdown:`Resend ({seconds}s)`,resetFailed:`Modification failed, please try again later`,resetPassword:`Submit`,sendCode:`Get verification code`,sendFailed:`Failed to send, please try again later`,sending:`Sending...`,setNewPasswordHint:`Set Password`,submitting:`Submitting...`,title:`Reset Password`,verifyEmailButton:`Validate Email`,verifyFailed:`Verification failed, please check the code`,verifyHint:`Perform verification`,verifySuccess:`Verification successful`,verifyTitle:`Enter the verification code`,verifying:`Verifying...`},settings:{button:`Log Out`,cancel:`Cancel`,collectionsTitle:`Collections`,confirm:`Confirm`,feedbackTitle:`Feedback`,follow:`Following`,followersTitle:`Followers`,languageTitle:`Language`,like:`Likes`,listPrivateHint:`This list will be private`,logoutConfirmMessage:`Are you sure you want to log out?`,privacySettingsTitle:`Privacy Settings`,resetPasswordTitle:`Reset Password`,switchTo:`Switch to`,title:`Settings Center`,whenOff:`When turned off`}}},userFollow:{components:{comprehensiveTab:{empty:`No content yet, try somewhere else.`,postsFeed:`Posts Feed`},contentItem:{filmAndTv:`Film and television related`},followNoLogin:{login:`Log in`,notLoggedIn:`You are not logged in`},followNoUser:{empty:`You haven't followed anyone yet`},followedList:{newUpdate:`New update`,seeAll:`See All`},postTab:{empty:`Not following any posts`}},page:{tabs:{posts:`Posts`}}},videoDetail:{videoDetailClient:{videoDeleted:`This video has been deleted`,videoUnavailable:`This video is unavailable`}}},ui:{infiniteScroll:{failed:`Load failed, click to retry`,loading:`Loading`,noMore:`No more`},list:{empty:`No content yet`,loading:`Loading...`,postList:{earlier:`Earlier`,empty:`No browsing history`,postListItem:{coverAlt:`Post cover`},today:`Today`,yesterday:`Yesterday`},userActivityList:{earlier:`Earlier`,empty:`No browsing history`,today:`Today`,userActivityListActions:{comment:`Comment`,dislike:`Dislike`,like:`Like`,likeFailed:`Like failed`,share:`Share`},userActivityListItem:{collapse:`Collapse`,collectFailed:`Collection failed`,expand:`Expand`,mediaAlt:`Feed image`},yesterday:`Yesterday`},videoList:{earlier:`Earlier`,empty:`No viewing history`,today:`Today`,videoListItem:{coverAlt:`Video cover`,movie:`Movie`,series:`Series`,watchUntil:`Watched `},yesterday:`Yesterday`}},loading:{label:`Loading...`}}},tabBar:{follow:`Follow`,home:`Home`,message:`Message`,mine:`Mine`}};export{e as default};
4
+ If this was not you, please contact support or file an appeal.`,gotIt:`Got it`,remarkDefault:`Abnormal behavior detected`,title:`Account Restricted`,unblockTimePermanent:`Permanent`},collectionPopup:{collectSuccess:`Added to collection`,coverAlt:`Cover image`,createCollection:`Create Collection`,createCollectionHint:`to create your collection.`,createModalAction:`Confirm`,createModalTitle:`New Collection`,favoriteToCollectionTitle:`Favorite to Collection`,newCollection:`New`,noCollections:`No collections yet`,postsCountSuffix:`Posts`,selectTitle:`Select Collection`,updateSuccess:`Collection updated`},debugLocaleSwitcher:{current:`Current`,languageDebugging:`Language Debugging`},deleteConfirmDialog:{cancel:`Cancel`,confirm:`Delete`,description:`This action cannot be undone.`},followButton:{follow:`Follow`,followFailed:`Failed to follow`,following:`Following`,loginFailed:`Login failed`,loginRequired:`Please log in first`,unfollowConfirmDialog:{cancel:`cancel`,confirm:`OK`,confirmUnfollow:`Are you sure you want to unfollow`},unfollowFailed:`Failed to unfollow`},imageCropModal:{cancel:`Cancel`,confirm:`Confirm`,processing:`Processing...`},infoCard:{cardBottom:{comment:`Comment`,dislike:`Dislike`,like:`Like`,share:`Share`}},list:{collectionList:{collectionListItem:{contentCountSuffix:`content`,movieLabel:`Movie`}}},photoGrid:{episodeLoading:`Episode Loading`,missingEpisode:`Missing valid episode`,noEpisodes:`No episodes available`},picker:{genderPicker:{cancel:`Cancel`,confirm:`Confirm`,options:{female:`Female`,male:`Male`,secret:`Secret`},title:`Select Gender`},pickerDrawer:{cancel:`Cancel`,confirm:`Confirm`,title:`Please Select`}},seriesEpisodes:{compactTotal:`{total} episodes`,completedSeriesTotal:`Completed series: {total} episodes`,episodeLabel:`Episode {episode}`,episodeNotFound:`Episode not found`,episodeSwitchFailed:`Failed to switch episode`,episodeSwitching:`Switching...`,episodeTitle:`Episode title`,ongoingSeriesTotal:`Ongoing series: {total} episodes`,ongoingSeriesUpdatedTo:`Ongoing series: updated to {total} episodes`,selectorTitle:`Episodes`,singleContent:`Single episode`},sharePopup:{shareContent:{copyFailed:`Copy failed`,copyShareLink:`Copy link`,copySuccess:`Copied`,shareHint:`Can paste a link to share with friends`,shareLinksTitle:`Share Links`},shareDrawer:{cancel:`Cancel`,collectionLabel:`Collection`,label:`Uncollect`,moments:`Moments`,wechat:`WeChat`,wechatFriend:`WeChat Friend`}},skeleton:{loading:`Loading`},title:`Are you sure you want to delete this content?`},pages:{collectionAdd:{page:{collectionNotFound:`Collection not found`,done:`Done`,emptyPublish:`No posts available to add`,selectPostFirst:`Please select posts first`,submitFailed:`Add failed, please try again later`,submitSuccess:`Added successfully`,submitting:`Adding...`,title:`Add posts to collection`,userNotFound:`User not found`}},collectionCreate:{form:{addCover:`Add cover`,clear:`Clear`,collectionNotFound:`Collection not found`,coverAlt:`Collection cover`,coverLabel:`Cover`,coverUploadFailed:`Failed to upload cover`,create:`Create`,createFailed:`Create failed`,createSuccess:`Created successfully`,createTitle:`Create Collection`,creating:`Creating...`,descriptionLabel:`Description`,descriptionPlaceholder:`Enter collection description`,descriptionRequired:`Please enter collection description`,editTitle:`Edit Collection`,label:`Name`,save:`Save`,saveFailed:`Save failed`,saveSuccess:`Saved successfully`,saving:`Saving...`,signatureLabel:`Description`,titlePlaceholder:`Please enter collection title`,titleRequired:`Please enter collection title`,uploading:`Uploading...`}},collectionDetail:{components:{collectionDetailCard:{collectedInLabel:`Collected in:`}},detail:{add:`Add Content`,batchRemoveVideosConfirmTitle:`Remove selected content from this collection?`,cancel:`Cancel`,collectionManageTitle:`Collection Management`,contentCountSuffix:`Section Contents`,coverAlt:`Collection cover`,defaultCollectionDeleteNotSupported:`Default collection cannot be deleted`,defaultTitle:`Collection`,delete:`Delete`,deleteCollection:`Delete collection`,deleteFailed:`Delete failed`,deleteSuccess:`Collection deleted`,deleting:`Deleting...`,done:`Done`,editCollection:`Edit Collection`,emptyContent:`No content yet`,manageCollection:`Manage Collection`,operationFailed:`Operation failed, please try again later`,ownerAvatarAlt:`Collection owner`,pleaseLogin:`Please log in first`,selectAll:`Select all`,subscribe:`Subscribe`,subscribeOperateFailed:`Subscription action failed`,subscribeProcessing:`Processing...`,subscribeSuccess:`Subscribed successfully`,subscribed:`Subscribed`,uncollectFailed:`Failed to remove from collection`,uncollectSuccess:`Removed from collection`,unsubscribeSuccess:`Unsubscribed`,updatedSuffix:`Update`}},edit:{page:{avatarUpdateSuccess:`Updated successfully`,avatarUploadFailed:`Failed to upload avatar. Please try again later.`,avatarUploading:`Uploading...`,clickToChangeAvatar:`Tap to change avatar`,displayIdLabel:`Display ID`,editBlockedWhileSaving:`Profile is being saved. Please wait before editing other fields.`,genderFemale:`Female`,genderLabel:`Gender`,genderMale:`Male`,genderSecret:`Private`,genderSelect:`Please select`,genderUpdateSuccess:`Gender updated successfully`,imageTypeInvalid:`Only JPG/JPEG/PNG formats are supported`,label:`Nickname`,loading:`Loading`,nicknameInvalidChars:`Nickname only supports _, - and .`,nicknamePlaceholder:`Enter your nickname`,nicknameRequired:`Please enter a nickname`,nicknameTooShort:`Nickname must be at least 2 characters`,nicknameUpdateSuccess:`Nickname updated successfully`,save:`Save`,saveFailed:`Save failed. Please try again later.`,saveSuccess:`Saved successfully`,savingInProgress:`Saving, please wait.`,signatureLabel:`Signature`,signaturePlaceholder:`Enter your bio`,signatureTooShort:`Bio must be at least 2 characters`,signatureUpdateSuccess:`Bio updated successfully`,submit:`Submit`,title:`Edit profile`,updateFailed:`Update failed. Please try again later.`,userNotFound:`User info not found`}},feedSeries:{feedSeriesClient:{episodeLoading:`Episode Loading`,episodeSelectorTitle:`Episodes`,missingEpisode:`Missing valid episode`,noEpisodes:`No episodes available`},page:{videoLoading:`Loading video...`}},feedback:{components:{feedbackForm:{addScreenshot:`Add screenshot`,alt:`Screenshot of feedback`,contactLabel:`Contact`,contentMinLength:`Problem description must be at least 4 characters.`,delete:`Delete`,imageTypeInvalid:`Only JPG/JPEG/PNG formats are supported`,label:`Feedback content`,loading:`Submitting...`,message:`Update failed, please try again later.`,missingContact:`Enter your contact information.`,missingFeedback:`Please enter your feedback`,missingScreenshot:`Please upload a screenshot`,optional:`Optional`,placeholder:`obtain SMS verification code`,placeholder1_6d0242:`Please enter your email or phone number so we can resolve your issue.`,screenshotHint:`You can upload up to 3 screenshots to help us identify the issue faster.`,screenshotLabel:`Upload Screenshot`,screenshotUploadFailed:`Screenshot upload failed, please try again later`,submit:`SUBMIT`,submitsuccess:`Feedback submitted successfully. We will resolve it as soon as possible.`,title:`Feedback`,uploading:`UPLOADING...`}}},follow:{components:{followButton:{follow:`Follow`,following:`Following`},interactionTabs:{fans:`Fans`,follow:`Follow`},userList:{follow:`Follow`,followBack:`Follow back`,followNow:`Follow now`,noFans:`No fans yet`,noFollowedUsers:`Not following any users`}},pages:{fans:{privateListUnavailable:`This fan list is not publicly available`},followed:{privateListUnavailable:`This following list is not publicly available`}}},fullscreenFeed:{page:{episodeSelectorTitle:`Episodes`,missingParams:`Missing testimonial bit or episode parameter`}},login:{forgot:{back:`Back`,emailPlaceholder:`Enter your email`,getCode:`Get verification code`,loginLink:`Remembered your password? Log in`,or:`or`,sendFailed:`Failed to send, please try again later`,sending:`Sending...`,title:`Forgot your password?`},index:{loginFailed:`Login failed. Please try again later.`,loginSuccess:`Logged in successfully`},loginClient:{agreeToTerms:`I have read and agree to the Terms of Service and Privacy Policy`,agreeToTermsPrefix:`I have read and agree to the `,and:` and `,close:`Close`,emailPlaceholder:`Enter your email`,forgotPassword:`Forgot Password`,hidePassword:`Hide password`,loggingIn:`Logging in...`,login:`Log in`,noAccount:`No account? `,passwordPlaceholder:`Enter your password`,privacyPolicy:`Privacy Policy`,registerLink:`Sign up`,showPassword:`Show password`,subtitle:`Sign up or log in to discover more great videos`,title:`Welcome 👋`,userAgreement:`Terms of Service`},password:{back:`Back`,confirmModify:`Confirm changes`,confirmPasswordPlaceholder:`Re-enter your password`,confirmReset:`Confirm reset`,passwordInvalidCharacters:`Use only letters, numbers, and supported special characters`,passwordNeedTwoTypes:`Include at least 2 character types (upper/lower/number/special)`,passwordPlaceholder:`Enter a password (8-32 characters)`,passwordSetSuccess:`Password updated`,passwordTooLong:`Password must be no more than 32 characters`,passwordTooShort:`Password must be at least 8 characters`,passwordsNotMatch:`Passwords do not match`,register:`Register`,setLoginPassword:`Set a login password`,setNewPassword:`Set a new password`,submitFailed:`Failed to submit. Please try again later.`,submitting:`Submitting...`},register:{back:`Back`,emailPlaceholder:`Enter your email`,getCode:`Sign up`,hasAccount:`Already have an account? `,invalidEmail:`Please enter a valid email`,loginLink:`Log in`,sendFailed:`Failed to send`,sending:`Sending...`,title:`Create your account`},resetPassword:{back:`Back`,codePlaceholder:`Enter the verification code`,passwordRuleHint:`Use 8-32 characters and include at least 2 types (upper/lower/number/special)`,resend:`Resend`,sendCode:`Send code`,sendFailed:`Failed to send`,title:`Reset password`,verifyEmail:`Verify email`,verifyFailed:`Verification failed. Please try again later.`,verifyHint:`Verify your identity`,verifyViaEmail:`Verify via email`,verifying:`Verifying...`},verify:{back:`Back`,invalidCode:`Invalid verification code`,nextStep:`Submit`,resend:`Resend`,resendCountdown:`Resend ({seconds}s)`,sentTo:`Sent to`,title:`Enter the verification code`,verifying:`Submitting...`}},postDetail:{postDetailClient:{comment:`Comments`,postDeleted:`This post has been deleted`,postOffline:`This post is no longer available`,reactions:`Reactions`}},profile:{client:{collect:`Collect`,collectionNotPublic:`This collection is private`,editProfile:`Edit profile`,exploreAdventures:`Explore amazing adventures.`,follow:`Follow`,followFailed:`Follow failed`,followSuccess:`Followed successfully`,followed:`Following`,history:`History`,imageTooLarge:`The image is too large. Please choose one smaller than 5MB.`,imageTypeInvalid:`Only JPG/JPEG/PNG formats are supported`,like:`Like`,likeNotPublic:`Likes are private`,loginNow:`Log in`,loginRequiredForUpload:`Please log in and try again.`,loginToSeeMoreVideos:`Log in to see more great videos`,loginToView:`Please log in to view`,mediaUpdateSuccess:`Updated successfully`,operationFailed:`Operation failed. Please try again later.`,processing:`Processing...`,publish:`Publish`,unfollowFailed:`Unfollow failed`,unfollowSuccess:`Unfollowed`,uploadFailed:`Upload failed. Please try again later.`,welcomeToPlanet:`Welcome`},components:{tabs:{collectTab:{cancel:`Cancel`,cancelSelectAll:`Clear Selection`,collections:`Collections`,created:`Created`,delete:`Delete`,deleteConfirmDescription:`Are you sure you want to remove the selected items from your collections?`,edit:`Edit`,emptyContent:`You haven't collected any content yet`,noCreatedCollections:`No created collections yet`,noSubscribedCollections:`No subscribed collections yet`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,subscribed:`Subscribed`,uncollectFailed:`Failed to uncollect`,uncollectedSuccess:`Uncollected successfully`,video:`Video`},historyTab:{cancel:`Cancel`,delete:`Delete`,deleteFailed:`Deletion failed.`,edit:`Edit`,emptyContent:`You have no watch history yet`,historyDeletedSuccess:`Browsing history deleted`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,video:`Video`},likeTab:{cancel:`Cancel`,delete:`Delete`,edit:`Edit`,emptyContent:`You haven't liked any content yet`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,unlikeFailed:`Failed to unlike`,unlikedSuccess:`Unliked successfully`,video:`Video`},publishTab:{deleteFailed:`Delete failed`,deleteSuccess:`Deleted`,emptyText:`No published content yet`}},userProfileHeader:{fans:`Fans`,follow:`Follow`,likesReceived:`Likes Received`}}},publish:{components:{collection:{createCollection:`Create Collection`,moreCollections:`More collections`,syncToCollection:`Sync to collection`},collectionCard:{contentCountSuffix:`Bar Contents`},collectionPopup:{noCollections:`No collections yet`,syncToCollection:`Sync to collection`},coverItem:{coverAlt:`Cover`,editCover:`Edit cover`,uploadImage:`Upload Image`},editor:{headlineHint:`With Headline`},header:{publish:`Publish`},materialItem:{deleteMaterial:`Delete media`,uploadImage:`Uploaded image`,videoCover:`Video cover`},mediaPreview:{previewAlt:`Preview`},uploadProgress:{uploading:`Uploading`}},pageClient:{cancel:`cancel`,editContentFirst:`Please edit the content first`,maxMaterialCount:`You can upload up to 9 materials`,publishFailed:`Publish failed, please try again later`,publishSuccess:`Published successfully`,resume:`Continued`,switchToPostConfirm:`Switching to post will clear the main video. Continue?`,switchToVideoConfirm:`Switching to video will clear existing materials. Continue?`,title:`Confirm toggle`,uploadFailedCount:`{count} files failed to upload`}},search:{hotRecommend:{hotPostsTitle:`Popular Posts`,hotVideosTitle:`Popular Videos`},hotSearch:{recommendedSearches:`Recommended searches`},pageClient:{searchHistory:`Search History`,tabs:{all:`All`,post:`Posts`,user:`Users`,video:`Videos`}},searchResult:{searchAll:{emptyResult:`No related content found`,more:`MORE`,relatedSuffix:`Related`},searchUser:{emptyResult:`No related content found`,followersSuffix:`Followers`},searchVideoInfo:{noRelevantContent:`No relevant content found`}},topHeader:{placeholder:`Please enter keywords`,search:`Cari`}},settings:{components:{resetPasswordDrawer:{boundEmailNotice:`The email address is currently bound`,codeSentSuccess:`Verification code sent`,confirmPasswordPlaceholder:`Please confirm your password again`,passwordPlaceholder:`Enter your password`,passwordResetSuccess:`Password changed successfully`,resendAfter:`resend after`,resendCountdown:`Resend ({seconds}s)`,resetFailed:`Modification failed, please try again later`,resetPassword:`Submit`,sendCode:`Get verification code`,sendFailed:`Failed to send, please try again later`,sending:`Sending...`,setNewPasswordHint:`Set Password`,submitting:`Submitting...`,title:`Reset Password`,verifyEmailButton:`Validate Email`,verifyFailed:`Verification failed, please check the code`,verifyHint:`Perform verification`,verifySuccess:`Verification successful`,verifyTitle:`Enter the verification code`,verifying:`Verifying...`},settings:{button:`Log Out`,cancel:`Cancel`,collectionsTitle:`Collections`,confirm:`Confirm`,feedbackTitle:`Feedback`,follow:`Following`,followersTitle:`Followers`,languageTitle:`Language`,like:`Likes`,listPrivateHint:`This list will be private`,logoutConfirmMessage:`Are you sure you want to log out?`,privacySettingsTitle:`Privacy Settings`,resetPasswordTitle:`Reset Password`,switchTo:`Switch to`,title:`Settings Center`,whenOff:`When turned off`}}},userFollow:{components:{comprehensiveTab:{empty:`No content yet, try somewhere else.`,postsFeed:`Posts Feed`},contentItem:{filmAndTv:`Film and television related`},followNoLogin:{login:`Log in`,notLoggedIn:`You are not logged in`},followNoUser:{empty:`You haven't followed anyone yet`},followedList:{newUpdate:`New update`,seeAll:`See All`},postTab:{empty:`Not following any posts`}},page:{tabs:{posts:`Posts`}}},videoDetail:{videoDetailClient:{videoDeleted:`This video has been deleted`,videoUnavailable:`This video is unavailable`}}},ui:{infiniteScroll:{failed:`Load failed, click to retry`,loading:`Loading`,noMore:`No more`},list:{empty:`No content yet`,loading:`Loading...`,postList:{earlier:`Earlier`,empty:`No browsing history`,postListItem:{coverAlt:`Post cover`},today:`Today`,yesterday:`Yesterday`},userActivityList:{earlier:`Earlier`,empty:`No browsing history`,today:`Today`,userActivityListActions:{comment:`Comment`,dislike:`Dislike`,like:`Like`,likeFailed:`Like failed`,share:`Share`},userActivityListItem:{collapse:`Collapse`,collectFailed:`Collection failed`,expand:`Expand`,mediaAlt:`Feed image`},yesterday:`Yesterday`},videoList:{earlier:`Earlier`,empty:`No viewing history`,today:`Today`,videoListItem:{coverAlt:`Video cover`,movie:`Movie`,series:`Series`,watchUntil:`Watched `},yesterday:`Yesterday`}},loading:{label:`Loading...`}}},tabBar:{follow:`Follow`,home:`Home`,message:`Message`,mine:`Mine`}};export{e as default};