@funhub/platform 0.2.17 → 0.2.19
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.
- package/dist/common.d.mts +2 -1
- package/dist/common.mjs +1 -1
- package/dist/components/biz/business/channel-list/client.mjs +1 -1
- package/dist/components/biz/business/detail/video-detail-actions/client.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search/client.mjs +1 -1
- package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
- package/dist/components/biz/business/home-recommend/shared/home-recommend-preview.mjs +1 -1
- package/dist/components/biz/business/large-feature-grid/client.mjs +1 -1
- package/dist/components/biz/business/marquee/client.mjs +1 -1
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/runtime/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.mjs +1 -1
- package/dist/components/biz/business/shortcut-grid/client.mjs +1 -1
- package/dist/components/biz/business/tab-bar/client.mjs +1 -1
- package/dist/components/common/analytics-init/index.d.mts +1 -0
- package/dist/components/common/analytics-init/page-lifecycle-tracker.d.mts +15 -0
- package/dist/components/common/analytics-init/page-lifecycle-tracker.mjs +2 -0
- package/dist/components/common/list/waterfall-recommend/waterfall-recommend.mjs +1 -1
- package/dist/components/common/tab-bar/index.mjs +1 -1
- package/dist/components/pages/(follow)/_components/header-nav/index.mjs +1 -1
- package/dist/components/pages/collection-add/page.mjs +1 -1
- package/dist/components/pages/collection-create/form.mjs +1 -1
- package/dist/components/pages/collection-detail/detail.mjs +1 -1
- package/dist/components/pages/edit/page.mjs +1 -1
- package/dist/components/pages/feed-series/feed-series-client.mjs +1 -1
- package/dist/components/pages/feedback/_components/feedback-form.mjs +1 -1
- package/dist/components/pages/fullscreen-feed/page.mjs +1 -1
- package/dist/components/pages/home/client.mjs +1 -1
- package/dist/components/pages/login/index.mjs +1 -1
- package/dist/components/pages/post-detail/post-detail-client.mjs +1 -1
- package/dist/components/pages/publish/page-client.mjs +1 -1
- package/dist/components/pages/search/page-client.mjs +1 -1
- package/dist/components/pages/search/search-result/search-video-info.mjs +1 -1
- package/dist/components/pages/search-result/page-client.mjs +1 -1
- package/dist/components/pages/settings/_components/settings.mjs +1 -1
- package/dist/components/pages/user-follow/_components/post-tab.mjs +1 -1
- package/dist/components/pages/video-detail/video-detail-client.mjs +1 -1
- package/dist/components/pages/video-list/video-list-client.mjs +1 -1
- package/dist/components/ui/badge.d.mts +1 -1
- package/dist/components/ui/button.d.mts +1 -1
- package/dist/components/ui/image.d.mts +4 -4
- package/dist/utils/common.mjs +1 -1
- package/dist/utils/tracking.mjs +1 -1
- package/package.json +1 -1
- package/theme.css +47 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as t,pCommunityDeleteCollection as n,pCommunityRemoveContentFromCollection as r,pInteractionBatchDeleteCollects as i}from"../../../service/generated/client.mjs";import{usePageLifecycle as a}from"../../../utils/tracking.mjs";import{useRouter as o}from"../../../utils/use-compatible-router.mjs";import{Button as s}from"../../ui/button.mjs";import{Box as c}from"../../ui/box.mjs";import{Checkbox as ee}from"../../ui/checkbox.mjs";import{DropdownMenu as te,DropdownMenuContent as ne,DropdownMenuItem as l,DropdownMenuSeparator as u,DropdownMenuTrigger as re}from"../../ui/dropdown-menu.mjs";import{List as d}from"../../ui/list.mjs";import{Text as ie}from"../../ui/text.mjs";import{useLoginModalStore as f}from"../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as p,useMutation as m,useRequest as ae}from"../../../hooks/query/use-query.mjs";import{CreateCollectionSheet as oe}from"../../common/collection-popup/create-collection-sheet.mjs";import{ShareDrawer as se}from"../../common/share-popup/share-drawer.mjs";import{SharePlatformEnum as h}from"../../../types/share.mjs";import ce from"../../../utils/share-manager.mjs";import{DeleteConfirmDialog as g}from"../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{HeaderNav as le}from"../../common/header-nav/client.mjs";import{CollectionDetailCard as ue}from"./_components/collection-detail-card.mjs";import{CollectionDetailVideoCard as de}from"./_components/collection-detail-video-card.mjs";import{toast as _}from"sonner";import{useMemo as v,useState as y}from"react";import{MoreVertical as fe}from"lucide-react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{useTranslations as pe}from"next-intl";function S(e){if(e.cover_image)return e.cover_image;let t=``;return e.medias?.find(e=>e?(!e.is_video&&!t&&e.media_url&&(t=e.media_url),!!e.cover_image):!1)?.cover_image||t}function C(e){let t=e.detail.info?.video_duration;if(typeof t==`number`&&Number.isFinite(t)&&t>0)return Math.floor(t);let n=e.detail.duration;if(typeof n==`number`&&Number.isFinite(n)&&n>0)return Math.floor(n);let r=e.medias?.find(e=>{let t=e?.video_duration;return typeof t==`number`&&Number.isFinite(t)&&t>0})?.video_duration;return typeof r==`number`&&Number.isFinite(r)&&r>0?Math.floor(r):0}function w(e){let t=[e.detail.episode_cnt,e.detail.series_num_total,Array.isArray(e.detail.links)?e.detail.links.length:void 0].find(e=>typeof e==`number`&&Number.isFinite(e)&&e>0);return typeof t==`number`?Math.floor(t):0}function T(e){let t=e.detail.info?.play_count;if(typeof t==`number`&&Number.isFinite(t))return Math.max(0,Math.floor(t));let n=e.detail.view_count||e.viewCount;return typeof n==`number`&&Number.isFinite(n)?Math.max(0,Math.floor(n)):0}function E(e){return e.detail.type===2||e.is_more_link||e.detail.info?.is_more_link||e.detail.is_more_link?!0:w(e)>1}function me(e){let t=e.detail,n=t.info,r=String(n?.cover_image||t.cover_image||S(e)||``),i=String(n?.text||n?.title||t.title||t.content||``),a=w(e),o=t.author_score??0,s=Array.isArray(t.tags)?t.tags:[];return{id:e.content_id?String(e.content_id):String(e.id),title:i,type:typeof e.type==`number`?e.type:0,coverImage:r,score:o,collectedAt:t.create_time==null?void 0:String(t.create_time),tags:s,duration:C(e),viewCount:T(e),episodeCount:a,publishTime:String(t.create_time??t.update_time??``),is_more_link:E(e),authorName:``}}function D({id:S}){let C=pe(`components.pages.collectionDetail`);a(`page_collection_detail`,`合集详情`);let w=o(),{userId:T,isLogin:E}=e(),{open:D}=f(),O=p(),k=ae([`collection-detail`,S],()=>t({collection_id:S})),A=k.data?.data?.data?.collection?.user_id,j=!!(A&&T&&String(A)===String(T)),[he,M]=y(!1),[ge,N]=y(!1),[P,F]=y(!1),[I,L]=y(!1),[R,z]=y(!1),[B,V]=y(()=>new Set),[H,U]=y(null),W=k.data?.data?.data?.collection,G=W?.contents,K=v(()=>G?G.map(e=>({content_id:e.content_id,is_more_link:e.is_more_link,id:Number(e.content_id),detail:e,type:Number(e.source_type??0),medias:e.medias,cover_image:e.cover_image,viewCount:e.view_count})):[],[G]).map(me),_e=K.length>0&&K.every(e=>e.type===1),q=v(()=>new Set(K.map(e=>e.id)),[K]),J=q.size>0&&B.size===q.size,{mutateAsync:ve,isPending:ye}=m(async e=>await r({collection_id:S,content_id:e})),{mutateAsync:be,isPending:Y}=m(async e=>await n({collection_id:e})),{mutateAsync:xe,isPending:X}=m(async e=>await i({app_id:0,user_id:T,folder_id:S,content_type:1,content_ids:e})),Se=j&&W?.is_default===!1;function Ce(e){U({kind:`content`,id:e.id,type:e.type,title:e.title,isCollected:!0}),M(!0)}function we(){if(!E||!T){_.error(C(`detail.pleaseLogin`)),D();return}if(!j){_.error(C(`detail.operationFailed`));return}V(new Set),z(!0)}function Te(){V(new Set),z(!1)}function Z(e){V(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function Ee(){if(J){V(new Set);return}V(new Set(q))}function De(){if(!(B.size===0||X)){if(!E||!T){_.error(C(`detail.pleaseLogin`)),D();return}F(!0)}}async function Q(){if(!(B.size===0||X)){if(!E||!T){_.error(C(`detail.pleaseLogin`)),D(),F(!1);return}try{let e=await xe(Array.from(B));if(e.code===0){_.success(C(`detail.uncollectSuccess`)),O([`collection-detail`,S]),O([`user-profile`,`mine`]),O([`user-profile`,`profile`,A]),V(new Set),z(!1),F(!1);return}_.error(e.message||C(`detail.uncollectFailed`))}catch(e){console.error(`批量取消收藏失败`,e),_.error(C(`detail.operationFailed`))}}}function Oe(e){if(typeof window>`u`)return``;if(e.kind===`collection`)return`${window.location.origin}/collection/${e.id}`;let t=e.title?encodeURIComponent(e.title):`detail`,n=e.type===1?`/video/${e.id}/${t}`:`/post/${e.id}`;return`${window.location.origin}${n}`}function $(e){if(!H)return;let t=Oe(H);t&&ce.showSharePopup({type:e,data:{id:H.id},copyUrl:t})}function ke(){$(h.WECHAT)}function Ae(){$(h.QQ)}function je(){$(h.WECHAT_MOMENTS)}function Me(){if(!ye){if(!E||!T){_.error(C(`detail.pleaseLogin`)),D();return}!H||H.kind!==`content`||ve(H.id).then(e=>{if(e.code===0){_.success(C(`detail.uncollectSuccess`)),O([`collection-detail`,S]),U(e=>e&&{...e,isCollected:!1});return}_.error(e.message||C(`detail.uncollectFailed`))}).catch(e=>{console.error(`取消收藏失败`,e),_.error(C(`detail.operationFailed`))})}}function Ne(){L(!0),M(!1)}function Pe(){if(!Y){if(!E||!T){_.error(C(`detail.pleaseLogin`)),D();return}if(!Se){_.error(C(`detail.defaultCollectionDeleteNotSupported`));return}N(!0)}}async function Fe(){if(!Y)try{let e=await be(S);if(e.code===0){_.success(C(`detail.deleteSuccess`)),O([`collection-detail`,S]),O([`user-profile`,`mine`]),O([`user-profile`,`profile`,A]),N(!1),M(!1),w.back();return}_.error(e.message||C(`detail.deleteFailed`))}catch(e){console.error(`删除合集失败`,e),_.error(C(`detail.operationFailed`))}}return x(c,{className:`relative flex min-h-screen flex-col overflow-hidden bg-[var(--color-surface-panel-dark)] ${R?`pb-28`:`pb-6`}`,children:[b(le,{className:`!border-none !bg-[var(--color-surface-panel-dark)] !border-transparent`,title:W?.title??``,centerChild:b(`div`,{className:`flex min-w-0 flex-1 items-center justify-center px-12`,children:b(`p`,{className:`min-w-0 max-w-full truncate text-center text-[18px] leading-[22px] font-medium text-text1`,children:W?.title??``})}),onBack:()=>w.back(),rightChild:j?R?b(`button`,{type:`button`,onClick:Te,className:`px-2 py-1 text-sm text-text1`,children:C(`detail.done`)}):x(te,{children:[b(re,{className:`flex h-10 w-10 items-center justify-center text-text1 outline-none`,children:b(fe,{className:`h-5 w-5`,strokeWidth:2})}),x(ne,{align:`end`,sideOffset:6,className:`!w-[180px] rounded-[8px] border-none !border-none !ring-0 shadow-none !shadow-none bg-[#252327] px-0 pb-1 pt-[3px]`,children:[b(l,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:Ne,children:C(`detail.editCollection`)}),b(u,{className:`mx-0 my-1 bg-[#343237]`}),b(l,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:we,children:C(`detail.manageCollection`)}),b(u,{className:`mx-0 my-1 bg-[#343237]`}),b(l,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:Pe,disabled:Y,children:C(Y?`detail.deleting`:`detail.deleteCollection`)})]})]}):void 0}),b(c,{className:`relative z-[1] px-4 pb-4`,children:b(c,{className:`text-text2 text-sm leading-[22px] break-all text-ellipsis line-clamp-1`,children:W?.description})}),b(c,{className:`relative z-[1] px-4 ${R?`pb-20`:``}`,children:_e?b(d,{loading:k.isLoading,hasMore:!1,emptyText:C(`detail.emptyContent`),columns:2,gridGap:16,className:`!bg-transparent`,children:K.map(e=>b(de,{id:e.id,title:e.title,coverImage:e.coverImage,duration:e.duration,episodeCount:e.episodeCount,viewCount:e.viewCount,is_more_link:e.is_more_link,isEditMode:R,isSelected:B.has(e.id),onToggleSelection:Z},e.id))}):b(d,{loading:k.isLoading,hasMore:!1,emptyText:C(`detail.emptyContent`),className:`!bg-transparent divide-y divide-text1/5`,children:K.map(e=>b(ue,{...e,onOpenShare:Ce,isEditMode:R,isSelected:B.has(e.id),onToggleSelection:Z},e.id))})}),R&&x(c,{className:`fixed bottom-0 left-0 right-0 z-10 flex items-center justify-between border-t border-text1/10 bg-bg1 px-4 py-3`,children:[x(c,{className:`flex items-center gap-2`,children:[b(ee,{checked:J,onCheckedChange:Ee}),b(ie,{className:`text-sm text-text1`,children:C(`detail.selectAll`)})]}),b(s,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:B.size>0?`default`:`outline`,disabled:B.size===0||X,onClick:De,children:C(X?`detail.deleting`:`detail.delete`)})]}),b(se,{isShowCollect:H?.kind===`content`&&j&&E,isCollected:H?.isCollected,open:he,onOpenChange:M,onShareWeChat:ke,onShareQQ:Ae,onShareMoments:je,onUncollect:Me}),b(oe,{visible:I,mode:`edit`,collectionId:S,initialValues:W?{title:W.title??``,description:W.description??``}:void 0,onClose:()=>L(!1)}),b(g,{open:ge,onOpenChange:N,onConfirm:Fe,title:C(`detail.deleteCollection`),isConfirming:Y}),b(g,{open:P,onOpenChange:F,onConfirm:()=>void Q(),title:C(`detail.batchRemoveVideosConfirmTitle`),description:``,isConfirming:X})]})}export{D as CollectionDetail};
|
|
2
|
+
"use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as t,pCommunityDeleteCollection as n,pCommunityRemoveContentFromCollection as r,pInteractionBatchDeleteCollects as i}from"../../../service/generated/client.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{Checkbox as ee}from"../../ui/checkbox.mjs";import{DropdownMenu as te,DropdownMenuContent as ne,DropdownMenuItem as c,DropdownMenuSeparator as l,DropdownMenuTrigger as re}from"../../ui/dropdown-menu.mjs";import{List as u}from"../../ui/list.mjs";import{Text as ie}from"../../ui/text.mjs";import{useLoginModalStore as d}from"../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as ae,useMutation as f,useRequest as oe}from"../../../hooks/query/use-query.mjs";import{CreateCollectionSheet as se}from"../../common/collection-popup/create-collection-sheet.mjs";import{ShareDrawer as ce}from"../../common/share-popup/share-drawer.mjs";import{SharePlatformEnum as p}from"../../../types/share.mjs";import le from"../../../utils/share-manager.mjs";import{DeleteConfirmDialog as m}from"../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{HeaderNav as ue}from"../../common/header-nav/client.mjs";import{CollectionDetailCard as de}from"./_components/collection-detail-card.mjs";import{CollectionDetailVideoCard as h}from"./_components/collection-detail-video-card.mjs";import{toast as g}from"sonner";import{useMemo as _,useState as v}from"react";import{MoreVertical as y}from"lucide-react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{useTranslations as fe}from"next-intl";function S(e){if(e.cover_image)return e.cover_image;let t=``;return e.medias?.find(e=>e?(!e.is_video&&!t&&e.media_url&&(t=e.media_url),!!e.cover_image):!1)?.cover_image||t}function C(e){let t=e.detail.info?.video_duration;if(typeof t==`number`&&Number.isFinite(t)&&t>0)return Math.floor(t);let n=e.detail.duration;if(typeof n==`number`&&Number.isFinite(n)&&n>0)return Math.floor(n);let r=e.medias?.find(e=>{let t=e?.video_duration;return typeof t==`number`&&Number.isFinite(t)&&t>0})?.video_duration;return typeof r==`number`&&Number.isFinite(r)&&r>0?Math.floor(r):0}function w(e){let t=[e.detail.episode_cnt,e.detail.series_num_total,Array.isArray(e.detail.links)?e.detail.links.length:void 0].find(e=>typeof e==`number`&&Number.isFinite(e)&&e>0);return typeof t==`number`?Math.floor(t):0}function T(e){let t=e.detail.info?.play_count;if(typeof t==`number`&&Number.isFinite(t))return Math.max(0,Math.floor(t));let n=e.detail.view_count||e.viewCount;return typeof n==`number`&&Number.isFinite(n)?Math.max(0,Math.floor(n)):0}function E(e){return e.detail.type===2||e.is_more_link||e.detail.info?.is_more_link||e.detail.is_more_link?!0:w(e)>1}function pe(e){let t=e.detail,n=t.info,r=String(n?.cover_image||t.cover_image||S(e)||``),i=String(n?.text||n?.title||t.title||t.content||``),a=w(e),o=t.author_score??0,s=Array.isArray(t.tags)?t.tags:[];return{id:e.content_id?String(e.content_id):String(e.id),title:i,type:typeof e.type==`number`?e.type:0,coverImage:r,score:o,collectedAt:t.create_time==null?void 0:String(t.create_time),tags:s,duration:C(e),viewCount:T(e),episodeCount:a,publishTime:String(t.create_time??t.update_time??``),is_more_link:E(e),authorName:``}}function D({id:S}){let C=fe(`components.pages.collectionDetail`),w=a(),{userId:T,isLogin:E}=e(),{open:D}=d(),O=ae(),k=oe([`collection-detail`,S],()=>t({collection_id:S})),A=k.data?.data?.data?.collection?.user_id,j=!!(A&&T&&String(A)===String(T)),[me,M]=v(!1),[he,N]=v(!1),[P,F]=v(!1),[I,L]=v(!1),[R,z]=v(!1),[B,V]=v(()=>new Set),[H,U]=v(null),W=k.data?.data?.data?.collection,G=W?.contents,K=_(()=>G?G.map(e=>({content_id:e.content_id,is_more_link:e.is_more_link,id:Number(e.content_id),detail:e,type:Number(e.source_type??0),medias:e.medias,cover_image:e.cover_image,viewCount:e.view_count})):[],[G]).map(pe),ge=K.length>0&&K.every(e=>e.type===1),q=_(()=>new Set(K.map(e=>e.id)),[K]),J=q.size>0&&B.size===q.size,{mutateAsync:_e,isPending:ve}=f(async e=>await r({collection_id:S,content_id:e})),{mutateAsync:ye,isPending:Y}=f(async e=>await n({collection_id:e})),{mutateAsync:be,isPending:X}=f(async e=>await i({app_id:0,user_id:T,folder_id:S,content_type:1,content_ids:e})),xe=j&&W?.is_default===!1;function Se(e){U({kind:`content`,id:e.id,type:e.type,title:e.title,isCollected:!0}),M(!0)}function Ce(){if(!E||!T){g.error(C(`detail.pleaseLogin`)),D();return}if(!j){g.error(C(`detail.operationFailed`));return}V(new Set),z(!0)}function we(){V(new Set),z(!1)}function Z(e){V(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function Te(){if(J){V(new Set);return}V(new Set(q))}function Ee(){if(!(B.size===0||X)){if(!E||!T){g.error(C(`detail.pleaseLogin`)),D();return}F(!0)}}async function De(){if(!(B.size===0||X)){if(!E||!T){g.error(C(`detail.pleaseLogin`)),D(),F(!1);return}try{let e=await be(Array.from(B));if(e.code===0){g.success(C(`detail.uncollectSuccess`)),O([`collection-detail`,S]),O([`user-profile`,`mine`]),O([`user-profile`,`profile`,A]),V(new Set),z(!1),F(!1);return}g.error(e.message||C(`detail.uncollectFailed`))}catch(e){console.error(`批量取消收藏失败`,e),g.error(C(`detail.operationFailed`))}}}function Oe(e){if(typeof window>`u`)return``;if(e.kind===`collection`)return`${window.location.origin}/collection/${e.id}`;let t=e.title?encodeURIComponent(e.title):`detail`,n=e.type===1?`/video/${e.id}/${t}`:`/post/${e.id}`;return`${window.location.origin}${n}`}function Q(e){if(!H)return;let t=Oe(H);t&&le.showSharePopup({type:e,data:{id:H.id},copyUrl:t})}function ke(){Q(p.WECHAT)}function Ae(){Q(p.QQ)}function $(){Q(p.WECHAT_MOMENTS)}function je(){if(!ve){if(!E||!T){g.error(C(`detail.pleaseLogin`)),D();return}!H||H.kind!==`content`||_e(H.id).then(e=>{if(e.code===0){g.success(C(`detail.uncollectSuccess`)),O([`collection-detail`,S]),U(e=>e&&{...e,isCollected:!1});return}g.error(e.message||C(`detail.uncollectFailed`))}).catch(e=>{console.error(`取消收藏失败`,e),g.error(C(`detail.operationFailed`))})}}function Me(){L(!0),M(!1)}function Ne(){if(!Y){if(!E||!T){g.error(C(`detail.pleaseLogin`)),D();return}if(!xe){g.error(C(`detail.defaultCollectionDeleteNotSupported`));return}N(!0)}}async function Pe(){if(!Y)try{let e=await ye(S);if(e.code===0){g.success(C(`detail.deleteSuccess`)),O([`collection-detail`,S]),O([`user-profile`,`mine`]),O([`user-profile`,`profile`,A]),N(!1),M(!1),w.back();return}g.error(e.message||C(`detail.deleteFailed`))}catch(e){console.error(`删除合集失败`,e),g.error(C(`detail.operationFailed`))}}return x(s,{className:`relative flex min-h-screen flex-col overflow-hidden bg-[var(--color-surface-panel-dark)] ${R?`pb-28`:`pb-6`}`,children:[b(ue,{className:`!border-none !bg-[var(--color-surface-panel-dark)] !border-transparent`,title:W?.title??``,centerChild:b(`div`,{className:`flex min-w-0 flex-1 items-center justify-center px-12`,children:b(`p`,{className:`min-w-0 max-w-full truncate text-center text-[18px] leading-[22px] font-medium text-text1`,children:W?.title??``})}),onBack:()=>w.back(),rightChild:j?R?b(`button`,{type:`button`,onClick:we,className:`px-2 py-1 text-sm text-text1`,children:C(`detail.done`)}):x(te,{children:[b(re,{className:`flex h-10 w-10 items-center justify-center text-text1 outline-none`,children:b(y,{className:`h-5 w-5`,strokeWidth:2})}),x(ne,{align:`end`,sideOffset:6,className:`!w-[180px] rounded-[8px] border-none !border-none !ring-0 shadow-none !shadow-none bg-[#252327] px-0 pb-1 pt-[3px]`,children:[b(c,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:Me,children:C(`detail.editCollection`)}),b(l,{className:`mx-0 my-1 bg-[#343237]`}),b(c,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:Ce,children:C(`detail.manageCollection`)}),b(l,{className:`mx-0 my-1 bg-[#343237]`}),b(c,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:Ne,disabled:Y,children:C(Y?`detail.deleting`:`detail.deleteCollection`)})]})]}):void 0}),b(s,{className:`relative z-[1] px-4 pb-4`,children:b(s,{className:`text-text2 text-sm leading-[22px] break-all text-ellipsis line-clamp-1`,children:W?.description})}),b(s,{className:`relative z-[1] px-4 ${R?`pb-20`:``}`,children:ge?b(u,{loading:k.isLoading,hasMore:!1,emptyText:C(`detail.emptyContent`),columns:2,gridGap:16,className:`!bg-transparent`,children:K.map(e=>b(h,{id:e.id,title:e.title,coverImage:e.coverImage,duration:e.duration,episodeCount:e.episodeCount,viewCount:e.viewCount,is_more_link:e.is_more_link,isEditMode:R,isSelected:B.has(e.id),onToggleSelection:Z},e.id))}):b(u,{loading:k.isLoading,hasMore:!1,emptyText:C(`detail.emptyContent`),className:`!bg-transparent divide-y divide-text1/5`,children:K.map(e=>b(de,{...e,onOpenShare:Se,isEditMode:R,isSelected:B.has(e.id),onToggleSelection:Z},e.id))})}),R&&x(s,{className:`fixed bottom-0 left-0 right-0 z-10 flex items-center justify-between border-t border-text1/10 bg-bg1 px-4 py-3`,children:[x(s,{className:`flex items-center gap-2`,children:[b(ee,{checked:J,onCheckedChange:Te}),b(ie,{className:`text-sm text-text1`,children:C(`detail.selectAll`)})]}),b(o,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:B.size>0?`default`:`outline`,disabled:B.size===0||X,onClick:Ee,children:C(X?`detail.deleting`:`detail.delete`)})]}),b(ce,{isShowCollect:H?.kind===`content`&&j&&E,isCollected:H?.isCollected,open:me,onOpenChange:M,onShareWeChat:ke,onShareQQ:Ae,onShareMoments:$,onUncollect:je}),b(se,{visible:I,mode:`edit`,collectionId:S,initialValues:W?{title:W.title??``,description:W.description??``}:void 0,onClose:()=>L(!1)}),b(m,{open:he,onOpenChange:N,onConfirm:Pe,title:C(`detail.deleteCollection`),isConfirming:Y}),b(m,{open:P,onOpenChange:F,onConfirm:()=>void De(),title:C(`detail.batchRemoveVideosConfirmTitle`),description:``,isConfirming:X})]})}export{D as CollectionDetail};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gUserGetUserEditInfo as t,gUserGetUserInfo as n,pUserEditUserInfo as r}from"../../../service/generated/client.mjs";import{
|
|
2
|
+
"use client";import{useUserStore as e}from"../../../store/modules/user-store.mjs";import{gUserGetUserEditInfo as t,gUserGetUserInfo as n,pUserEditUserInfo as r}from"../../../service/generated/client.mjs";import{uploadFile as i}from"../../../utils/upload-file.mjs";import{Avatar as ee,AvatarFallback as te,AvatarImage as ne}from"../../ui/avatar.mjs";import{Box as a}from"../../ui/box.mjs";import{InputGroup as re,InputGroupAddon as ie,InputGroupTextarea as ae}from"../../ui/input-group.mjs";import{Text as o}from"../../ui/text.mjs";import{useDeleteRequest as oe,useMutation as se,useRequest as ce}from"../../../hooks/query/use-query.mjs";import{HeaderNav as le}from"../../common/header-nav/client.mjs";import{PickerDrawer as s}from"../../common/picker/picker-drawer/picker-drawer.mjs";import{GenderPicker as ue}from"../../common/picker/gender-picker/gender-picker.mjs";import{ImageCropModal as de}from"../../common/image-crop-modal/image-crop-modal.mjs";import{toast as c}from"sonner";import{useEffect as l,useRef as u,useState as d}from"react";import{ChevronDown as fe}from"lucide-react";import{jsx as f,jsxs as p}from"react/jsx-runtime";import{useTranslations as pe}from"next-intl";import{produce as me}from"immer";const m={0:`secret`,1:`male`,2:`female`},h={male:1,female:2,secret:0},g=[`image/jpeg`,`image/png`],he=/^[\u4E00-\u9FFF\w.-]+$/;function ge(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return g.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function _(e){return e?h[e]===void 0?m[e]??`secret`:e:`secret`}function v(e){if(!e)return;if(h[e]!==void 0)return h[e];let t=Number(e);return Number.isNaN(t)?void 0:t}function _e(e){return{nickname:e?.nick_name??``,gender:_(e?.gender?.toString()),signature:e?.signature??``,avatar:e?.avatar??``}}function ve(e){if(!e)return;e.focus();let t=e.value.length;e.setSelectionRange(t,t)}function ye({id:m}){let h=pe(`components.pages.edit`),{userId:g,userInfo:_,setUserInfo:ye}=e(),y=m??g,b=oe(),be={male:h(`page.genderMale`),female:h(`page.genderFemale`),secret:h(`page.genderSecret`)},xe=u(null),x=u(null),S=u(null),C=u(null),[w,T]=d(()=>_e()),[E,D]=d(!1),[Se,O]=d(null),[Ce,k]=d(!1),[A,j]=d(``),[M,N]=d(!1),[P,F]=d(``),[we,I]=d(!1),[L,R]=d(`secret`),[z,Te]=d(!1),[B,V]=d(``),Ee={code:0,message:``,data:{}},De={code:0,message:``,data:{}},{data:Oe,isLoading:H}=ce([`user-edit-info`,y],()=>y?t({user_id:y}):Promise.resolve(Ee)),{data:ke}=ce([`user-info-basic`,y],()=>y?n({user_id:y}):Promise.resolve(De)),{mutateAsync:Ae,isPending:je}=se(async e=>r(e)),Me=E||je||Se!==null,U=H||Me,W=U?`cursor-not-allowed opacity-60`:`cursor-pointer`,Ne=ke?.data?.display_id||_?.display_id||`--`,G=w.gender||`secret`,Pe=U||P.trim()===w.nickname,Fe=U||L===G,Ie=U||B===w.signature,K=`flex h-12 w-full items-center rounded-md bg-[var(--color-surface-field-bg)] px-4`,q=`text-sm leading-6 text-text3`,J=`block min-w-0 flex-1 truncate text-sm leading-5 text-text3`;l(()=>{let e=Oe?.data;e&&T(_e(e))},[Oe]),l(()=>{if(!M)return;let e=window.setTimeout(()=>{ve(x.current)},250);return()=>{window.clearTimeout(e)}},[M]),l(()=>{if(!z)return;let e=window.setTimeout(()=>{ve(S.current)},250);return()=>{window.clearTimeout(e)}},[z]),l(()=>()=>{A&&URL.revokeObjectURL(A)},[A]);function Y(e,t){T(me(n=>{n[e]=t}))}function Le(){A&&(URL.revokeObjectURL(A),j(``))}function Re(){y&&(b([`user-edit-info`,y]),b([`user-info-basic`,y]),b([`user-profile`,`mine`]),b([`user-profile`,`mine`,y]),b([`user-profile`,`profile`,y]))}function X(e){!y||y!==g||ye({..._,user_id:y,...e})}function ze(){c.info(h(`page.editBlockedWhileSaving`))}function Z(){return H?!0:Me?(ze(),!0):!1}function Be(e){return C.current?(ze(),!1):(C.current=e,O(e),!0)}function Ve(e){C.current===e&&(C.current=null,O(null))}async function Q(e,t){if(!Be(e))return!1;let n=c.loading(h(`page.savingInProgress`));try{return await t()}finally{c.dismiss(n),Ve(e)}}function He(e,t){let n={...w,...t},r={nickname:[`nick_name`,n.nickname||void 0],avatar:[`avatar`,n.avatar||void 0],signature:[`signature`,n.signature||void 0],gender:[`gender`,v(n.gender)]},i=Object.keys(r).filter(t=>t!==e).map(e=>r[e]);return i.push(r[e]),Object.fromEntries(i)}async function $(e,t){if(!y)return c.error(h(`page.userNotFound`)),!1;let n=He(e,t);try{return await Ae({user_id:y,...n}),Re(),!0}catch(e){return console.error(`更新用户信息失败`,e),c.error(h(`page.updateFailed`)),!1}}function Ue(){Z()||E||xe.current?.click()}function We(e){if(Z()){e.target&&(e.target.value=``);return}let t=e.target.files?.[0];if(t){if(!ge(t)){c.error(h(`page.imageTypeInvalid`)),e.target&&(e.target.value=``);return}j(URL.createObjectURL(t)),k(!0),e.target&&(e.target.value=``)}}async function Ge(e){await Q(`avatar`,async()=>{try{D(!0);let t=await i(new File([e],`avatar.jpg`,{type:`image/jpeg`}),1);return await $(`avatar`,{avatar:t.objectKey})?(Y(`avatar`,t.objectKey),X({avatar:t.objectKey}),Ke(),c.success(h(`page.avatarUpdateSuccess`)),!0):!1}catch(e){return console.error(`上传头像失败`,e),c.error(h(`page.avatarUploadFailed`)),!1}finally{D(!1)}})}function Ke(){k(!1),Le()}function qe(){Z()||(F(w.nickname),N(!0))}function Je(e){let t=e.target.value;F(t)}function Ye(e){return e?e.length<2?h(`page.nicknameTooShort`):he.test(e)?``:h(`page.nicknameInvalidChars`):h(`page.nicknameRequired`)}async function Xe(e){if(Pe)return!1;let t=e.trim(),n=Ye(t);return n?(c.error(n),!1):await Q(`nickname`,async()=>$(`nickname`,{nickname:t}))?(Y(`nickname`,t),X({nick_name:t}),F(t),c.success(h(`page.nicknameUpdateSuccess`)),!0):!1}function Ze(){Z()||(R(G),I(!0))}function Qe(){I(!1)}function $e(e){R(e)}async function et(e){let t=e||L||`secret`;if(t===G)return!1;let n=v(t);return await Q(`gender`,async()=>$(`gender`,{gender:t}))?(Y(`gender`,t),X({gender:n}),R(t),c.success(h(`page.genderUpdateSuccess`)),!0):!1}function tt(){Z()||(V(w.signature),Te(!0))}function nt(e){let t=e.target.value;V(t)}function rt(e){let t=e.trim();return t.length>0&&t.length<2?h(`page.signatureTooShort`):``}async function it(e){if(Ie)return!1;let t=rt(e);return t?(c.error(t),!1):await Q(`signature`,async()=>$(`signature`,{signature:e}))?(Y(`signature`,e),X({signature:e}),V(e),c.success(h(`page.signatureUpdateSuccess`)),!0):!1}return p(a,{className:`min-h-screen bg-[var(--color-surface-panel-dark)]`,children:[f(le,{className:`h-11 !border-none !bg-[var(--color-surface-panel-dark)]`,title:h(`page.title`)}),p(a,{className:`mx-auto flex w-full max-w-[390px] flex-col px-8 pb-10 pt-17`,children:[p(`button`,{type:`button`,onClick:Ue,className:`flex flex-col items-center gap-4 pb-10 ${W}`,children:[f(`input`,{ref:xe,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:We}),f(a,{className:`flex h-[72px] w-[72px] items-center justify-center rounded-full bg-[var(--color-surface-white20)]`,children:p(ee,{className:`h-[60px] w-[60px] border-[3px] border-[var(--color-surface-white20)]`,children:[f(ne,{src:w.avatar}),f(te,{})]})}),p(o,{className:`text-base leading-5 text-text3`,children:[`ID:`,` `,H?h(`page.loading`):E?h(`page.avatarUploading`):`${Ne}`]})]}),p(a,{className:`flex flex-col gap-6`,children:[p(a,{className:`flex flex-col gap-2`,children:[f(o,{as:`p`,className:q,children:h(`page.label`)}),f(`button`,{type:`button`,onClick:qe,className:`${K} ${W}`,children:f(o,{className:J,children:w.nickname||h(`page.nicknamePlaceholder`)})})]}),p(a,{className:`flex flex-col gap-2`,children:[f(o,{as:`p`,className:q,children:h(`page.genderLabel`)}),p(`button`,{type:`button`,onClick:Ze,className:`${K} justify-between gap-3 ${W}`,children:[f(o,{className:J,children:be[G]||h(`page.genderSecret`)}),f(fe,{className:`h-5 w-5 shrink-0 text-text3`,strokeWidth:1.75})]})]}),p(a,{className:`flex flex-col gap-2`,children:[f(o,{as:`p`,className:q,children:h(`page.signatureLabel`)}),f(`button`,{type:`button`,onClick:tt,className:`${K} ${W}`,children:f(o,{className:J,children:w.signature||h(`page.signaturePlaceholder`)})})]})]})]}),f(s,{open:M,onClose:()=>N(!1),title:h(`page.label`),confirmText:h(`page.submit`),onConfirm:e=>Xe(String(e)),confirmDisabled:Pe,children:({onValueChange:e})=>f(a,{className:`px-4 py-4 min-h-[230px]`,children:p(re,{children:[f(ae,{ref:x,className:`!bg-bg1 p-2.5`,rows:4,maxLength:24,placeholder:h(`page.nicknamePlaceholder`),value:P,onChange:t=>{Je(t),e(t.target.value)},disabled:U}),f(ie,{className:`!bg-bg1`,align:`block-end`,children:f(`div`,{className:`text-right w-full`,children:p(`span`,{className:`text-xs`,children:[P.length,`/`,24]})})})]})})}),f(ue,{open:we,onClose:Qe,value:L,onValueChange:$e,onConfirm:et,confirmDisabled:Fe}),f(s,{open:z,onClose:()=>Te(!1),title:h(`page.signatureLabel`),confirmText:h(`page.submit`),onConfirm:e=>it(String(e)),confirmDisabled:Ie,children:({onValueChange:e})=>f(a,{className:`px-4 py-4 min-h-[230px]`,children:p(re,{children:[f(ae,{ref:S,className:`!bg-bg1 p-2.5`,rows:4,maxLength:100,placeholder:h(`page.signaturePlaceholder`),value:B,onChange:t=>{nt(t),e(t.target.value)},disabled:U}),f(ie,{className:`!bg-bg1`,align:`block-end`,children:f(`div`,{className:`text-right w-full`,children:p(`span`,{className:`text-xs`,children:[B.length,`/`,100]})})})]})})}),f(de,{open:Ce,onClose:Ke,imageSrc:A,onConfirm:Ge,cropShape:`round`})]})}export{ye as EditClient};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{useFollowIdsState as t}from"../../../store/modules/follow-ids-store.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{gContentGetAppChannels as r,gContentGetVideoDetail as i}from"../../../service/generated/client.mjs";import{
|
|
2
|
+
"use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{useFollowIdsState as t}from"../../../store/modules/follow-ids-store.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{gContentGetAppChannels as r,gContentGetVideoDetail as i}from"../../../service/generated/client.mjs";import{useLoginModalStore as a}from"../../../store/modules/login-modal-store.mjs";import{useRequest as o}from"../../../hooks/query/use-query.mjs";import{queryKey as s}from"../../../constants/query-key.mjs";import{useKeepAliveState as c}from"../../common/keep-scroll-position/index.mjs";import{batchQueryContentInteractions as l}from"../../../hooks/use-content-operate.mjs";import u from"../../biz/basics/fullscreen-feed/runtime/client.mjs";import d from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{SeriesEpisodes as ee}from"../../common/series-episodes/index.mjs";import{useCallback as f,useEffect as te,useLayoutEffect as ne,useMemo as p,useRef as re,useState as m}from"react";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";import{useTranslations as v}from"next-intl";function y(e,t){return(e||[]).map((e,n)=>({id:e.id||`${t||`episode`}-${n+1}`,name:e.name||String(n+1),preview_m3u8_url:e.preview_m3u8_url||e.preview_m3u8url||``,m3u8_url:e.m3u8_url||e.m3u8url||``}))}function b(e,t,n){let r=e.id||``,i=t||r,a=y(e.links,i),o=e.static,s=e.score===void 0||e.score===null?void 0:Number(e.score),c=e.duration===void 0||e.duration===null?void 0:Number(e.duration),l={id:i,mid:i,name:e.name||``,img_x:e.img_x||``,img_y:e.img_y||``,img_type:e.img_type||``,cat_id:e.cat_id||``,cat_name:e.cat_name||``,status:e.status||``,status_text:e.status_text||``,show_at:e.show_at||``,tags:[],update_status:e.update_status||``,description:e.description||``,language:e.language||``,director:e.director||``,issue_date:e.issue_date||``,actor:e.actor||``,up_user:e.up_user||``,money:e.money||``,source_username:e.source_username||``,task_id:e.task_id||``,file_status:e.file_status||``,score:Number.isFinite(s)?s:void 0,duration:Number.isFinite(c)?c:void 0,episode_cnt:a.length||0,links:[],static:{browse_cnt:Number(o?.browse_cnt||0),collect_cnt:Number(o?.collect_cnt||0),comment_cnt:Number(e.comment_count??o?.comment_cnt??0),like_cnt:Number(o?.like_cnt||0),share_cnt:Number(o?.share_cnt||0),dislike_cnt:Number(o?.dislike_cnt||0)},type:e.type??e.content_type,author:{avatar:``,user_id:``,nick_name:``,user_name:``,is_verified:!1}};if(a.length===0)return{seriesTitle:l.name,seriesList:[],contents:[{...l,links:[]}]};let u=a.map((e,t)=>{let r=e.id||`${i||`episode`}-${t+1}`,o=n(t+1),s=[e,...a.filter(t=>t.id!==e.id)];return{...l,id:r,mid:i,episode_name:o,links:s}});return{seriesTitle:l.name,seriesList:a,contents:u}}function x({params:y,initialContents:x}){let S=v(`components.pages.feedSeries`),C=v(`components.common.seriesEpisodes`),{locale:w,seriesId:T,episodeNum:E=`1`}=y,{userInfo:D,isLogin:O}=n(),{followIds:ie,setFollowIds:ae}=t(),k=p(()=>x??[],[x]),[A,j]=m({}),{data:oe}=o([s.CHANNEL],()=>r()),se=e(oe?.data),M=p(()=>`feed-series:${w||`default`}:${T}`,[w,T]),ce=p(()=>{let e=Number.parseInt(E??`1`,10);return Number.isNaN(e)?0:Math.max(0,e-1)},[E]),[N,le]=c(`${M}-active-index`,ce),[ue,P]=c(`${M}-user-interacted`,!1),[de,fe]=c(`${M}-series-title-toggle`,!1),[F,I]=m(!1),L=re(null),[R,z]=m(0),B=g(`div`,{ref:L,className:`fixed top-0 left-0 right-0 z-40`,children:g(d,{data:{list:se}})});ne(()=>{let e=L.current;if(!e)return;let t=()=>{z(Math.max(0,Math.round(e.getBoundingClientRect().height)))};t();let n=new ResizeObserver(()=>t());return n.observe(e),()=>{n.disconnect()}},[]);let{data:V,isFetching:H}=o(p(()=>[`feed-series-detail`,T],[T]),async()=>T?await i({id:T}):null,{enabled:!!T&&k.length===0}),U=p(()=>V?.data?.video,[V]),W=p(()=>U?b(U,T,e=>C(`episodeLabel`,{episode:e})):null,[U,T,C]),G=p(()=>k.length>0?k:W?.contents??[],[W?.contents,k]),K=p(()=>Object.keys(A).length===0?G:G.map(e=>{let t=A[e.id];return t?{...e,...t,static:t.static?{...e.static,...t.static}:e.static,author:t.author?{...e.author,...t.author}:e.author}:e}),[G,A]),q=W?.seriesTitle??(k[0]?.name||``),J=W?.seriesList??[],{data:Y}=o(p(()=>[`feed-series-interactions`,T,O],[O,T]),async()=>await l([T],1),{enabled:!!O&&!!T}),X=p(()=>Y?.interaction_list,[Y]);te(()=>{if(!X||X.length===0)return;let e=X.find(e=>e.content_id===T)||X[0];e&&j(t=>{let n=!1,r={...t};for(let t of G){let i=r[t.id],a={...i,is_liked:e.is_liked||!1,is_dislike:e.is_disliked??e.is_dislike??!1,is_collected:e.is_collected||!1,is_followed:e.is_followed||!1};(!i||i.is_liked!==a.is_liked||i.is_dislike!==a.is_dislike||i.is_collected!==a.is_collected||i.is_followed!==a.is_followed)&&(n=!0,r[t.id]=a)}return n?r:t})},[X,G,T]);let Z=f(({})=>{},[]),pe=f(()=>{a.getState().open()},[]),me=f((e,t)=>{let n=t.is_liked!==void 0||t.is_dislike!==void 0||t.is_collected!==void 0||t.is_followed!==void 0||t.static?.like_cnt!==void 0||t.static?.dislike_cnt!==void 0||t.static?.collect_cnt!==void 0||t.static?.comment_cnt!==void 0;j(r=>{if(!n)return{...r,[e]:{...r[e],...t,static:t.static?{...r[e]?.static,...t.static}:r[e]?.static,author:t.author?{...r[e]?.author,...t.author}:r[e]?.author}};let i=!1,a={...r};for(let e of G){let n=e.id,r=a[n],o=t.static?{...r?.static||{},...t.static}:r?.static,s=t.author?{...r?.author||{},...t.author}:r?.author,c={...r,...t,static:o,author:s},l=!1;if(t.is_liked!==void 0&&r?.is_liked!==t.is_liked&&(l=!0),t.is_dislike!==void 0&&r?.is_dislike!==t.is_dislike&&(l=!0),t.is_collected!==void 0&&r?.is_collected!==t.is_collected&&(l=!0),t.is_followed!==void 0&&r?.is_followed!==t.is_followed&&(l=!0),t.static){let e=r?.static||{};t.static.like_cnt!==void 0&&e.like_cnt!==t.static.like_cnt&&(l=!0),t.static.dislike_cnt!==void 0&&e.dislike_cnt!==t.static.dislike_cnt&&(l=!0),t.static.collect_cnt!==void 0&&e.collect_cnt!==t.static.collect_cnt&&(l=!0),t.static.comment_cnt!==void 0&&e.comment_cnt!==t.static.comment_cnt&&(l=!0)}if(t.author&&r?.author){let e=r.author,n=t.author;for(let t of Object.keys(n))if(e?.[t]!==n[t]){l=!0;break}}l&&(i=!0,a[n]=c)}return i?a:r})},[G]),Q=f((e,t)=>{le(e),Z({episodeId:T,episodeNum:e+1,mode:t===`jump`?`replace`:`push`})},[Z,T]),he=f(()=>({showSeriesButton:!0,seriesTitle:q,seriesText:`${N+1}/${J.length||K.length}`,onSeriesClick:()=>I(!0)}),[N,K.length,J.length,q]),$=p(()=>K[N]?.links?.[0]?.id||``,[N,K]);return T?H&&G.length===0?_(h,{children:[B,_(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:[S(`feedSeriesClient.episodeLoading`),`...`]})]}):!H&&G.length===0?_(h,{children:[B,g(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:S(`feedSeriesClient.noEpisodes`)})]}):_(h,{children:[B,g(u,{items:K,activeIndex:N,top:R,videoConfig:{loop:!1,autoNext:!0},userInteracted:ue,onUserInteracted:()=>P(!0),onActiveIndexChange:Q,onDataUpdate:me,getNavigationInfo:he,currentUserId:D.userId||void 0,followIds:ie,onFollowIdsChange:ae,commentContentId:T,onRequireLogin:pe,activeEpisodeId:$}),F&&g(ee,{mode:`selector`,variant:`sheet`,open:F,title:S(`feedSeriesClient.episodeSelectorTitle`),videoTitle:U?.name,updateStatus:U?.update_status,seriesList:J,activeEpisodeId:$,showEpisodeTitle:de,onToggleTitle:fe,onClose:()=>I(!1),onSelectEpisode:(e,t)=>{I(!1),Q(Math.max(0,t-1),`jump`)}})]}):_(h,{children:[B,_(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:[S(`feedSeriesClient.missingEpisode`),` `,`ID`]})]})}export{x 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{pUserUserFeedback as n}from"../../../../service/generated/client.mjs";import{compressImage as r}from"../../../../utils/image-compression.mjs";import{
|
|
2
|
+
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{useUserStore as t}from"../../../../store/modules/user-store.mjs";import{pUserUserFeedback as n}from"../../../../service/generated/client.mjs";import{compressImage as r}from"../../../../utils/image-compression.mjs";import{uploadFile as i}from"../../../../utils/upload-file.mjs";import{useRouter as a}from"../../../../utils/use-compatible-router.mjs";import{Button as o}from"../../../ui/button.mjs";import{Image as s}from"../../../ui/image.mjs";import{Box as c}from"../../../ui/box.mjs";import{InputGroup as l,InputGroupAddon as u,InputGroupInput as d,InputGroupTextarea as f}from"../../../ui/input-group.mjs";import{Field as p,FieldLabel as m}from"../../../ui/field.mjs";import{Text as h}from"../../../ui/text.mjs";import{HeaderNav as g}from"../../../common/header-nav/client.mjs";import{AddIcon as _}from"../../../common/icons/add.mjs";import{toast as v}from"sonner";import{useRef as y,useState as b}from"react";import{XIcon as x}from"lucide-react";import{jsx as S,jsxs as C}from"react/jsx-runtime";import{useTranslations as w}from"next-intl";const T=new Set([`image/jpeg`,`image/jpg`,`image/png`]),E=new Set([`jpg`,`jpeg`,`png`]);function D(e){let t=e.type.toLowerCase(),n=e.name.split(`.`).pop()?.toLowerCase()||``;return t?T.has(t):E.has(n)}function O({className:T}={}){let E=w(`components.pages.feedback.components`),O=a(),{userId:k}=t(),A=y(null),[j,M]=b({content:``,contact:``}),[N,P]=b([]),[F,I]=b(!1),[L,R]=b(!1),z=!j.content.trim();function B(e,t){M(n=>({...n,[e]:t}))}function V(){L||F||N.length>=3||A.current?.click()}async function H(e){let t=Array.from(e.target.files??[]);if(!t.length)return;let n=3-N.length;if(n<=0){e.target&&(e.target.value=``);return}let a=t.slice(0,n),o=a.filter(D);if(!o.length){v.error(E(`feedbackForm.imageTypeInvalid`)),e.target&&(e.target.value=``);return}o.length!==a.length&&v.error(E(`feedbackForm.imageTypeInvalid`));try{R(!0);let e=[],t=!1;for(let n of o)try{let t=await i(await r(n),1);e.push(t.objectKey)}catch(e){console.error(`上传截图失败`,e),t=!0}e.length&&P(t=>[...t,...e].slice(0,3)),t&&v.error(E(`feedbackForm.screenshotUploadFailed`))}catch(e){console.error(`上传截图失败`,e),v.error(E(`feedbackForm.screenshotUploadFailed`))}finally{R(!1),e.target&&(e.target.value=``)}}function U(e){L||F||P(t=>t.filter((t,n)=>n!==e))}async function W(){let e=j.content.trim(),t=j.contact.trim();if(!e){v.error(E(`feedbackForm.missingFeedback`));return}if(e.length<4){v.error(E(`feedbackForm.contentMinLength`));return}if(F)return;let r=v.loading(E(`feedbackForm.loading`));try{I(!0);let i=await n({user_id:k,feedback_content:e,feedback_screenshots:N.length?N:void 0,contact_info:t||void 0});if(i.code===0){M({content:``,contact:``}),P([]),O.push(`/settings`),v.success(E(`feedbackForm.submitsuccess`),{id:r});return}v.error(i.message||E(`feedbackForm.message`),{id:r})}catch(e){console.error(`提交反馈失败`,e),v.error(e.message||E(`feedbackForm.message`),{id:r})}finally{I(!1)}}return C(c,{className:e(`min-h-screen bg-[var(--color-surface-panel-dark)]`,T),children:[S(g,{title:E(`feedbackForm.title`),className:`!border-none !bg-[var(--color-surface-panel-dark)]`,rightChild:S(o,{onClick:W,disabled:F||L||z,className:`rounded-[8px] border-0 px-3 py-1.5 text-[16px] font-normal leading-6 text-white active:opacity-90 disabled:text-white/60 disabled:opacity-100`,style:{background:F||L||z?`linear-gradient(90deg, rgba(166, 86, 227, 0.45) 0%, rgba(108, 67, 238, 0.45) 100%)`:`var(--gradient-action-button)`},children:E(F?`feedbackForm.loading`:`feedbackForm.submit`)})}),C(c,{className:`pb-3`,children:[C(p,{className:`border-none bg-[var(--color-surface-panel-dark)] px-3`,children:[S(m,{required:!0,className:`text-sm leading-6 text-text3`,children:E(`feedbackForm.label`)}),C(l,{className:`overflow-hidden rounded-md !bg-[var(--color-surface-field-bg)] shadow-none dark:!bg-[var(--color-surface-field-bg)]`,children:[S(f,{className:`p-2.5 text-text1 placeholder:text-text3`,maxLength:500,placeholder:E(`feedbackForm.placeholder`),value:j.content,onChange:e=>B(`content`,e.target.value)}),S(u,{className:`!bg-transparent font-normal !text-text3`,align:`block-end`,children:S(`div`,{className:`w-full text-right`,children:C(`span`,{className:`text-xs tabular-nums text-text3`,children:[j.content.length,`/500`]})})})]})]}),C(p,{className:`border-none bg-[var(--color-surface-panel-dark)] px-3`,children:[S(m,{className:`text-sm leading-6 text-text3`,children:E(`feedbackForm.screenshotLabel`)}),S(`input`,{ref:A,type:`file`,multiple:!0,accept:`image/jpeg,image/jpg,image/png,.jpg,.jpeg,.png`,className:`hidden`,onChange:H}),C(c,{className:`mt-2 grid grid-cols-3 gap-2`,children:[N.map((e,t)=>C(c,{className:`relative aspect-square overflow-hidden rounded-md bg-[var(--color-surface-field-bg)] shadow-none`,children:[S(s,{src:e,alt:E(`feedbackForm.alt`),fill:!0,className:`object-cover`}),S(o,{size:`icon-xs`,variant:`secondary`,className:`absolute right-1 top-1 rounded-full bg-[var(--color-surface-chip-gray20)] text-text1 shadow-none`,onClick:()=>U(t),"aria-label":E(`feedbackForm.delete`),children:S(x,{})})]},`${e}-${t}`)),N.length<3&&C(c,{className:`flex aspect-square flex-col items-center justify-center gap-2 rounded-md border border-dashed border-[var(--color-line1)] bg-[var(--color-surface-field-bg)] py-3 text-center shadow-none`,onClick:V,children:[S(_,{}),S(h,{className:`text-xs text-text3`,children:E(L?`feedbackForm.uploading`:`feedbackForm.addScreenshot`)})]})]})]}),C(p,{className:`border-none bg-[var(--color-surface-panel-dark)] px-3`,children:[S(m,{className:`text-sm leading-6 text-text3`,children:E(`feedbackForm.contactLabel`)}),S(l,{className:`h-auto min-h-11 overflow-hidden rounded-md !bg-[var(--color-surface-field-bg)] shadow-none dark:!bg-[var(--color-surface-field-bg)]`,children:S(d,{className:`h-auto min-h-11 px-2.5 py-2.5 text-text1 placeholder:text-text3`,placeholder:E(`feedbackForm.placeholder1_6d0242`),value:j.contact,onChange:e=>B(`contact`,e.target.value)})})]})]})]})}export{O as FeedbackForm};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import
|
|
2
|
+
"use client";import e from"../../biz/basics/fullscreen-feed/runtime/client.mjs";import{useMixedFeedController as t}from"../../biz/basics/fullscreen-feed/runtime/use-mixed-feed-controller.mjs";import{useSeriesFeedController as n}from"../../biz/basics/fullscreen-feed/runtime/use-series-feed-controller.mjs";import{SeriesEpisodes as r}from"../../common/series-episodes/index.mjs";import{useCallback as i,useEffect as a,useMemo as o}from"react";import{usePathname as s}from"next/navigation";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";import{useTranslations as d}from"next-intl";function f({blockId:f,seriesId:p,initialContents:m,videoConfig:h,hasBottom:g,pageSize:_=6,initialActiveIndex:v=0,items:y,onSwipeTo:b,onEpisodeNavigate:x,onGoToEpisode:S,currentUserId:C,followIds:w,onFollowIdsChange:T,onRequireLogin:E}){let D=d(`components.pages.fullscreenFeed`),O=s(),k=o(()=>{let e=p?`series:${p}`:`block:${f||``}`;return`${O||`unknown`}:fullscreen-feed:${e}:pageSize:${_}`},[f,_,O,p]),A=`${k}:series-controller`,j=`${k}:mixed-controller`,M=n({seriesId:p||``,initialContents:m,initialActiveIndex:v,onEpisodeNavigate:x,keepAliveKey:A}),N=t({blockId:f||``,initialContents:m,initialActiveIndex:v,pageSize:_,keepAliveKey:j}),P=p?M:N,F=y||P.items,I=P.activeIndex,L=P.userInteracted,R=i((e,t)=>{P.setActiveIndex(e,t),p||N.maybeLoadMore(e),b?.({activeIndex:e,items:F,direction:t})},[P,F,b,p,N]),z=i((e,t)=>{P.updateItemData(e,t)},[P]),B=i(e=>P.getNavigationInfo(e),[P]);return a(()=>{S&&S(e=>{R(e,`jump`)})},[S,R]),!f&&!p?l(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/70`,children:D(`page.missingParams`)}):u(c,{children:[l(e,{items:F,activeIndex:I,bottom:g?56:void 0,videoConfig:h,userInteracted:L,onUserInteracted:P.setUserInteracted,onActiveIndexChange:R,onDataUpdate:z,getNavigationInfo:B,currentUserId:C,followIds:w,onFollowIdsChange:T,onRequireLogin:E}),p&&M.isSeriesSelectorOpen&&l(r,{title:D(`page.episodeSelectorTitle`),videoTitle:M.seriesMeta.seriesTitle,mode:`selector`,variant:`sheet`,open:M.isSeriesSelectorOpen,seriesList:M.seriesMeta.seriesList,activeEpisodeId:M.activeEpisodeId,onClose:M.closeSeriesSelector,onSelectEpisode:M.onSelectEpisode})]})}export{f as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{gContentGetAppChannelBlock as e,gContentGetAppChannelBlockData as t,gContentListVisibleFloatingBall as n}from"../../../service/generated/client.mjs";import{
|
|
2
|
+
"use client";import{gContentGetAppChannelBlock as e,gContentGetAppChannelBlockData as t,gContentListVisibleFloatingBall as n}from"../../../service/generated/client.mjs";import{useRouter as r}from"../../../utils/use-compatible-router.mjs";import{useRequest as i}from"../../../hooks/query/use-query.mjs";import{useRequireLogin as a}from"../../../hooks/use-auth.mjs";import{queryKey as o}from"../../../constants/query-key.mjs";import{useKeepAliveState as s}from"../../common/keep-scroll-position/index.mjs";import{FloatingAd as c}from"../../biz/business/advertisement/floating-ad/client.mjs";import{extractDataByComponentType as l}from"../../biz/utils/transformers/data.mjs";import{useEffect as u,useLayoutEffect as d,useMemo as f,useRef as p}from"react";import{Fragment as m,jsx as h,jsxs as g}from"react/jsx-runtime";function _(){if(typeof document>`u`)return 0;let e=document.querySelector(`[data-top-nav-root="true"]`);return e&&e.getBoundingClientRect().height||0}function v({currentChannelId:v,currentChannelName:y,isPGC:b}){let x=r(),S=a(),{data:C}=i(o.GET_CONTENT_LIST(v),()=>e({channel_id:v})),{data:w}=i([o.FLOATING_BALL],()=>n()),T=f(()=>C?.data?.blocks||[],[C?.data?.blocks]),E=f(()=>{let e=T.findIndex(e=>e.type===4),t=e>=0?T[e]:null;return{index:e,block:t,blockId:t?.id||``}},[T]),{data:D}=i([o.GUESS_YOU_LIKE_USER_DATA,E.blockId],()=>t({block_id:E.blockId}),{enabled:!!E.blockId}),O=f(()=>{if(E.index<0)return T;let e=D?.data.block?.data?.users||[];return T.map((t,n)=>n===E.index?{...t,data:{...t.data||{},users:e}}:t)},[T,D,E.index]),[k,A]=s(`home-scroll-top-${v}`,0),j=p({restored:!1,lastScrollTop:k,key:v,rafId:null}),M=p(A),N=p(k);u(()=>{M.current=A},[A]),u(()=>{N.current=k},[k]),u(()=>{j.current.key!==v&&(j.current.restored=!1,j.current.lastScrollTop=k,N.current=k,j.current.key=v)},[v,k]);let P=O.length>0;d(()=>{if(!P||j.current.restored||k<=0)return;let e=_(),t=Math.max(0,k+e);window.requestAnimationFrame(()=>{window.scrollTo({top:t}),j.current.restored=!0,j.current.lastScrollTop=t})},[P,v,k]),u(()=>{let e=j.current;function t(){e.restored=!0,e.rafId!==null&&window.cancelAnimationFrame(e.rafId),e.rafId=window.requestAnimationFrame(()=>{e.rafId=null;let t=window.scrollY??document.documentElement.scrollTop??0,n=_(),r=Math.max(0,t-n);Math.abs(t-e.lastScrollTop)>1&&(e.lastScrollTop=t,M.current(r))})}return window.addEventListener(`scroll`,t,{passive:!0}),()=>{e.rafId!==null&&(window.cancelAnimationFrame(e.rafId),e.rafId=null),window.removeEventListener(`scroll`,t)}},[v]);let F=f(()=>l(O,b),[O,b]),I=f(()=>w?.data?.ball_infos?.find(e=>e.channel_id===v),[w?.data?.ball_infos,v]);return g(m,{children:[I&&h(c,{ad:{materialUrl:I.material_url||``,jumpUrl:I.jump_url||``,name:I.name||``},onClick:()=>{S(()=>{I?.jump_url&&x.push(I.jump_url)})}}),F.map(e=>{let t=e.component,n=e.data.block_id||`block-${e.data.title||``}`;return h(t,{data:e.data},n)})]})}export{v as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{hashPassword as e}from"../../../utils/common.mjs";import{pUserLogin as t}from"../../../service/generated/client.mjs";import{
|
|
2
|
+
"use client";import{hashPassword as e}from"../../../utils/common.mjs";import{pUserLogin as t}from"../../../service/generated/client.mjs";import{Box as n}from"../../ui/box.mjs";import{useLoginModalStore as r}from"../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as i}from"../../../hooks/query/use-query.mjs";import{useSetAuthFields as a}from"../../../hooks/use-auth.mjs";import{Forgot as o}from"./forgot.mjs";import{LoginClient as s}from"./login-client.mjs";import{Password as c}from"./password.mjs";import{Register as l}from"./register.mjs";import{ResetPassword as u}from"./reset-password.mjs";import{Verify as d}from"./verify.mjs";import{toast as f}from"sonner";import{useState as p}from"react";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{useTranslations as g}from"next-intl";function _(_){let{initialStep:v=`login`}=_,{close:y,resolveLogin:b}=r(),[x,S]=p(v),[C,w]=p(``),T=a(),[E,D]=p(``),O=i(),k=g(`components.pages.login`);return h(n,{className:`min-h-screen w-full h-full bg-bg1 text-text1 flex flex-col fixed top-0 left-0 right-0 bottom-0 z-50`,children:[x===`login`&&m(s,{onRegister:()=>S(`register`),onForgotPassword:()=>S(`forgot`),errorText:E,onSubmit:async n=>{D(``);try{let r=e(n.password),{data:i}=await t({email:n.email,password:r});T({token:i.token,expireTime:i.expire_time,userId:i.user_id}),f.success(k(`index.loginSuccess`)),O([`user-profile`,`mine`]),b(!0)}catch(e){D(e.message??k(`index.loginFailed`))}},onClose:()=>{y()}}),x===`register`&&m(l,{onLogin:()=>S(`login`),onClose:()=>S(`login`),onVerify:e=>{w(e),S(`verify`)}}),x===`forgot`&&m(o,{onLogin:()=>S(`login`),onClose:()=>S(`login`),onVerify:e=>{w(e),S(`verify`)}}),x===`reset-password`&&m(u,{onClose:()=>{y()},onPassword:e=>{w(e??``),S(`password`)}}),x===`verify`&&m(d,{email:C,onClose:()=>S(`register`),onPassword:e=>{w(e),S(`password`)}}),x===`password`&&m(c,{email:C,onClose:()=>S(`verify`)})]})}export{_ as Login};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetComments as n,gCommunityGetContentInfo as r,gCommunityGetContentList as i,gContentGetAppChannels as a}from"../../../service/generated/client.mjs";import{checkFollowStatus as o}from"../../../utils/follow-service.mjs";import{usePageLifecycle as s}from"../../../utils/tracking.mjs";import{EmptyState as c}from"../../ui/empty.mjs";import{useRequest as l}from"../../../hooks/query/use-query.mjs";import{useBrowseReport as u}from"../../../hooks/use-browse-report.mjs";import{queryKey as ee}from"../../../constants/query-key.mjs";import{useKeepAliveEffect as te,useKeepAliveState as d}from"../../common/keep-scroll-position/index.mjs";import{apiCollectClick as f}from"../../../utils/api-collect.mjs";import{batchQueryContentInteractions as p}from"../../../hooks/use-content-operate.mjs";import ne from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{DetailFollowAction as re}from"../../biz/business/detail/shared/detail-follow-action.mjs";import{DetailOperate as ie}from"../../biz/business/detail/shared/detail-operate.mjs";import{PostRecommendList as m}from"../../biz/business/detail/shared/post-recommend-list.mjs";import{DetailHero as h}from"../../biz/business/detail/shared/video-hero.mjs";import g from"../../biz/business/comment/comment-list.mjs";import _ from"../../common/info-card/card-header.mjs";import ae from"../../common/info-card/card-text.mjs";import{useCallback as oe,useEffect as v,useMemo as y}from"react";import{useSearchParams as b}from"next/navigation";import{Fragment as x,jsx as S,jsxs as C}from"react/jsx-runtime";import{useTranslations as se}from"next-intl";function w(e){if(!e||typeof e!=`object`||!e.content_id)return null;let t=Array.isArray(e.medias)?e.medias:[],n=t.filter(e=>e&&e.is_video===!1),r=t.filter(e=>e&&e.is_video===!0),i=n.map(e=>e.media_url).filter(e=>typeof e==`string`&&e.length>0),a=(Array.isArray(e.images)?e.images:[]).map(e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.url||e.image_url||e.media_url)||``).filter(e=>typeof e==`string`&&e.length>0),o=i.length?i:a,s=r.map(e=>e.cover_image).find(e=>typeof e==`string`&&e.length>0),c=o[0]||``,l=e.cover_image||s||c||``,u=(Array.isArray(e.tags)?e.tags:[]).map(e=>{if(e&&typeof e==`object`){let t=e.id??e.name??``,n=e.name??e.id??``,r=e.group??``;return{id:String(t),name:String(n),group:String(r)}}return{id:String(e),name:String(e),group:``}}).filter(e=>!!(e.id||e.name));return{...t.length?{medias:t}:{},id:e.content_id,mid:e.content_id,name:e.title||``,cat_id:``,cat_name:``,status:String(e.status||`2`),status_text:``,create_time:e.create_time,show_at:e.create_time,position:``,img_type:``,img_x:l,img_y:l,img_width:``,img_height:``,preview_images:o,score:``,duration:``,is_more_link:`n`,update_status:`1`,description:e.content||``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:u,source_tags:u.map(e=>e.name).filter(Boolean).join(`,`),source_actor:[],links:[],money:``,up_user:e.user_id||e.author?.user_id||``,source_username:e.author?.nickname||e.author?.username||``,task_id:``,file_status:``,content_type:2,author:{...e.author,avatar:e.author.avatar_url},like:e.interaction?.is_liked||!1,dislike:e.interaction?.is_dislike||!1,collect:e.interaction?.is_collected||!1,is_followed:e.interaction?.is_followed||!1,static:{like_cnt:e.like_count||0,comment_cnt:e.comment_count||0,share_cnt:e.share_count||0,browse_cnt:e.view_count||0},info:{text:e.content||``,images:o}}}function ce(e){let t=Array.isArray(e.medias)?e.medias:[],n=t.filter(e=>e&&e.is_video===!1).map(e=>e.media_url).filter(e=>typeof e==`string`&&e.length>0),r=(Array.isArray(e.images)?e.images:[]).map(e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.url||e.image_url||e.media_url)||``).filter(e=>typeof e==`string`&&e.length>0),i=n.length?n:r,a=t.filter(e=>e&&e.is_video===!0).map(e=>e.cover_image).find(e=>typeof e==`string`&&e.length>0),o=e.cover_image||a||i[0]||``,s=(Array.isArray(e.tags)?e.tags:[]).map(e=>{if(e&&typeof e==`object`){let t=e.id??e.name??``,n=e.name??e.id??``,r=e.group??``;return{id:String(t),name:String(n),group:String(r)}}return{id:String(e),name:String(e),group:``}}).filter(e=>!!(e.id||e.name)),c=t.length?t:i.filter(Boolean).map(e=>({media_url:e,is_video:!1,cover_image:``}));return{...c.length?{medias:c}:{},id:e.content_id||``,mid:e.content_id||``,name:e.title||``,cat_id:``,cat_name:``,status:String(e.status||`2`),status_text:``,create_time:e.create_time,show_at:e.create_time,position:``,img_type:``,img_x:o,img_y:o,img_width:``,img_height:``,preview_images:i,score:``,duration:``,is_more_link:`n`,update_status:`1`,description:e.content||``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:s,source_tags:s.map(e=>e.name).filter(Boolean).join(`,`),source_actor:[],links:[],money:``,up_user:e.user_id||e.author?.user_id||``,source_username:e.author?.nickname||e.author?.username||``,task_id:``,file_status:``,content_type:2,author:{...e.author,avatar:e.author.avatar_url},like:e.interaction?.is_liked||!1,dislike:e.interaction?.is_dislike||!1,collect:e.interaction?.is_collected||!1,is_followed:e.interaction?.is_followed||!1,statics_cnt:{like_cnt:String(e.like_count||0),dislike_cnt:String(e.dislike_count||0),comment_cnt:String(e.comment_count||0),share_cnt:String(e.share_count||0),browse_cnt:String(e.view_count||0),collect_cnt:String(e.collect_count||0)}}}function T({detailId:f,initialInformation:T,initialRecommendList:le,initialCommentList:E,initialCommentTotal:D,initialCommentHasMore:O}){let k=se(`components.pages.postDetail`),A=b(),{isLogin:ue,userInfo:de,userId:fe}=t(),j=fe||de?.userId||``;s(`page_post_detail`,`详情页`),u({contentId:f,contentType:2,enabled:!!f,enableIntervalReport:!1,enableExitReport:!1});let{data:M}=l(y(()=>[`post-detail`,f],[f]),async()=>f?await r({content_id:f}):null,{enabled:!!f}),N=y(()=>{let e=M?.data?.data;return w(e)},[M?.data?.data]),pe=T??N??null,{data:P}=l(y(()=>[`post-detail-recommend`,f],[f]),async()=>f?await i({page:1,page_size:6,sort_by:`recommend`}):null,{enabled:!!f}),F=y(()=>(P?.data?.data?.contents??[]).filter(e=>e.content_id!==f).slice(0,4).map(e=>ce(e)),[f,P?.data?.data?.contents]),I=le??F??[],[L,R]=d(`detail-information-${f}`,pe),[z,B]=d(`detail-recommend-${f}`,I),[V,H]=d(`info-detail-comment-add-count-${f}`,0),U=y(()=>L?.content_type===0,[L?.content_type]),W=y(()=>[`post-detail-comments`,f,1,5],[5,f]),{data:G}=l(W,async()=>f?await n({content_id:f,page:1,page_size:5,sort_by:`latest`}):null,{enabled:!!f}),me=y(()=>{if(E?.length)return E;let e=G?.data?.data?.comments??[];if(e.length>0)return e},[G?.data?.data?.comments,E]),K=y(()=>{if(typeof D==`number`)return D;if(G?.data?.data)return typeof G?.data?.data?.total==`number`?G.data.data.total:void 0},[G?.data?.data,D]),he=y(()=>{if(typeof O==`boolean`)return O;if(G?.data?.data)return G?.data?.data?.has_more??!1},[G?.data?.data,O]),[q,J]=d(`post-detail-comment-total-${f}`,typeof D==`number`?D:void 0);v(()=>{typeof K==`number`&&J(e=>typeof e==`number`?Math.max(e,K):K)},[K,J]);let ge=y(()=>[`detail-interaction`,L?.id,L?.content_type],[L?.content_type,L?.id]),Y=L?.up_user||``,_e=!!(j&&Y&&j===Y),ve=y(()=>[`detail-follow-status`,j,Y],[j,Y]),{data:X}=l(ge,async()=>!L?.id||typeof L.content_type!=`number`?null:await p([L.id],2),{enabled:!!L?.id}),{data:Z}=l(ve,async()=>!j||!Y?null:await o({app_id:0,follower_id:j,followee_ids:[Y]}),{enabled:!!ue&&!!j&&!!Y&&!_e});v(()=>{!L&&N&&R(N)},[L,N,R]),v(()=>{z.length===0&&F.length>0&&B(F)},[z.length,F,B]),v(()=>{if(!X?.interaction_list?.[0])return;let e=X.interaction_list[0];R(t=>{if(!t)return t;let n=t.static?.like_cnt,r=typeof n==`number`?n:Number(n||0),i=!!e.is_liked&&r===0;return{...t,like:e.is_liked||!1,dislike:e.is_disliked||!1,collect:e.is_collected||!1,static:i?{...t.static||{},like_cnt:1}:t.static}})},[X,R]),v(()=>{if(!Z?.data||!Y)return;let e=!!Z.data?.is_following_map?.[Y];R(t=>!t||t.is_followed===e?t:{...t,is_followed:e})},[Z?.data,Y,R]);let Q=oe(e=>{R(t=>t&&{...t,...e})},[R]);te(()=>{L?.id&&L.id},[L?.id],`detail-page-report-${f}`),v(()=>{!L||typeof window>`u`||window.sensors?.track?.(`detail_page_view`,{object_id:L.id||f,author_id:L.up_user,object_type:L.content_type,object_category:L.content_type,object_tags:L.tags?.map(e=>e.name),block_id:``,page_source:window.location?.pathname||``})},[f,L]),v(()=>{H(0)},[L?.id,H]);let ye=y(()=>(typeof q==`number`?q:typeof K==`number`?K:0)+V,[V,q,K]);v(()=>{A?.get(`tab`)===`comment`&&(typeof window>`u`||window.requestAnimationFrame(()=>{document.getElementById(`detail-comments`)?.scrollIntoView({behavior:`smooth`,block:`start`})}))},[L?.id,A]);let $=L?.status===`2`,{data:be}=l([ee.CHANNEL],()=>a());return C(`div`,{className:`w-full min-h-screen bg-bg2 text-text1 pt-11`,children:[S(`div`,{className:`fixed top-0 left-0 right-0 z-40`,children:S(ne,{data:{list:e(be?.data)}})}),S(`div`,{className:`mx-auto w-full max-w-[840px] pb-6`,children:C(x,{children:[L&&!$&&S(c,{type:`no-content`,text:k(`postDetailClient.postOffline`)}),L&&$&&C(x,{children:[U&&S(h,{information:L,isVideo:!0}),C(`article`,{className:`w-full`,children:[S(_,{infoData:L,rightChild:S(re,{information:L,onUpdate:Q})}),S(ae,{infoData:L,isEllipsis:!1}),!U&&S(`div`,{className:`mt-[12px]`,children:S(h,{information:L,isVideo:!1})})]}),S(ie,{information:L,onUpdate:Q}),C(`div`,{id:`detail-comments`,className:`w-full border-t-[8px] border-bg2 mt-[12px]`,children:[C(`div`,{className:`w-full px-[16px] h-[40px] flex items-center justify-between border-b-[1px] border-line1`,children:[S(`p`,{className:`text-[16px] text-text1 font-bold`,children:k(`postDetailClient.comment`)}),C(`p`,{className:`text-[12px] text-text3`,children:[ye,k(`postDetailClient.reactions`)]})]}),S(g,{listQueryKey:W,contentId:L.id,information:L,isShow:!1,isClickLoad:!0,initialComments:me,initialTotal:K,initialHasMore:he,addCommentCount:()=>{H(e=>e+1)},onTotalChange:e=>{J(t=>typeof t==`number`?Math.max(t,e):e)}})]}),z.length>0&&S(m,{information:L,initRecommendList:z})]}),!L&&S(c,{type:`no-content`,text:k(`postDetailClient.postDeleted`)})]})})]})}export{T as default};
|
|
2
|
+
"use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetComments as n,gCommunityGetContentInfo as r,gCommunityGetContentList as i,gContentGetAppChannels as a}from"../../../service/generated/client.mjs";import{checkFollowStatus as o}from"../../../utils/follow-service.mjs";import{EmptyState as s}from"../../ui/empty.mjs";import{useRequest as c}from"../../../hooks/query/use-query.mjs";import{useBrowseReport as l}from"../../../hooks/use-browse-report.mjs";import{queryKey as u}from"../../../constants/query-key.mjs";import{useKeepAliveEffect as ee,useKeepAliveState as d}from"../../common/keep-scroll-position/index.mjs";import{apiCollectClick as f}from"../../../utils/api-collect.mjs";import{batchQueryContentInteractions as p}from"../../../hooks/use-content-operate.mjs";import m from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{DetailFollowAction as te}from"../../biz/business/detail/shared/detail-follow-action.mjs";import{DetailOperate as ne}from"../../biz/business/detail/shared/detail-operate.mjs";import{PostRecommendList as re}from"../../biz/business/detail/shared/post-recommend-list.mjs";import{DetailHero as h}from"../../biz/business/detail/shared/video-hero.mjs";import g from"../../biz/business/comment/comment-list.mjs";import ie from"../../common/info-card/card-header.mjs";import ae from"../../common/info-card/card-text.mjs";import{useCallback as oe,useEffect as _,useMemo as v}from"react";import{useSearchParams as y}from"next/navigation";import{Fragment as b,jsx as x,jsxs as S}from"react/jsx-runtime";import{useTranslations as se}from"next-intl";function C(e){if(!e||typeof e!=`object`||!e.content_id)return null;let t=Array.isArray(e.medias)?e.medias:[],n=t.filter(e=>e&&e.is_video===!1),r=t.filter(e=>e&&e.is_video===!0),i=n.map(e=>e.media_url).filter(e=>typeof e==`string`&&e.length>0),a=(Array.isArray(e.images)?e.images:[]).map(e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.url||e.image_url||e.media_url)||``).filter(e=>typeof e==`string`&&e.length>0),o=i.length?i:a,s=r.map(e=>e.cover_image).find(e=>typeof e==`string`&&e.length>0),c=o[0]||``,l=e.cover_image||s||c||``,u=(Array.isArray(e.tags)?e.tags:[]).map(e=>{if(e&&typeof e==`object`){let t=e.id??e.name??``,n=e.name??e.id??``,r=e.group??``;return{id:String(t),name:String(n),group:String(r)}}return{id:String(e),name:String(e),group:``}}).filter(e=>!!(e.id||e.name));return{...t.length?{medias:t}:{},id:e.content_id,mid:e.content_id,name:e.title||``,cat_id:``,cat_name:``,status:String(e.status||`2`),status_text:``,create_time:e.create_time,show_at:e.create_time,position:``,img_type:``,img_x:l,img_y:l,img_width:``,img_height:``,preview_images:o,score:``,duration:``,is_more_link:`n`,update_status:`1`,description:e.content||``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:u,source_tags:u.map(e=>e.name).filter(Boolean).join(`,`),source_actor:[],links:[],money:``,up_user:e.user_id||e.author?.user_id||``,source_username:e.author?.nickname||e.author?.username||``,task_id:``,file_status:``,content_type:2,author:{...e.author,avatar:e.author.avatar_url},like:e.interaction?.is_liked||!1,dislike:e.interaction?.is_dislike||!1,collect:e.interaction?.is_collected||!1,is_followed:e.interaction?.is_followed||!1,static:{like_cnt:e.like_count||0,comment_cnt:e.comment_count||0,share_cnt:e.share_count||0,browse_cnt:e.view_count||0},info:{text:e.content||``,images:o}}}function ce(e){let t=Array.isArray(e.medias)?e.medias:[],n=t.filter(e=>e&&e.is_video===!1).map(e=>e.media_url).filter(e=>typeof e==`string`&&e.length>0),r=(Array.isArray(e.images)?e.images:[]).map(e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.url||e.image_url||e.media_url)||``).filter(e=>typeof e==`string`&&e.length>0),i=n.length?n:r,a=t.filter(e=>e&&e.is_video===!0).map(e=>e.cover_image).find(e=>typeof e==`string`&&e.length>0),o=e.cover_image||a||i[0]||``,s=(Array.isArray(e.tags)?e.tags:[]).map(e=>{if(e&&typeof e==`object`){let t=e.id??e.name??``,n=e.name??e.id??``,r=e.group??``;return{id:String(t),name:String(n),group:String(r)}}return{id:String(e),name:String(e),group:``}}).filter(e=>!!(e.id||e.name)),c=t.length?t:i.filter(Boolean).map(e=>({media_url:e,is_video:!1,cover_image:``}));return{...c.length?{medias:c}:{},id:e.content_id||``,mid:e.content_id||``,name:e.title||``,cat_id:``,cat_name:``,status:String(e.status||`2`),status_text:``,create_time:e.create_time,show_at:e.create_time,position:``,img_type:``,img_x:o,img_y:o,img_width:``,img_height:``,preview_images:i,score:``,duration:``,is_more_link:`n`,update_status:`1`,description:e.content||``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:s,source_tags:s.map(e=>e.name).filter(Boolean).join(`,`),source_actor:[],links:[],money:``,up_user:e.user_id||e.author?.user_id||``,source_username:e.author?.nickname||e.author?.username||``,task_id:``,file_status:``,content_type:2,author:{...e.author,avatar:e.author.avatar_url},like:e.interaction?.is_liked||!1,dislike:e.interaction?.is_dislike||!1,collect:e.interaction?.is_collected||!1,is_followed:e.interaction?.is_followed||!1,statics_cnt:{like_cnt:String(e.like_count||0),dislike_cnt:String(e.dislike_count||0),comment_cnt:String(e.comment_count||0),share_cnt:String(e.share_count||0),browse_cnt:String(e.view_count||0),collect_cnt:String(e.collect_count||0)}}}function w({detailId:f,initialInformation:w,initialRecommendList:le,initialCommentList:T,initialCommentTotal:E,initialCommentHasMore:D}){let O=se(`components.pages.postDetail`),k=y(),{isLogin:ue,userInfo:de,userId:A}=t(),j=A||de?.userId||``;l({contentId:f,contentType:2,enabled:!!f,enableIntervalReport:!1,enableExitReport:!1});let{data:M}=c(v(()=>[`post-detail`,f],[f]),async()=>f?await r({content_id:f}):null,{enabled:!!f}),N=v(()=>{let e=M?.data?.data;return C(e)},[M?.data?.data]),fe=w??N??null,{data:P}=c(v(()=>[`post-detail-recommend`,f],[f]),async()=>f?await i({page:1,page_size:6,sort_by:`recommend`}):null,{enabled:!!f}),F=v(()=>(P?.data?.data?.contents??[]).filter(e=>e.content_id!==f).slice(0,4).map(e=>ce(e)),[f,P?.data?.data?.contents]),I=le??F??[],[L,R]=d(`detail-information-${f}`,fe),[z,B]=d(`detail-recommend-${f}`,I),[V,H]=d(`info-detail-comment-add-count-${f}`,0),U=v(()=>L?.content_type===0,[L?.content_type]),W=v(()=>[`post-detail-comments`,f,1,5],[5,f]),{data:G}=c(W,async()=>f?await n({content_id:f,page:1,page_size:5,sort_by:`latest`}):null,{enabled:!!f}),pe=v(()=>{if(T?.length)return T;let e=G?.data?.data?.comments??[];if(e.length>0)return e},[G?.data?.data?.comments,T]),K=v(()=>{if(typeof E==`number`)return E;if(G?.data?.data)return typeof G?.data?.data?.total==`number`?G.data.data.total:void 0},[G?.data?.data,E]),me=v(()=>{if(typeof D==`boolean`)return D;if(G?.data?.data)return G?.data?.data?.has_more??!1},[G?.data?.data,D]),[q,J]=d(`post-detail-comment-total-${f}`,typeof E==`number`?E:void 0);_(()=>{typeof K==`number`&&J(e=>typeof e==`number`?Math.max(e,K):K)},[K,J]);let he=v(()=>[`detail-interaction`,L?.id,L?.content_type],[L?.content_type,L?.id]),Y=L?.up_user||``,ge=!!(j&&Y&&j===Y),_e=v(()=>[`detail-follow-status`,j,Y],[j,Y]),{data:X}=c(he,async()=>!L?.id||typeof L.content_type!=`number`?null:await p([L.id],2),{enabled:!!L?.id}),{data:Z}=c(_e,async()=>!j||!Y?null:await o({app_id:0,follower_id:j,followee_ids:[Y]}),{enabled:!!ue&&!!j&&!!Y&&!ge});_(()=>{!L&&N&&R(N)},[L,N,R]),_(()=>{z.length===0&&F.length>0&&B(F)},[z.length,F,B]),_(()=>{if(!X?.interaction_list?.[0])return;let e=X.interaction_list[0];R(t=>{if(!t)return t;let n=t.static?.like_cnt,r=typeof n==`number`?n:Number(n||0),i=!!e.is_liked&&r===0;return{...t,like:e.is_liked||!1,dislike:e.is_disliked||!1,collect:e.is_collected||!1,static:i?{...t.static||{},like_cnt:1}:t.static}})},[X,R]),_(()=>{if(!Z?.data||!Y)return;let e=!!Z.data?.is_following_map?.[Y];R(t=>!t||t.is_followed===e?t:{...t,is_followed:e})},[Z?.data,Y,R]);let Q=oe(e=>{R(t=>t&&{...t,...e})},[R]);ee(()=>{L?.id&&L.id},[L?.id],`detail-page-report-${f}`),_(()=>{!L||typeof window>`u`||window.sensors?.track?.(`detail_page_view`,{object_id:L.id||f,author_id:L.up_user,object_type:L.content_type,object_category:L.content_type,object_tags:L.tags?.map(e=>e.name),block_id:``,page_source:window.location?.pathname||``})},[f,L]),_(()=>{H(0)},[L?.id,H]);let ve=v(()=>(typeof q==`number`?q:typeof K==`number`?K:0)+V,[V,q,K]);_(()=>{k?.get(`tab`)===`comment`&&(typeof window>`u`||window.requestAnimationFrame(()=>{document.getElementById(`detail-comments`)?.scrollIntoView({behavior:`smooth`,block:`start`})}))},[L?.id,k]);let $=L?.status===`2`,{data:ye}=c([u.CHANNEL],()=>a());return S(`div`,{className:`w-full min-h-screen bg-bg2 text-text1 pt-11`,children:[x(`div`,{className:`fixed top-0 left-0 right-0 z-40`,children:x(m,{data:{list:e(ye?.data)}})}),x(`div`,{className:`mx-auto w-full max-w-[840px] pb-6`,children:S(b,{children:[L&&!$&&x(s,{type:`no-content`,text:O(`postDetailClient.postOffline`)}),L&&$&&S(b,{children:[U&&x(h,{information:L,isVideo:!0}),S(`article`,{className:`w-full`,children:[x(ie,{infoData:L,rightChild:x(te,{information:L,onUpdate:Q})}),x(ae,{infoData:L,isEllipsis:!1}),!U&&x(`div`,{className:`mt-[12px]`,children:x(h,{information:L,isVideo:!1})})]}),x(ne,{information:L,onUpdate:Q}),S(`div`,{id:`detail-comments`,className:`w-full border-t-[8px] border-bg2 mt-[12px]`,children:[S(`div`,{className:`w-full px-[16px] h-[40px] flex items-center justify-between border-b-[1px] border-line1`,children:[x(`p`,{className:`text-[16px] text-text1 font-bold`,children:O(`postDetailClient.comment`)}),S(`p`,{className:`text-[12px] text-text3`,children:[ve,O(`postDetailClient.reactions`)]})]}),x(g,{listQueryKey:W,contentId:L.id,information:L,isShow:!1,isClickLoad:!0,initialComments:pe,initialTotal:K,initialHasMore:me,addCommentCount:()=>{H(e=>e+1)},onTotalChange:e=>{J(t=>typeof t==`number`?Math.max(t,e):e)}})]}),z.length>0&&x(re,{information:L,initRecommendList:z})]}),!L&&x(s,{type:`no-content`,text:O(`postDetailClient.postDeleted`)})]})})]})}export{w as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{getAtUserElement as e}from"../../../utils/common.mjs";import{cn as t}from"../../../utils/cn.mjs";import n from"../../../utils/event-bus.mjs";import{pCommunityPublishContent as r}from"../../../service/generated/client.mjs";import{
|
|
2
|
+
"use client";import{getAtUserElement as e}from"../../../utils/common.mjs";import{cn as t}from"../../../utils/cn.mjs";import n from"../../../utils/event-bus.mjs";import{pCommunityPublishContent as r}from"../../../service/generated/client.mjs";import{useRouter as ee}from"../../../utils/use-compatible-router.mjs";import{AlertDialog as te,AlertDialogAction as ne,AlertDialogCancel as re,AlertDialogContent as i,AlertDialogDescription as ie,AlertDialogFooter as ae,AlertDialogHeader as oe,AlertDialogTitle as se}from"../../ui/alert-dialog.mjs";import{Box as ce}from"../../ui/box.mjs";import{useKeyboardOpen as a}from"../../../hooks/use-keyboard-open.mjs";import{eventKey as o}from"../../../constants/event-key.mjs";import{useMediaPreview as s}from"../../common/media-preview/index.mjs";import c from"../../ui/popup.mjs";import{UploadProgress as l}from"./components/upload-progress.mjs";import{ContactList as u}from"../../biz/business/contact/contact-list.mjs";import{Collection as le}from"./components/collection.mjs";import{MAX_MATERIAL_COUNT as d}from"./constants.mjs";import{filterAtUserNames as ue}from"./utils/publish-utils.mjs";import{PublishEditor as de}from"./components/editor.mjs";import{PublishHeader as f}from"./components/header.mjs";import{MaterialGrid as fe}from"./components/material-grid.mjs";import{Toolbar as pe}from"./components/toolbar.mjs";import{useFileUpload as me}from"./hooks/use-file-upload.mjs";import{toast as p}from"sonner";import{useCallback as m,useEffect as he,useMemo as ge,useRef as h,useState as g}from"react";import{jsx as _,jsxs as v}from"react/jsx-runtime";import{useTranslations as y}from"next-intl";function b({className:b}={}){let x=y(`components.pages.publish`),_e=ee(),S=h(null),[ve,C]=g(!1),[w,T]=g(`0`),{isOpen:E}=a(),[D,O]=g(null),[k,A]=g([]),[j,M]=g(``),[N,P]=g(``),[F,I]=g(``),[L,R]=g(0),[ye,z]=g(``),[be,B]=g(``),[xe,V]=g(0),[H,U]=g(``),[W,G]=g([]),[Se,K]=g(!1),[Ce,q]=g(!1),[we,Te]=g(``),J=h(null);he(()=>()=>{n.emit(o.WAIT_LOADING_SHOW,{show:!1})},[]);let Y=m(e=>(Te(e),q(!0),new Promise(e=>{J.current=e})),[]),{selectFile:X}=me({onProgressUpdate:(e,t,n,r)=>{O(r>0?{currentFiles:e,totalFiles:t,currentTasks:n,totalTasks:r}:null)}}),Z=m(async()=>{if(j){if(!await Y(x(`pageClient.switchToPostConfirm`)))return;M(``),P(``),I(``),R(0),V(0),z(``),B(``)}if(k.length>=d){p.error(x(`pageClient.maxMaterialCount`));return}let e=await X(`material`,{maxMaterialCount:d-k.length});!e||e.type!==`material`||(e.errors.length>0&&p.error(e.errors.length===1?e.errors[0]:x(`pageClient.uploadFailedCount`,{count:e.errors.length})),e.items.length>0&&A(t=>[...t,...e.items].slice(0,d)))},[Y,k.length,X,B,P,I,A,z,R,V,M,x,j]),Ee=m(async()=>{if(k.length>0){if(!await Y(x(`pageClient.switchToVideoConfirm`)))return;A([])}let e=await X(`video`);!e||e.type!==`video`||(M(e.videoUrl),P(e.coverUrl),I(e.coverUrl),z(e.resolution),B(e.coverImageResolution),R(e.videoDuration),V(e.videoSize))},[Y,k.length,X,B,P,I,A,z,R,V,M,x]);function De(e){C(e)}function Oe(){C(!1)}let Q=ge(()=>(H.trim()===``||H.trim()===`<br>`)&&k.length===0&&!j,[H,k.length,j]),$=s(),ke=m(()=>{$.open(k.map(e=>({src:e.media_url,type:e.is_video?`video`:`image`,cover:e.cover_image})))},[k,$]),Ae=m(e=>{A(t=>t.filter((t,n)=>n!==e))},[A]),je=m(()=>{M(``),P(``),I(``),R(0),V(0),z(``),B(``)},[P,I,B,z,R,V,M]),Me=m(async()=>{let e=await X(`cover`);!e||e.type!==`cover`||(P(e.coverUrl),B(e.coverImageResolution))},[X,B,P]),Ne=m(t=>{C(!1),G(e=>[...e,t]),S.current?.restoreSelection();let n=`${e(t)} `;S.current?.insertHtml(n)},[G]),Pe=m(()=>{S.current?.saveSelection(),C(!0)},[]);return v(ce,{className:t(`relative min-h-screen max-w-full bg-bg2 overflow-hidden flex flex-col`,b),children:[_(f,{onPublish:async()=>{if(!Se){K(!0);try{if(Q){p.error(x(`pageClient.editContentFirst`));return}let e=H;if(e=e.replace(/<br>/g,``),!e&&k.length===0&&!j){p.error(x(`pageClient.editContentFirst`));return}let t=ue(e,W),n={content:e,mentioned_users:t,collection_ids:w===`0`?[]:[w]};k.length>0?(n.medias=k.map(e=>(delete e.index,e)),n.type=1):j?(n.medias=[{media_url:j,is_video:!0,cover_image:N,video_resolution:ye,cover_image_resolution:be,video_duration:L,video_size:xe}],n.type=2):n.type=3,await r(n),p.success(x(`pageClient.publishSuccess`)),A([]),M(``),P(``),I(``),R(0),V(0),z(``),B(``),U(``),G([]),T(`0`),_e.back()}catch(e){console.error(e),p.error(x(`pageClient.publishFailed`))}finally{K(!1)}}},isEmpty:Q}),_(de,{ref:S,content:H,onContentChange:U,atUsers:W,onAtUsersChange:G}),D&&_(l,{currentFiles:D.currentFiles,totalFiles:D.totalFiles,currentTasks:D.currentTasks,totalTasks:D.totalTasks}),(k.length>0||j)&&_(fe,{materialList:k,videoUrl:j,videoDuration:L,coverUrl:N,originCoverUrl:F,isKeyboardOpen:E,onMaterialDelete:Ae,onVideoDelete:je,onMaterialAdd:Z,onCoverClick:Me,onPreview:ke}),_(pe,{isKeyboardOpen:E,onMaterialClick:()=>void Z(),onVideoClick:()=>void Ee(),onAtUserClick:Pe}),_(le,{active:w,setActive:T}),_(te,{open:Ce,onOpenChange:e=>{q(e),e||(J.current?.(!1),J.current=null)},children:v(i,{children:[v(oe,{children:[_(se,{children:x(`pageClient.title`)}),_(ie,{children:we})]}),v(ae,{children:[_(re,{onClick:()=>{q(!1),J.current?.(!1),J.current=null},children:x(`pageClient.cancel`)}),_(ne,{onClick:()=>{q(!1),J.current?.(!0),J.current=null},children:x(`pageClient.resume`)})]})]})}),_(c,{open:ve,onOpenChange:De,showCloseButton:!1,className:`w-full rounded-[8px] bg-bg2`,children:_(u,{onSelect:Ne,onClose:Oe})})]})}export{b as PublishPageClient};
|
|
@@ -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{
|
|
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};
|
|
@@ -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
|
|
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{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{
|
|
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};
|
|
@@ -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{
|
|
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};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{gInteractionGetFollowingContentList as e}from"../../../../service/generated/client.mjs";import{
|
|
2
|
+
"use client";import{gInteractionGetFollowingContentList as e}from"../../../../service/generated/client.mjs";import{Box as t}from"../../../ui/box.mjs";import{usePaginated as n}from"../../../../hooks/query/use-query.mjs";import{useIsLoggedIn as r,useUserId as i}from"../../../../hooks/use-auth.mjs";import{UserActivityList as a}from"../../../common/list/user-activity-list/user-activity-list.mjs";import{FollowNoLogin as o}from"./follow-no-login.mjs";import{useCallback as s}from"react";import{jsx as c}from"react/jsx-runtime";import{useTranslations as l}from"next-intl";const u={video:1,post:2};function d({queryKeyPrefix:d,cookieUserId:f}){let p=l(`components.pages.userFollow.components`),m=d??[],h=i()||f||``,g=r()||!!h,_=s(async t=>{if(!h)return{data:{list:[],total:0,has_more:!1}};let n=await e({app_id:0,user_id:h,page:t,page_size:10,content_type:u.post}),r=n.data?.post_infos??[];return{data:{list:r,total:n.data?.total??r.length,has_more:!!n.data?.has_more}}},[10,h]),v=n({key:[...m,`user-follow-post`,h],initialPageParam:1,async queryFn(e){return await _(e)||{data:{list:[],total:0,has_more:!1}}},getNextPageParam(e,t){let n=e?.data?.list??[],r=e?.data?.has_more;if(!(n.length===0||e?.data?.total===0||!r))return t.length+1},options:{staleTime:3e5,refetchOnWindowFocus:!0}}),y=v.data?.pages.flatMap(e=>e.data?.list??[])??[];return c(t,{className:`w-full bg-bg1`,children:g?c(a,{list:y,loading:v.isFetching,hasMore:v.hasNextPage??!1,loadMore:async()=>{await v.fetchNextPage()},showGroupHeaders:!1,emptyText:p(`postTab.empty`),canEdit:!1,isEditMode:!1,onToggleSelection:()=>{},onActionSuccess:()=>{}}):c(o,{})})}export{d as PostTab};
|
|
@@ -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
|
|
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};
|