@funhub/platform 0.1.31 → 0.1.34
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/config/tailwind/index.cjs +115 -1
- package/config/tailwind/index.d.ts +3 -0
- package/config/tailwind/index.mjs +115 -1
- package/dist/biz.d.mts +29 -25
- package/dist/biz.mjs +1 -1
- package/dist/common.mjs +1 -1
- package/dist/components/biz/basics/fullscreen-feed/index.mjs +1 -1
- package/dist/components/biz/basics/fullscreen-feed/runtime/client.mjs +1 -1
- package/dist/components/biz/basics/fullscreen-feed/runtime/post-slide.mjs +1 -1
- package/dist/components/biz/basics/fullscreen-feed/runtime/use-mixed-feed-controller.mjs +1 -1
- package/dist/components/biz/basics/fullscreen-feed/runtime/use-series-feed-controller.mjs +1 -1
- package/dist/components/biz/basics/fullscreen-feed/runtime/user-action.mjs +1 -1
- package/dist/components/biz/basics/logo/variants/basic-logo/runtime/client.mjs +1 -1
- package/dist/components/biz/basics/search/shared/components/search-box.mjs +1 -1
- package/dist/components/biz/basics/search/variants/simple-search/runtime/client.mjs +1 -1
- package/dist/components/biz/business/banner/variants/basic-banner/inspector-schema.mjs +1 -1
- package/dist/components/biz/business/banner/variants/basic-banner/runtime/client.mjs +1 -1
- package/dist/components/biz/business/banner-carousel/client.mjs +1 -1
- package/dist/components/biz/business/card-grid/variants/card-grid-2x3-infinite/runtime/client.mjs +1 -1
- package/dist/components/biz/business/card-grid/variants/card-grid-3x3-infinite/runtime/client.mjs +1 -1
- package/dist/components/biz/business/channel-list/client.mjs +1 -1
- package/dist/components/biz/business/comment/comment-item.mjs +1 -1
- package/dist/components/biz/business/comment/reply-detail.mjs +1 -1
- package/dist/components/biz/business/contact/contact-list.mjs +1 -1
- package/dist/components/biz/business/detail/detail-operate.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-actions/schema.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info/schema.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title/schema.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/schema.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/schema.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-recommend/client.mjs +1 -1
- package/dist/components/biz/business/detail/video-hero.mjs +1 -1
- package/dist/components/biz/business/floating-ball/client.d.mts +2 -2
- package/dist/components/biz/business/floating-ball/client.mjs +1 -1
- package/dist/components/biz/business/floating-ball/index.d.mts +5 -0
- package/dist/components/biz/business/floating-ball/material.d.mts +6 -1
- package/dist/components/biz/business/floating-ball/schema.d.mts +11 -4
- package/dist/components/biz/business/floating-ball/schema.mjs +1 -1
- package/dist/components/biz/business/fullscreen-feed/variants/shared/runtime-compat.mjs +1 -1
- package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
- package/dist/components/biz/business/index.d.mts +29 -24
- package/dist/components/biz/business/index.mjs +1 -1
- package/dist/components/biz/business/large-feature-grid/card-item.mjs +1 -1
- package/dist/components/biz/business/large-feature-grid/client.mjs +1 -1
- package/dist/components/biz/business/large-feature-grid/default.mjs +2 -0
- package/dist/components/biz/business/large-feature-grid/types.d.mts +20 -0
- 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-header/client.d.mts +1 -0
- package/dist/components/biz/business/profile/profile-header/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/material.d.mts +1 -3
- package/dist/components/biz/business/profile/profile-header/schema.d.mts +18 -12
- package/dist/components/biz/business/profile/profile-header/schema.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/material.d.mts +1 -12
- package/dist/components/biz/business/profile/profile-main/schema.d.mts +14 -24
- package/dist/components/biz/business/profile/profile-main/schema.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/client.mjs +1 -1
- package/dist/components/biz/business/recommended-users/variants/basic-recommended-users/runtime/client.mjs +1 -1
- package/dist/components/biz/business/search-bar/variants/detail-search-bar/runtime/client.mjs +1 -1
- package/dist/components/biz/business/search-history/client.mjs +1 -1
- package/dist/components/biz/business/search-input/client.mjs +1 -1
- package/dist/components/biz/business/tab-bar/client.mjs +1 -1
- package/dist/components/biz/business/text-recommend/client.mjs +1 -1
- package/dist/components/common/at-element/index.mjs +1 -1
- package/dist/components/common/blocked-dialog/blocked-dialog.mjs +1 -1
- package/dist/components/common/funhub-provider/funhub-provider.mjs +1 -1
- package/dist/components/common/header-nav/client.mjs +1 -1
- package/dist/components/common/info-card/card-header.mjs +1 -1
- package/dist/components/common/list/post-list/post-list.mjs +1 -1
- package/dist/components/common/list/user-activity-list/user-activity-list-actions.mjs +1 -1
- package/dist/components/common/list/user-activity-list/user-activity-list-item.mjs +1 -1
- package/dist/components/common/list/video-list/video-list.mjs +1 -1
- package/dist/components/common/media-preview/index.mjs +1 -1
- package/dist/components/common/popup-video/index.mjs +1 -1
- package/dist/components/common/share-popup/share-popup.mjs +1 -1
- package/dist/components/common/tab-bar/index.mjs +1 -1
- package/dist/components/common/top-nav-bar/client.mjs +1 -1
- package/dist/components/common/video-player/index.mjs +2 -2
- package/dist/components/pages/(follow)/_components/interaction-tabs/index.mjs +1 -1
- package/dist/components/pages/(follow)/_components/user-list/index.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/feed-series/feed-series-client.mjs +1 -1
- package/dist/components/pages/feed-series/page.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/post-detail/post-detail-client.mjs +1 -1
- package/dist/components/pages/profile/_components/user-profile-container/client.mjs +1 -1
- package/dist/components/pages/publish/components/collection.mjs +1 -1
- package/dist/components/pages/publish/components/header.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/top-header.mjs +1 -1
- package/dist/components/pages/user-follow/_components/follow-no-login.mjs +1 -1
- package/dist/components/pages/video-detail/page.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/hooks/use-content-operate.mjs +1 -1
- package/dist/i18n.d.mts +1 -1
- package/dist/i18n.mjs +1 -1
- package/dist/materials.d.mts +5 -5
- package/dist/materials.mjs +1 -1
- package/dist/utils/share-manager.mjs +1 -1
- package/dist/utils.d.mts +4 -4
- package/dist/utils.mjs +1 -1
- package/package.json +1 -1
- package/dist/components/biz/business/large-feature-grid/mock.mjs +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Button as e}from"../../ui/button.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as n,pCommunityCreateCollection as r,pCommunityUpdateCollection as i}from"../../../service/generated/client.mjs";import{compressImage as a}from"../../../utils/image-compression.mjs";import{uploadFile as o}from"../../../utils/upload-file.mjs";import{Image as s}from"../../ui/image.mjs";import{Box as c}from"../../ui/box.mjs";import{InputGroup as l,InputGroupAddon as u,InputGroupTextarea as d}from"../../ui/input-group.mjs";import{Field as f,FieldLabel as p}from"../../ui/field.mjs";import{Text as m}from"../../ui/text.mjs";import{useDeleteRequest as h,useRequest as g}from"../../../hooks/query/use-query.mjs";import{HeaderNav as _}from"../../common/header-nav/client.mjs";import{AddIcon as v}from"../../common/icons/add.mjs";import{
|
|
2
|
+
"use client";import{Button as e}from"../../ui/button.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as n,pCommunityCreateCollection as r,pCommunityUpdateCollection as i}from"../../../service/generated/client.mjs";import{compressImage as a}from"../../../utils/image-compression.mjs";import{uploadFile as o}from"../../../utils/upload-file.mjs";import{Image as s}from"../../ui/image.mjs";import{Box as c}from"../../ui/box.mjs";import{InputGroup as l,InputGroupAddon as u,InputGroupTextarea as d}from"../../ui/input-group.mjs";import{Field as f,FieldLabel as p}from"../../ui/field.mjs";import{Text as m}from"../../ui/text.mjs";import{useDeleteRequest as h,useRequest as g}from"../../../hooks/query/use-query.mjs";import{HeaderNav as _}from"../../common/header-nav/client.mjs";import{AddIcon as v}from"../../common/icons/add.mjs";import{useEffect as y,useRef as b,useState as x}from"react";import{jsx as S,jsxs as C}from"react/jsx-runtime";import{toast as w}from"sonner";import{useTranslations as T}from"next-intl";import{useRouter as E}from"next/navigation";function D({mode:D=`create`,collectionId:O}){let k=T(`components.pages.collectionCreate`),A=E(),{userId:j}=t(),M=h(),N=b(null),P=D===`edit`&&!!O,F=b(!1),[I,L]=x(!1),[R,z]=x(!1),[B,V]=x(``),[H,U]=x({title:``,description:``}),W=g([`collection-detail`,O],()=>n({collection_id:O}),{enabled:!!(P&&O)}).data?.data?.data?.collection;y(()=>{!P||F.current||!W||(U({title:W.title??``,description:W.description??``}),V(W.cover_image??``),F.current=!0)},[W,P]);function G(e,t){U(n=>({...n,[e]:t}))}function K(){N.current?.click()}async function q(e){let t=e.target.files?.[0];if(t)try{z(!0),V((await o(await a(t),1)).objectKey)}catch(e){console.error(`上传封面失败`,e),w.error(k(`form.coverUploadFailed`))}finally{z(!1),e.target&&(e.target.value=``)}}async function J(){if(I)return;let e=H.title.trim(),t=H.description.trim();if(!e){w.error(k(`form.titleRequired`));return}if(P&&!O){w.error(k(`form.collectionNotFound`));return}try{L(!0);let n=w.loading(k(P?`form.saving`:`form.creating`)),a=P?await i({collection_id:O,title:e,description:t,cover_image:B}):await r({title:e,description:t,cover_image:B});if(a.code===0){w.success(k(P?`form.saveSuccess`:`form.createSuccess`),{id:n}),j&&M([`user-profile`,`mine`,j,`user-collection-created`,j]),P&&O&&M([`collection-detail`,O]),A.back();return}w.error(a.message||k(P?`form.saveFailed`:`form.createFailed`),{id:n})}catch(e){console.error(P?`编辑合集失败`:`创建合集失败`,e),w.error(k(P?`form.saveFailed`:`form.createFailed`))}finally{L(!1)}}return C(c,{className:`min-h-screen !bg-bg2`,children:[S(_,{title:k(P?`form.editTitle`:`form.createTitle`),className:`!bg-bg2`,rightChild:S(e,{onClick:J,disabled:I||R,children:k(I?P?`form.saving`:`form.creating`:P?`form.save`:`form.create`)})}),C(c,{className:`pb-3`,children:[C(f,{className:`!bg-bg2 px-3 border-none`,children:[S(p,{required:!0,children:k(`form.label`)}),C(l,{children:[S(d,{className:`!bg-bg1 p-2.5`,maxLength:50,placeholder:k(`form.titlePlaceholder`),value:H.title,onChange:e=>G(`title`,e.target.value)}),S(u,{className:`!bg-bg1`,align:`block-end`,children:S(`div`,{className:`text-right w-full`,children:C(`span`,{className:`text-xs`,children:[H.title.length,`/50`]})})})]})]}),C(f,{className:`border-none px-3 bg-bg2! `,children:[S(p,{children:k(`form.descriptionLabel`)}),C(l,{children:[S(d,{className:`!bg-bg1 p-2.5`,maxLength:100,placeholder:k(`form.descriptionPlaceholder`),value:H.description,onChange:e=>G(`description`,e.target.value)}),S(u,{className:`!bg-bg1`,align:`block-end`,children:S(`div`,{className:`text-right w-full`,children:C(`span`,{className:`text-xs`,children:[H.description.length,`/100`]})})})]})]}),C(f,{className:`!bg-bg2 px-3 border-none`,children:[S(p,{children:k(`form.coverLabel`)}),S(`input`,{ref:N,type:`file`,accept:`image/*`,className:`hidden`,onChange:q}),S(c,{className:`relative mt-2 flex aspect-video items-center justify-center gap-2 overflow-hidden rounded-lg border border-dashed border-text1/10 !bg-bg1`,onClick:K,children:B?S(s,{src:B,alt:k(`form.coverAlt`),fill:!0,className:`object-cover`}):C(c,{className:`flex flex-col items-center justify-center gap-2 py-6`,children:[S(v,{}),S(m,{className:`text-xs text-text3`,children:k(R?`form.uploading`:`form.addCover`)})]})})]})]})]})}export{D as CollectionCreateForm};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Button as e}from"../../ui/button.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as n,gUserViewUserInfo as r,pCommunityDeleteCollection as i,pCommunityRemoveContentFromCollection as a,pCommunitySubscribeCollection as o}from"../../../service/generated/client.mjs";import{Image as s}from"../../ui/image.mjs";import{Box as c}from"../../ui/box.mjs";import{List as ee}from"../../ui/list.mjs";import{Text as l}from"../../ui/text.mjs";import{Time as
|
|
2
|
+
"use client";import{Button as e}from"../../ui/button.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as n,gUserViewUserInfo as r,pCommunityDeleteCollection as i,pCommunityRemoveContentFromCollection as a,pCommunitySubscribeCollection as o}from"../../../service/generated/client.mjs";import{Image as s}from"../../ui/image.mjs";import{Box as c}from"../../ui/box.mjs";import{List as ee}from"../../ui/list.mjs";import{Text as l}from"../../ui/text.mjs";import{Time as u}from"../../ui/time.mjs";import{useDeleteRequest as te,useMutation as d,useRequest as f,useUpdateRequest as p}from"../../../hooks/query/use-query.mjs";import{useLoginModalStore as m}from"../../../store/modules/login-modal-store.mjs";import{ShareDrawer as h}from"../../common/share-popup/share-drawer.mjs";import{SharePlatformEnum as g}from"../../../types/share.mjs";import _ from"../../../utils/share-manager.mjs";import{HeaderNav as v}from"../../common/header-nav/client.mjs";import{DeleteIcon as y}from"../../common/icons/delete.mjs";import{MoreIcon as b}from"../../common/icons/more.mjs";import{EditIcon as x}from"../../common/icons/edit.mjs";import{CollectionDetailCard as S}from"./_components/collection-detail-card.mjs";import{useMemo as C,useState as w}from"react";import{Fragment as ne,jsx as T,jsxs as E}from"react/jsx-runtime";import{toast as D}from"sonner";import{useTranslations as re}from"next-intl";import{useRouter as ie,useSearchParams as ae}from"next/navigation";function O(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 oe(e){let t=e.detail,n=t.info,r=O(e),i=n?.text||n?.title||t.content||``,a=t.author_score??0,o=t.tags??[];return{id:e.content_id?String(e.content_id):String(e.id),title:i,type:e.type,coverImage:r,score:a,collectedAt:t.create_time,tags:o}}function k({id:O}){let k=re(`components.pages.collectionDetail`),A=ie(),se=ae(),{userId:j,isLogin:M}=t(),{open:N}=m(),P=te(),F=p(),I=f([`collection-detail`,O],()=>n({collection_id:O})),L=I.data?.data?.data?.collection?.user_id,R=!!(L&&j&&String(L)===String(j)),z=f([`user-info`,L],()=>r({target_user_id:L,user_id:L})),[B,V]=w(!1),[H,U]=w(null),W=I.data?.data?.data?.collection,G=W?.contents,K=C(()=>G?G.map(e=>({content_id:e.content_id,id:Number(e.content_id),detail:e,type:e.source_type,medias:e.medias,cover_image:e.cover_image})):[],[G]).map(oe),ce=W?.cover_image,le=W?.content_count??0,q=W?.is_subscribe===!0,{mutateAsync:ue,isPending:J}=d(async e=>await o({collection_id:O,subscribe:e})),{mutateAsync:de,isPending:fe}=d(async e=>await a({collection_id:O,content_id:e})),{mutateAsync:pe,isPending:Y}=d(async e=>await i({collection_id:e})),X=z.data?.data,me=X?.avatar,he=X?.nick_name,Z=R&&W?.is_default===!1;function ge(e){U({kind:`content`,id:e.id,type:e.type,title:e.title,isCollected:!0}),V(!0)}function _e(){U({kind:`collection`,id:O}),V(!0)}function ve(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=ve(H);t&&_.showSharePopup({type:e,data:{id:H.id},copyUrl:t})}function $(){Q(g.WECHAT)}function ye(){Q(g.QQ)}function be(){Q(g.WECHAT_MOMENTS)}function xe(){A.push(`/collection/add?id=${O}`)}function Se(){if(!fe){if(!M||!j){D.error(k(`detail.pleaseLogin`)),N();return}!H||H.kind!==`content`||de(H.id).then(e=>{if(e.code===0){D.success(k(`detail.uncollectSuccess`)),P([`collection-detail`,O]),U(e=>e&&{...e,isCollected:!1});return}D.error(e.message||k(`detail.uncollectFailed`))}).catch(e=>{console.error(`取消收藏失败`,e),D.error(k(`detail.operationFailed`))})}}function Ce(){let e=new URLSearchParams(se.toString());e.set(`id`,O),e.set(`type`,`edit`),A.push(`/collection/create?${e.toString()}`),V(!1)}async function we(){if(!Y){if(!M||!j){D.error(k(`detail.pleaseLogin`)),N();return}if(!Z){D.error(k(`detail.defaultCollectionDeleteNotSupported`));return}try{let e=await pe(O);if(e.code===0){D.success(k(`detail.deleteSuccess`)),P([`collection-detail`,O]),P([`user-profile`,`mine`]),P([`user-profile`,`profile`,L]),V(!1),A.back();return}D.error(e.message||k(`detail.deleteFailed`))}catch(e){console.error(`删除合集失败`,e),D.error(k(`detail.operationFailed`))}}}function Te(e){F([`collection-detail`,O],t=>t?.data?.data?.collection?{...t,data:{...t.data,data:{...t.data.data,collection:{...t.data.data.collection,is_subscribe:e}}}}:t)}async function Ee(){if(!J){if(!M||!j){D.error(k(`detail.pleaseLogin`)),N();return}try{let e=await ue(!q);e.code===0?(D.success(k(q?`detail.unsubscribeSuccess`:`detail.subscribeSuccess`)),Te(!q),P([`collection-detail`,O])):D.error(e.message||k(`detail.subscribeOperateFailed`))}catch(e){console.error(`订阅合集失败`,e),D.error(k(`detail.operationFailed`))}}}return E(c,{className:`flex flex-col gap-4 pb-6 bg-bg1 min-h-screen`,children:[T(v,{title:W?.title??``,rightChild:T(`button`,{onClick:_e,className:`p-2`,children:T(b,{})})}),E(c,{className:`px-4 flex items-start gap-4`,children:[T(c,{className:`relative h-20 shrink-0 rounded-lg overflow-hidden aspect-video bg-gray-100`,children:T(s,{src:ce||``,alt:W?.title??k(`detail.coverAlt`),fill:!0,className:`object-cover`})}),E(c,{className:`flex-1 flex flex-col gap-2`,children:[E(c,{className:`flex items-center justify-between`,children:[T(l,{className:`text-base text-text1 font-medium line-clamp-2`,children:W?.title??k(`detail.defaultTitle`)}),R?T(e,{variant:`secondary`,size:`sm`,onClick:xe,children:k(`detail.add`)}):T(e,{variant:q?`secondary`:`default`,size:`sm`,className:`rounded-md`,onClick:Ee,disabled:J,children:k(J?`detail.subscribeProcessing`:q?`detail.subscribed`:`detail.subscribe`)})]}),E(c,{className:`flex flex-wrap items-center gap-2 text-xs text-text3`,children:[T(c,{className:`relative w-3 h-3 rounded-full overflow-hidden bg-gray-100`,children:T(s,{src:me||``,alt:k(`detail.ownerAvatarAlt`),fill:!0,className:`object-cover`})}),E(c,{className:`flex items-center justify-between gap-2`,children:[T(l,{className:`text-xs text-text1`,children:he}),E(l,{className:`text-xs text-text1 shrink-0`,children:[le,k(`detail.contentCountSuffix`)]})]}),T(c,{className:`flex gap-2`,children:E(l,{className:`text-xs text-text3`,children:[T(u,{value:W?.update_time,format:`YYYY-MM-DD`,fallback:`--`}),k(`detail.updatedSuffix`)]})})]})]})]}),W?.description&&T(c,{className:`p-2 text-text2 text-sm`,children:W?.description}),T(c,{className:`px-4`,children:T(ee,{loading:I.isLoading,hasMore:!1,emptyText:k(`detail.emptyContent`),className:`divide-y divide-text1/5`,children:K.map(e=>T(S,{...e,onOpenShare:ge},e.id))})}),T(h,{isShowCollect:H?.kind===`content`&&R&&M,isCollected:H?.isCollected,open:B,onOpenChange:V,onShareWeChat:$,onShareQQ:ye,onShareMoments:be,onUncollect:Se,secondRow:H?.kind===`collection`&&R?E(ne,{children:[E(`button`,{className:`flex items-center justify-center py-3 flex-col gap-2`,onClick:Ce,children:[T(`i`,{className:`rounded-full bg-bg2 w-12 h-12 flex items-center justify-center`,children:T(x,{className:`w-5 h-5`})}),T(l,{children:k(`detail.editCollection`)})]}),Z&&E(`button`,{className:`flex items-center justify-center py-3 flex-col gap-2 ${Y?`cursor-not-allowed opacity-60`:``}`,onClick:we,disabled:Y,children:[T(`i`,{className:`rounded-full bg-bg2 w-12 h-12 flex items-center justify-center `,children:T(y,{})}),T(l,{className:``,children:k(Y?`detail.deleting`:`detail.deleteCollection`)})]})]}):void 0})]})}export{k as CollectionDetail};
|
|
@@ -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{useRequest as a}from"../../../hooks/query/use-query.mjs";import{useLoginModalStore as o}from"../../../store/modules/login-modal-store.mjs";import{useKeepAliveState as s}from"../../common/keep-scroll-position/index.mjs";import{batchQueryContentInteractions as c}from"../../../hooks/use-content-operate.mjs";import{queryKey as
|
|
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{useRequest as a}from"../../../hooks/query/use-query.mjs";import{useLoginModalStore as o}from"../../../store/modules/login-modal-store.mjs";import{useKeepAliveState as s}from"../../common/keep-scroll-position/index.mjs";import{batchQueryContentInteractions as c}from"../../../hooks/use-content-operate.mjs";import l from"../../biz/basics/fullscreen-feed/runtime/client.mjs";import{queryKey as u}from"../../../constants/query-key.mjs";import ee from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{SeriesEpisodes as d}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}=a([u.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]=s(`${M}-active-index`,ce),[P,ue]=s(`${M}-user-interacted`,!1),[de,fe]=s(`${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(ee,{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}=a(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}=a(p(()=>[`feed-series-interactions`,T,O],[O,T]),async()=>await c([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(()=>{o.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(l,{items:K,activeIndex:N,top:R,videoConfig:{loop:!1,autoNext:!0},userInteracted:P,onUserInteracted:()=>ue(!0),onActiveIndexChange:Q,onDataUpdate:me,getNavigationInfo:he,currentUserId:D.userId||void 0,followIds:ie,onFollowIdsChange:ae,commentContentId:T,onRequireLogin:pe,activeEpisodeId:$}),F&&g(d,{mode:`selector`,variant:`sheet`,open:F,title:S(`feedSeriesClient.episodeSelectorTitle`),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
|
-
import{gContentGetVideoDetail as e}from"../../../service/generated/client.mjs";import{HydrationBoundary as t}from"../../../hooks/query/hydration-boundary.mjs";import{
|
|
2
|
+
import{gContentGetVideoDetail as e}from"../../../service/generated/client.mjs";import{HydrationBoundary as t}from"../../../hooks/query/hydration-boundary.mjs";import{normalizeEpisodeNumber as n,warmupProcessM3u8Auto as r}from"../../common/video-player/process-m3u8-cache.mjs";import{defaultLocale as i,isValidLocale as a,resolveLocaleByPriority as o,resolveLocaleFromAcceptLanguage as s}from"../../../i18n.mjs";import{getTranslator as c}from"../../../i18n/translator.mjs";import l from"./feed-series-client.mjs";import{Suspense as u}from"react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{cookies as p,headers as m}from"next/headers";function h(e){return a(e)?e:i}function g(e){return c(e)(`components.pages.feedSeries.page.videoLoading`)}function _({loadingText:e}){return f(`div`,{className:`relative h-screen w-full overflow-hidden bg-black text-white`,children:[d(`div`,{className:`absolute inset-0 bg-[radial-gradient(circle_at_50%_20%,rgba(255,255,255,0.14),rgba(0,0,0,0.9)_55%)]`}),d(`div`,{className:`absolute left-0 top-0 z-20 w-full px-4 pt-[max(env(safe-area-inset-top),14px)]`,children:d(`div`,{className:`h-10 w-full animate-pulse rounded-full bg-white/15`})}),d(`div`,{className:`pointer-events-none absolute inset-0 z-10 flex items-center justify-center`,children:f(`div`,{className:`relative flex h-[92px] w-[92px] items-center justify-center`,children:[d(`span`,{className:`absolute h-[68px] w-[68px] rounded-full bg-black/55 backdrop-blur-sm`}),d(`span`,{className:`h-10 w-10 animate-spin rounded-full border-[3px] border-white/25 border-t-white`})]})}),d(`div`,{className:`pointer-events-none absolute left-0 right-0 top-[calc(50%+62px)] z-10 text-center text-xs text-white/70`,children:e}),f(`div`,{className:`absolute right-3 bottom-10 z-20 flex flex-col items-center gap-4`,children:[d(`div`,{className:`h-12 w-12 animate-pulse rounded-full bg-white/20`}),d(`div`,{className:`h-6 w-6 animate-pulse rounded-full bg-white/20`}),d(`div`,{className:`h-6 w-6 animate-pulse rounded-full bg-white/20`}),d(`div`,{className:`h-6 w-6 animate-pulse rounded-full bg-white/20`})]}),f(`div`,{className:`absolute bottom-0 left-0 right-[56px] z-20 p-4`,children:[d(`div`,{className:`mb-3 h-5 w-[120px] animate-pulse rounded bg-white/20`}),d(`div`,{className:`mb-2 h-4 w-[75%] animate-pulse rounded bg-white/15`}),d(`div`,{className:`mb-4 h-4 w-[58%] animate-pulse rounded bg-white/15`}),d(`div`,{className:`h-10 w-full animate-pulse rounded-lg bg-white/20`})]})]})}async function v(i){let a=i?.params||{},o=a.seriesId||``,s=n(a.episodeNum,1),c=[];if(o){let t=await e({id:o});r(t?.data?.video?.links,s),c.push({queryKey:[`feed-series-detail`,o],queryFn:()=>Promise.resolve(t)})}return d(t,{prefetch:c,children:d(l,{...i})})}async function y(e){let t=await p(),n=await m();return d(u,{fallback:d(_,{loadingText:g(h(o(t.get(`NEXT_LOCALE`)?.value,s(n.get(`accept-language`)),i)))}),children:d(v,{...e})})}export{y as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{Button as t}from"../../../ui/button.mjs";import{useUserStore as n}from"../../../../store/modules/user-store.mjs";import{pUserUserFeedback as r}from"../../../../service/generated/client.mjs";import{compressImage as i}from"../../../../utils/image-compression.mjs";import{uploadFile as a}from"../../../../utils/upload-file.mjs";import{Image as o}from"../../../ui/image.mjs";import{Box as s}from"../../../ui/box.mjs";import{InputGroup as c,InputGroupAddon as l,InputGroupInput as u,InputGroupTextarea as d}from"../../../ui/input-group.mjs";import{Field as f,FieldLabel as p}from"../../../ui/field.mjs";import{Text as m}from"../../../ui/text.mjs";import{HeaderNav as h}from"../../../common/header-nav/client.mjs";import{AddIcon as g}from"../../../common/icons/add.mjs";import{
|
|
2
|
+
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{Button as t}from"../../../ui/button.mjs";import{useUserStore as n}from"../../../../store/modules/user-store.mjs";import{pUserUserFeedback as r}from"../../../../service/generated/client.mjs";import{compressImage as i}from"../../../../utils/image-compression.mjs";import{uploadFile as a}from"../../../../utils/upload-file.mjs";import{Image as o}from"../../../ui/image.mjs";import{Box as s}from"../../../ui/box.mjs";import{InputGroup as c,InputGroupAddon as l,InputGroupInput as u,InputGroupTextarea as d}from"../../../ui/input-group.mjs";import{Field as f,FieldLabel as p}from"../../../ui/field.mjs";import{Text as m}from"../../../ui/text.mjs";import{HeaderNav as h}from"../../../common/header-nav/client.mjs";import{AddIcon as g}from"../../../common/icons/add.mjs";import{useRef as _,useState as v}from"react";import{XIcon as y}from"lucide-react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{toast as S}from"sonner";import{useTranslations as C}from"next-intl";import{useRouter as w}from"next/navigation";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=C(`components.pages.feedback.components`),O=w(),{userId:k}=n(),A=_(null),[j,M]=v({content:``,contact:``}),[N,P]=v([]),[F,I]=v(!1),[L,R]=v(!1),z=!j.content.trim();function B(e,t){M(n=>({...n,[e]:t}))}function V(){L||F||N.length>=3||A.current?.click()}async function H(e){let t=Array.from(e.target.files??[]);if(!t.length)return;let n=3-N.length;if(n<=0){e.target&&(e.target.value=``);return}let r=t.slice(0,n),o=r.filter(D);if(!o.length){S.error(E(`feedbackForm.imageTypeInvalid`)),e.target&&(e.target.value=``);return}o.length!==r.length&&S.error(E(`feedbackForm.imageTypeInvalid`));try{R(!0);let e=[],t=!1;for(let n of o)try{let t=await a(await i(n),1);e.push(t.objectKey)}catch(e){console.error(`上传截图失败`,e),t=!0}e.length&&P(t=>[...t,...e].slice(0,3)),t&&S.error(E(`feedbackForm.screenshotUploadFailed`))}catch(e){console.error(`上传截图失败`,e),S.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){S.error(E(`feedbackForm.missingFeedback`));return}if(e.length<4){S.error(E(`feedbackForm.contentMinLength`));return}if(!N.length){S.error(E(`feedbackForm.missingScreenshot`));return}if(F)return;let n=S.loading(E(`feedbackForm.loading`));try{I(!0);let i=await r({user_id:k,feedback_content:e,feedback_screenshots:N.length?N:void 0,contact_info:t||void 0});if(i.code===0){M({content:``,contact:``}),P([]),O.push(`/settings`),S.success(E(`feedbackForm.submitsuccess`),{id:n});return}S.error(i.message||E(`feedbackForm.message`),{id:n})}catch(e){console.error(`提交反馈失败`,e),S.error(e.message||E(`feedbackForm.message`),{id:n})}finally{I(!1)}}return x(s,{className:e(`min-h-screen bg-bg2`,T),children:[b(h,{title:E(`feedbackForm.title`),className:`!bg-bg2`,rightChild:b(t,{onClick:W,disabled:F||L||z,children:E(F?`feedbackForm.loading`:`feedbackForm.submit`)})}),x(s,{className:`pb-3`,children:[x(f,{className:`bg-bg2 px-3 border-none`,children:[b(p,{required:!0,children:E(`feedbackForm.label`)}),x(c,{children:[b(d,{className:`!bg-bg1 p-2.5`,maxLength:500,placeholder:E(`feedbackForm.placeholder`),value:j.content,onChange:e=>B(`content`,e.target.value)}),b(l,{className:`!bg-bg1`,align:`block-end`,children:b(`div`,{className:`text-right w-full`,children:x(`span`,{className:`text-xs`,children:[j.content.length,`/500`]})})})]})]}),x(f,{className:`bg-bg2 px-3 border-none`,children:[b(p,{required:!0,children:E(`feedbackForm.screenshotLabel`)}),b(`input`,{ref:A,type:`file`,multiple:!0,accept:`image/jpeg,image/jpg,image/png,.jpg,.jpeg,.png`,className:`hidden`,onChange:H}),x(s,{className:`mt-2 grid grid-cols-3 gap-2`,children:[N.map((e,n)=>x(s,{className:`relative overflow-hidden rounded-lg border border-line1 !bg-bg1 aspect-video`,children:[b(o,{src:e,alt:E(`feedbackForm.alt`),fill:!0,className:`object-cover`}),b(t,{size:`icon-xs`,variant:`secondary`,className:`absolute right-1 top-1 rounded-full bg-bg1/85`,onClick:()=>U(n),"aria-label":E(`feedbackForm.delete`),children:b(y,{})})]},`${e}-${n}`)),N.length<3&&x(s,{className:`flex flex-col aspect-video items-center justify-center gap-2 rounded-lg border border-dashed border-text1/10 !bg-bg1 py-3 text-center`,onClick:V,children:[b(g,{}),b(m,{className:`text-xs text-text3`,children:E(L?`feedbackForm.uploading`:`feedbackForm.addScreenshot`)})]})]})]}),x(f,{className:`bg-bg2 px-3 border-none`,children:[b(p,{children:E(`feedbackForm.contactLabel`)}),x(c,{children:[b(u,{className:`!bg-bg1 p-2.5`,placeholder:E(`feedbackForm.placeholder1_6d0242`),value:j.contact,onChange:e=>B(`contact`,e.target.value)}),b(l,{className:`!bg-bg1`,align:`block-end`,children:b(`div`,{className:`text-right w-full`,children:x(`span`,{className:`text-xs`,children:[j.contact.length,`/100`]})})})]})]})]})]})}export{O as FeedbackForm};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
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{
|
|
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{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";import{useTranslations as u}from"next-intl";import{usePathname as d}from"next/navigation";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=u(`components.pages.fullscreenFeed`),O=d(),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?c(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/70`,children:D(`page.missingParams`)}):l(s,{children:[c(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&&c(r,{title:D(`page.episodeSelectorTitle`),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{Image as r}from"../../ui/image.mjs";import{Box as i}from"../../ui/box.mjs";import{useRequest as a}from"../../../hooks/query/use-query.mjs";import{useRequireLogin as o}from"../../../hooks/use-auth.mjs";import{useKeepAliveState as s}from"../../common/keep-scroll-position/index.mjs";import{queryKey as c}from"../../../constants/query-key.mjs";import{extractDataByComponentType as l}from"../../biz/utils/transformers/data.mjs";import{
|
|
2
|
+
"use client";import{gContentGetAppChannelBlock as e,gContentGetAppChannelBlockData as t,gContentListVisibleFloatingBall as n}from"../../../service/generated/client.mjs";import{Image as r}from"../../ui/image.mjs";import{Box as i}from"../../ui/box.mjs";import{useRequest as a}from"../../../hooks/query/use-query.mjs";import{useRequireLogin as o}from"../../../hooks/use-auth.mjs";import{useKeepAliveState as s}from"../../common/keep-scroll-position/index.mjs";import{queryKey as c}from"../../../constants/query-key.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";import{useRouter as _}from"next/navigation";const v=`app-scroll-container`;function y(e){return typeof document>`u`?null:document.getElementById(e)}function b(){if(typeof document>`u`)return 0;let e=document.querySelector(`[data-top-nav-root="true"]`);return e&&e.getBoundingClientRect().height||0}function x({currentChannelId:x,isPGC:S}){let C=_(),w=o(),{data:T}=a(c.GET_CONTENT_LIST(x),()=>e({channel_id:x})),{data:E}=a([c.FLOATING_BALL],()=>n()),D=f(()=>T?.data?.blocks||[],[T?.data?.blocks]),O=f(()=>{let e=D.findIndex(e=>e.type===4),t=e>=0?D[e]:null;return{index:e,block:t,blockId:t?.id||``}},[D]),{data:k}=a([c.GUESS_YOU_LIKE_USER_DATA,O.blockId],()=>t({block_id:O.blockId}),{enabled:!!O.blockId}),A=f(()=>{if(O.index<0)return D;let e=k?.data.block?.data?.users||[];return D.map((t,n)=>n===O.index?{...t,data:{...t.data||{},users:e}}:t)},[D,k,O.index]),[j,M]=s(`home-scroll-top-${x}`,0),N=p(null),P=p({restored:!1,lastScrollTop:j,key:x,rafId:null}),F=p(M),I=p(j);u(()=>{F.current=M},[M]),u(()=>{I.current=j},[j]),u(()=>{P.current.key!==x&&(P.current.restored=!1,P.current.lastScrollTop=j,I.current=j,P.current.key=x)},[x,j]);let L=A.length>0;d(()=>{if(!L)return;N.current=y(v);let e=N.current;if(!e||P.current.restored||j<=0)return;let t=b(),n=Math.max(0,j+t);window.requestAnimationFrame(()=>{e.scrollTop=n,P.current.restored=!0,P.current.lastScrollTop=n})},[L,x,j]),u(()=>{N.current=y(v);let e=N.current;if(!e)return;function t(){P.current.restored=!0,P.current.rafId!==null&&window.cancelAnimationFrame(P.current.rafId),P.current.rafId=window.requestAnimationFrame(()=>{P.current.rafId=null;let e=N.current;if(!e)return;let t=e.scrollTop||0,n=b(),r=Math.max(0,t-n);Math.abs(t-P.current.lastScrollTop)>1&&(P.current.lastScrollTop=t,F.current(r))})}e.addEventListener(`scroll`,t,{passive:!0});let n=P.current.rafId;return()=>{n!==null&&window.cancelAnimationFrame(n),e.removeEventListener(`scroll`,t)}},[x]);let R=f(()=>l(A,S),[A,S]),z=f(()=>E?.data?.ball_infos?.find(e=>e.channel_id===x),[E?.data?.ball_infos,x]);return g(m,{children:[z&&h(i,{className:`fixed right-[20px] bottom-[80px] w-[52px] h-[52px] z-30 rounded-[16px] cursor-move select-none bg-[#FD4C5E33] overflow-hidden`,onClick:()=>{w(()=>{z?.jump_url&&C.push(z.jump_url)})},children:h(r,{src:z.material_url||``,alt:z.name||``,fill:!0,priority:!0,fetchPriority:`high`,sizes:`52px`,unoptimized:!0})}),R.map(e=>{let t=e.component,n=e.data.block_id||`block-${e.data.title||``}`;return h(t,{data:e.data},n)})]})}export{x as default};
|
|
@@ -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{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{useKeepAliveEffect as u,useKeepAliveState as d}from"../../common/keep-scroll-position/index.mjs";import{apiCollectClick as f}from"../../../utils/api-collect.mjs";import{batchQueryContentInteractions as ee}from"../../../hooks/use-content-operate.mjs";import{queryKey as p}from"../../../constants/query-key.mjs";import m from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{DetailFollowAction as te}from"../../biz/business/detail/detail-follow-action.mjs";import{DetailOperate as ne}from"../../biz/business/detail/detail-operate.mjs";import{PostRecommendList as re}from"../../biz/business/detail/post-recommend-list.mjs";import{DetailHero as h}from"../../biz/business/detail/video-hero.mjs";import g from"../../biz/business/comment/comment-list.mjs";import _ from"../../common/info-card/card-header.mjs";import ie from"../../common/info-card/card-text.mjs";import{useSearchParams as ae}from"next/navigation";import{useCallback as v,useEffect as y,useMemo as b}from"react";import{Fragment as x,jsx as S,jsxs as C}from"react/jsx-runtime";import{useTranslations as oe}from"next-intl";function se(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=oe(`components.pages.postDetail`),k=ae(),{isLogin:ue,userInfo:de,userId:fe}=t(),A=fe||de?.userId||``;l({contentId:f,contentType:2,enabled:!!f,enableIntervalReport:!1,enableExitReport:!1});let{data:j}=c(b(()=>[`post-detail`,f],[f]),async()=>f?await r({content_id:f}):null,{enabled:!!f}),M=b(()=>{let e=j?.data?.data;return se(e)},[j?.data?.data]),pe=w??M??null,{data:N}=c(b(()=>[`post-detail-recommend`,f],[f]),async()=>f?await i({page:1,page_size:6,sort_by:`recommend`}):null,{enabled:!!f}),P=b(()=>(N?.data?.data?.contents??[]).filter(e=>e.content_id!==f).slice(0,4).map(e=>ce(e)),[f,N?.data?.data?.contents]),F=le??P??[],[I,L]=d(`detail-information-${f}`,pe),[R,z]=d(`detail-recommend-${f}`,F),[B,V]=d(`info-detail-comment-add-count-${f}`,0),H=b(()=>I?.content_type===0,[I?.content_type]),U=b(()=>[`post-detail-comments`,f,1,5],[5,f]),{data:W}=c(U,async()=>f?await n({content_id:f,page:1,page_size:5,sort_by:`latest`}):null,{enabled:!!f}),me=b(()=>{if(T?.length)return T;let e=W?.data?.data?.comments??[];if(e.length>0)return e},[W?.data?.data?.comments,T]),G=b(()=>{if(typeof E==`number`)return E;if(W?.data?.data)return typeof W?.data?.data?.total==`number`?W.data.data.total:void 0},[W?.data?.data,E]),K=b(()=>{if(typeof D==`boolean`)return D;if(W?.data?.data)return W?.data?.data?.has_more??!1},[W?.data?.data,D]),[q,J]=d(`post-detail-comment-total-${f}`,typeof E==`number`?E:void 0);y(()=>{typeof G==`number`&&J(e=>typeof e==`number`?Math.max(e,G):G)},[G,J]);let he=b(()=>[`detail-interaction`,I?.id,I?.content_type],[I?.content_type,I?.id]),Y=I?.up_user||``,ge=!!(A&&Y&&A===Y),_e=b(()=>[`detail-follow-status`,A,Y],[A,Y]),{data:X}=c(he,async()=>!I?.id||typeof I.content_type!=`number`?null:await ee([I.id],2),{enabled:!!I?.id}),{data:Z}=c(_e,async()=>!A||!Y?null:await o({app_id:0,follower_id:A,followee_ids:[Y]}),{enabled:!!ue&&!!A&&!!Y&&!ge});y(()=>{!I&&M&&L(M)},[I,M,L]),y(()=>{R.length===0&&P.length>0&&z(P)},[R.length,P,z]),y(()=>{if(!X?.interaction_list?.[0])return;let e=X.interaction_list[0];L(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,L]),y(()=>{if(!Z?.data||!Y)return;let e=!!Z.data?.is_following_map?.[Y];L(t=>!t||t.is_followed===e?t:{...t,is_followed:e})},[Z?.data,Y,L]);let Q=v(e=>{L(t=>t&&{...t,...e})},[L]);u(()=>{I?.id&&I.id},[I?.id],`detail-page-report-${f}`),y(()=>{!I||typeof window>`u`||window.sensors?.track?.(`detail_page_view`,{object_id:I.id||f,author_id:I.up_user,object_type:I.content_type,object_category:I.content_type,object_tags:I.tags?.map(e=>e.name),block_id:``,page_source:window.location?.pathname||``})},[f,I]),y(()=>{V(0)},[I?.id,V]);let ve=b(()=>(typeof q==`number`?q:typeof G==`number`?G:0)+B,[B,q,G]);y(()=>{k?.get(`tab`)===`comment`&&(typeof window>`u`||window.requestAnimationFrame(()=>{document.getElementById(`detail-comments`)?.scrollIntoView({behavior:`smooth`,block:`start`})}))},[I?.id,k]);let $=I?.status===`2`,{data:ye}=c([p.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(m,{data:{list:e(ye?.data)}})}),S(`div`,{className:`mx-auto w-full max-w-[840px] pb-6`,children:C(x,{children:[I&&!$&&S(s,{type:`no-content`,text:O(`postDetailClient.postOffline`)}),I&&$&&C(x,{children:[H&&S(h,{information:I,isVideo:!0}),C(`article`,{className:`w-full`,children:[S(_,{infoData:I,rightChild:S(te,{information:I,onUpdate:Q})}),S(ie,{infoData:I,isEllipsis:!1}),!H&&S(`div`,{className:`mt-[12px]`,children:S(h,{information:I,isVideo:!1})})]}),S(ne,{information:I,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:O(`postDetailClient.comment`)}),C(`p`,{className:`text-[12px] text-text3`,children:[ve,O(`postDetailClient.reactions`)]})]}),S(g,{listQueryKey:U,contentId:I.id,information:I,isShow:!1,isClickLoad:!0,initialComments:me,initialTotal:G,initialHasMore:K,addCommentCount:()=>{V(e=>e+1)},onTotalChange:e=>{J(t=>typeof t==`number`?Math.max(t,e):e)}})]}),R.length>0&&S(re,{information:I,initRecommendList:R})]}),!I&&S(s,{type:`no-content`,text:O(`postDetailClient.postDeleted`)})]})})]})}export{w 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{useKeepAliveEffect as u,useKeepAliveState as d}from"../../common/keep-scroll-position/index.mjs";import{apiCollectClick as f}from"../../../utils/api-collect.mjs";import{batchQueryContentInteractions as ee}from"../../../hooks/use-content-operate.mjs";import{queryKey as p}from"../../../constants/query-key.mjs";import m from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{DetailFollowAction as te}from"../../biz/business/detail/detail-follow-action.mjs";import{DetailOperate as ne}from"../../biz/business/detail/detail-operate.mjs";import{PostRecommendList as re}from"../../biz/business/detail/post-recommend-list.mjs";import{DetailHero as h}from"../../biz/business/detail/video-hero.mjs";import g from"../../biz/business/comment/comment-list.mjs";import ie from"../../common/info-card/card-header.mjs";import _ from"../../common/info-card/card-text.mjs";import{useCallback as ae,useEffect as v,useMemo as y}from"react";import{Fragment as b,jsx as x,jsxs as S}from"react/jsx-runtime";import{useTranslations as C}from"next-intl";import{useSearchParams as oe}from"next/navigation";function se(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=C(`components.pages.postDetail`),k=oe(),{isLogin:ue,userInfo:de,userId:fe}=t(),A=fe||de?.userId||``;l({contentId:f,contentType:2,enabled:!!f,enableIntervalReport:!1,enableExitReport:!1});let{data:j}=c(y(()=>[`post-detail`,f],[f]),async()=>f?await r({content_id:f}):null,{enabled:!!f}),M=y(()=>{let e=j?.data?.data;return se(e)},[j?.data?.data]),pe=w??M??null,{data:N}=c(y(()=>[`post-detail-recommend`,f],[f]),async()=>f?await i({page:1,page_size:6,sort_by:`recommend`}):null,{enabled:!!f}),P=y(()=>(N?.data?.data?.contents??[]).filter(e=>e.content_id!==f).slice(0,4).map(e=>ce(e)),[f,N?.data?.data?.contents]),F=le??P??[],[I,L]=d(`detail-information-${f}`,pe),[R,z]=d(`detail-recommend-${f}`,F),[B,V]=d(`info-detail-comment-add-count-${f}`,0),H=y(()=>I?.content_type===0,[I?.content_type]),U=y(()=>[`post-detail-comments`,f,1,5],[5,f]),{data:W}=c(U,async()=>f?await n({content_id:f,page:1,page_size:5,sort_by:`latest`}):null,{enabled:!!f}),me=y(()=>{if(T?.length)return T;let e=W?.data?.data?.comments??[];if(e.length>0)return e},[W?.data?.data?.comments,T]),G=y(()=>{if(typeof E==`number`)return E;if(W?.data?.data)return typeof W?.data?.data?.total==`number`?W.data.data.total:void 0},[W?.data?.data,E]),K=y(()=>{if(typeof D==`boolean`)return D;if(W?.data?.data)return W?.data?.data?.has_more??!1},[W?.data?.data,D]),[q,J]=d(`post-detail-comment-total-${f}`,typeof E==`number`?E:void 0);v(()=>{typeof G==`number`&&J(e=>typeof e==`number`?Math.max(e,G):G)},[G,J]);let he=y(()=>[`detail-interaction`,I?.id,I?.content_type],[I?.content_type,I?.id]),Y=I?.up_user||``,ge=!!(A&&Y&&A===Y),_e=y(()=>[`detail-follow-status`,A,Y],[A,Y]),{data:X}=c(he,async()=>!I?.id||typeof I.content_type!=`number`?null:await ee([I.id],2),{enabled:!!I?.id}),{data:Z}=c(_e,async()=>!A||!Y?null:await o({app_id:0,follower_id:A,followee_ids:[Y]}),{enabled:!!ue&&!!A&&!!Y&&!ge});v(()=>{!I&&M&&L(M)},[I,M,L]),v(()=>{R.length===0&&P.length>0&&z(P)},[R.length,P,z]),v(()=>{if(!X?.interaction_list?.[0])return;let e=X.interaction_list[0];L(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,L]),v(()=>{if(!Z?.data||!Y)return;let e=!!Z.data?.is_following_map?.[Y];L(t=>!t||t.is_followed===e?t:{...t,is_followed:e})},[Z?.data,Y,L]);let Q=ae(e=>{L(t=>t&&{...t,...e})},[L]);u(()=>{I?.id&&I.id},[I?.id],`detail-page-report-${f}`),v(()=>{!I||typeof window>`u`||window.sensors?.track?.(`detail_page_view`,{object_id:I.id||f,author_id:I.up_user,object_type:I.content_type,object_category:I.content_type,object_tags:I.tags?.map(e=>e.name),block_id:``,page_source:window.location?.pathname||``})},[f,I]),v(()=>{V(0)},[I?.id,V]);let ve=y(()=>(typeof q==`number`?q:typeof G==`number`?G:0)+B,[B,q,G]);v(()=>{k?.get(`tab`)===`comment`&&(typeof window>`u`||window.requestAnimationFrame(()=>{document.getElementById(`detail-comments`)?.scrollIntoView({behavior:`smooth`,block:`start`})}))},[I?.id,k]);let $=I?.status===`2`,{data:ye}=c([p.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:[I&&!$&&x(s,{type:`no-content`,text:O(`postDetailClient.postOffline`)}),I&&$&&S(b,{children:[H&&x(h,{information:I,isVideo:!0}),S(`article`,{className:`w-full`,children:[x(ie,{infoData:I,rightChild:x(te,{information:I,onUpdate:Q})}),x(_,{infoData:I,isEllipsis:!1}),!H&&x(`div`,{className:`mt-[12px]`,children:x(h,{information:I,isVideo:!1})})]}),x(ne,{information:I,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:U,contentId:I.id,information:I,isShow:!1,isClickLoad:!0,initialComments:me,initialTotal:G,initialHasMore:K,addCommentCount:()=>{V(e=>e+1)},onTotalChange:e=>{J(t=>typeof t==`number`?Math.max(t,e):e)}})]}),R.length>0&&x(re,{information:I,initRecommendList:R})]}),!I&&x(s,{type:`no-content`,text:O(`postDetailClient.postDeleted`)})]})})]})}export{w 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{Box as n}from"../../../../ui/box.mjs";import{useLoginModalStore as r}from"../../../../../store/modules/login-modal-store.mjs";import{
|
|
2
|
+
"use client";import{cn as e}from"../../../../../utils/cn.mjs";import{useUserStore as t}from"../../../../../store/modules/user-store.mjs";import{Box as n}from"../../../../ui/box.mjs";import{useLoginModalStore as r}from"../../../../../store/modules/login-modal-store.mjs";import{useEffect as i,useMemo as a,useRef as o}from"react";import{jsx as s}from"react/jsx-runtime";import{useRouter as c}from"next/navigation";import{parseAsString as l,useQueryState as u}from"nuqs";function d({id:d,cookieUserId:f,className:p,children:m}){let h=c(),g=o(null),_=o(!1),v=r(e=>e.isOpen),y=t(e=>e.isLogin),b=t(e=>e.userId),x=y&&!!b,S=b||f,C=d==null||!!d&&!!b&&d===b,w=C?S:d?String(d):void 0,[T]=u(`tab`,l.withDefault(`collect`)),E=a(()=>{let e=C?[`collect`,`publish`,`like`,`history`]:[`collect`,`publish`,`like`];return T&&e.includes(T)?T:e[0]},[C,T]),D=a(()=>`profile-scroll:${w||(C?`mine`:`guest`)}:${E}`,[C,E,w]);return i(()=>{if(v&&!x){_.current=!0;return}!v&&_.current&&(_.current=!1,x&&h.refresh())},[x,v,h]),i(()=>{if(typeof window>`u`)return;let e=g.current;if(!e)return;let t=window.sessionStorage.getItem(D),n=t?Number(t):0;Number.isFinite(n)&&n>0&&requestAnimationFrame(()=>{e.scrollTo({top:n})})},[D]),i(()=>{if(typeof window>`u`)return;let e=g.current;if(!e)return;let t=!1,n=()=>{t||(t=!0,requestAnimationFrame(()=>{window.sessionStorage.setItem(D,String(e.scrollTop)),t=!1}))};return e.addEventListener(`scroll`,n,{passive:!0}),()=>{e.removeEventListener(`scroll`,n)}},[D]),s(n,{ref:g,className:e(`profile-container w-full bg-bg1 flex flex-col h-full overflow-y-auto`,p),children:m})}export{d as UserProfileContainer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{gCommunityGetUserCollections as e}from"../../../../service/generated/client.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import
|
|
2
|
+
"use client";import{gCommunityGetUserCollections as e}from"../../../../service/generated/client.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../ui/legacy/button.mjs";import{useRequest as i}from"../../../../hooks/query/use-query.mjs";import a from"../../../../assets/icons/publish/publish_collection.mjs";import{CollectionCard as o}from"./collection-card.mjs";import{CollectionPopup as s}from"./collection-popup.mjs";import{useMemo as c,useState as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{useTranslations as f}from"next-intl";import{useRouter as p}from"next/navigation";function m({active:m,setActive:h}){let g=f(`components.pages.publish.components`),[_,v]=l([]),[y,b]=l(!1),x=p(),{data:S=[]}=i([`publish`,`collection-list`,`preview`,3],async()=>(await e({page:1,page_size:3})).data?.data?.collections??[]);function C(e){v(t=>t.some(t=>t.collection_id===e.collection_id)?t:[e,...t]),h(e.collection_id??``)}let w=c(()=>{let e=new Set,t=[];for(let n of[..._,...S]){let r=n.collection_id??``;if(!(!r||e.has(r))&&(e.add(r),t.push(n),t.length>=3))break}return t},[_,S]);return d(t,{children:[d(t,{className:`flex justify-between items-center px-[16px] py-[12px]`,children:[u(n,{className:`text-[14px] text-text1`,children:g(`collection.syncToCollection`)}),u(r,{type:`button`,className:`!text-[12px] text-theme5 bg-[rgba(253,76,94,.1)] rounded-[20px] w-[64px] h-[24px] px-[8px] py-[4px]`,onClick:()=>b(!0),children:g(`collection.moreCollections`)})]}),d(t,{className:`flex gap-[8px] px-[16px] pb-[12px] overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:[w.map(e=>u(o,{item:e,active:e.collection_id===m,onClick:()=>h(e.collection_id===m?``:e.collection_id??``)},e.collection_id)),d(r,{className:`flex w-[226px] h-[70px] shrink-0 items-center gap-[12px] rounded-[8px] px-[12px] py-[10px] bg-bg1`,onClick:()=>x.push(`/collection/create?type=publish`),children:[u(a,{width:52,height:52}),u(t,{className:`flex flex-1 flex-col overflow-hidden gap-[4px]`,children:u(n,{className:`text-[14px] text-text2 text-left`,children:g(`collection.createCollection`)})})]})]}),u(s,{open:y,onOpenChange:b,onSelect:C})]})}export{m as Collection};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Button as e}from"../../../ui/button.mjs";import{Box as t}from"../../../ui/box.mjs";import n from"../../../../assets/icons/close.mjs";import{
|
|
2
|
+
"use client";import{Button as e}from"../../../ui/button.mjs";import{Box as t}from"../../../ui/box.mjs";import n from"../../../../assets/icons/close.mjs";import{jsx as r,jsxs as i}from"react/jsx-runtime";import{useTranslations as a}from"next-intl";import{useRouter as o}from"next/navigation";function s({onPublish:s,isEmpty:c}){let l=a(`components.pages.publish.components`),u=o();return i(t,{className:`flex h-[60px] w-full items-center justify-between px-[16px]`,children:[r(e,{type:`button`,className:`p-3 text-text1 bg-transparent`,onClick:()=>u.back(),children:r(n,{className:`h-[16px] w-[16px]`})}),r(e,{className:`h-[32px] rounded-[8px] bg-linear-to-r from-[#FD4C5E] to-[#F05D19] px-[12px] text-[16px] text-white font-normal`,disabled:c,onClick:s,children:l(`header.publish`)})]})}export{s as PublishHeader};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{cn as e}from"../../../utils/cn.mjs";import{AlertDialog as t,AlertDialogAction as n,AlertDialogCancel as r,AlertDialogContent as ee,AlertDialogDescription as te,AlertDialogFooter as ne,AlertDialogHeader as re,AlertDialogTitle as
|
|
2
|
+
"use client";import{cn as e}from"../../../utils/cn.mjs";import{AlertDialog as t,AlertDialogAction as n,AlertDialogCancel as r,AlertDialogContent as ee,AlertDialogDescription as te,AlertDialogFooter as ne,AlertDialogHeader as re,AlertDialogTitle as ie}from"../../ui/alert-dialog.mjs";import{getAtUserElement as i}from"../../../utils/common.mjs";import ae from"../../../utils/event-bus.mjs";import{pCommunityPublishContent as oe}from"../../../service/generated/client.mjs";import{Box as se}from"../../ui/box.mjs";import{useKeyboardOpen as ce}from"../../../hooks/use-keyboard-open.mjs";import{useMediaPreview as a}from"../../common/media-preview/index.mjs";import o from"../../ui/popup.mjs";import{eventKey as s}from"../../../constants/event-key.mjs";import{UploadProgress as c}from"./components/upload-progress.mjs";import{ContactList as l}from"../../biz/business/contact/contact-list.mjs";import{Collection as u}from"./components/collection.mjs";import{MAX_MATERIAL_COUNT as d}from"./constants.mjs";import{filterAtUserNames as le}from"./utils/publish-utils.mjs";import{PublishEditor as ue}from"./components/editor.mjs";import{PublishHeader as de}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{useCallback as f,useEffect as he,useMemo as ge,useRef as p,useState as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{toast as _}from"sonner";import{useTranslations as _e}from"next-intl";import{useRouter as v}from"next/navigation";function y({className:y}={}){let b=_e(`components.pages.publish`),ve=v(),x=p(null),[ye,S]=m(!1),[C,w]=m(`0`),{isOpen:T}=ce(),[E,D]=m(null),[O,k]=m([]),[A,j]=m(``),[M,N]=m(``),[P,F]=m(``),[I,L]=m(0),[be,R]=m(``),[z,B]=m(``),[xe,V]=m(0),[H,U]=m(``),[W,G]=m([]),[Se,K]=m(!1),[Ce,q]=m(!1),[we,Te]=m(``),J=p(null);he(()=>()=>{ae.emit(s.WAIT_LOADING_SHOW,{show:!1})},[]);let Y=f(e=>(Te(e),q(!0),new Promise(e=>{J.current=e})),[]),{selectFile:X}=me({onProgressUpdate:(e,t,n,r)=>{D(r>0?{currentFiles:e,totalFiles:t,currentTasks:n,totalTasks:r}:null)}}),Z=f(async()=>{if(A){if(!await Y(b(`pageClient.switchToPostConfirm`)))return;j(``),N(``),F(``),L(0),V(0),R(``),B(``)}if(O.length>=d){_.error(b(`pageClient.maxMaterialCount`));return}let e=await X(`material`,{maxMaterialCount:d-O.length});!e||e.type!==`material`||(e.errors.length>0&&_.error(e.errors.length===1?e.errors[0]:b(`pageClient.uploadFailedCount`,{count:e.errors.length})),e.items.length>0&&k(t=>[...t,...e.items].slice(0,d)))},[Y,O.length,X,B,N,F,k,R,L,V,j,b,A]),Ee=f(async()=>{if(O.length>0){if(!await Y(b(`pageClient.switchToVideoConfirm`)))return;k([])}let e=await X(`video`);!e||e.type!==`video`||(j(e.videoUrl),N(e.coverUrl),F(e.coverUrl),R(e.resolution),B(e.coverImageResolution),L(e.videoDuration),V(e.videoSize))},[Y,O.length,X,B,N,F,k,R,L,V,j,b]);function De(e){S(e)}function Oe(){S(!1)}let Q=ge(()=>(H.trim()===``||H.trim()===`<br>`)&&O.length===0&&!A,[H,O.length,A]),$=a(),ke=f(()=>{$.open(O.map(e=>({src:e.media_url,type:e.is_video?`video`:`image`,cover:e.cover_image})))},[O,$]),Ae=f(e=>{k(t=>t.filter((t,n)=>n!==e))},[k]),je=f(()=>{j(``),N(``),F(``),L(0),V(0),R(``),B(``)},[N,F,B,R,L,V,j]),Me=f(async()=>{let e=await X(`cover`);!e||e.type!==`cover`||(N(e.coverUrl),B(e.coverImageResolution))},[X,B,N]),Ne=f(e=>{S(!1),G(t=>[...t,e]),x.current?.restoreSelection();let t=`${i(e)} `;x.current?.insertHtml(t)},[G]),Pe=f(()=>{x.current?.saveSelection(),S(!0)},[]);return g(se,{className:e(`relative min-h-screen max-w-full bg-bg2 overflow-hidden flex flex-col`,y),children:[h(de,{onPublish:async()=>{if(!Se){K(!0);try{if(Q){_.error(b(`pageClient.editContentFirst`));return}let e=H;if(e=e.replace(/<br>/g,``),!e&&O.length===0&&!A){_.error(b(`pageClient.editContentFirst`));return}let t=le(e,W),n={content:e,mentioned_users:t,collection_ids:C===`0`?[]:[C]};O.length>0?(n.medias=O.map(e=>(delete e.index,e)),n.type=1):A?(n.medias=[{media_url:A,is_video:!0,cover_image:M,video_resolution:be,cover_image_resolution:z,video_duration:I,video_size:xe}],n.type=2):n.type=3,await oe(n),_.success(b(`pageClient.publishSuccess`)),k([]),j(``),N(``),F(``),L(0),V(0),R(``),B(``),U(``),G([]),w(`0`),ve.back()}catch(e){console.error(e),_.error(b(`pageClient.publishFailed`))}finally{K(!1)}}},isEmpty:Q}),h(ue,{ref:x,content:H,onContentChange:U,atUsers:W,onAtUsersChange:G}),E&&h(c,{currentFiles:E.currentFiles,totalFiles:E.totalFiles,currentTasks:E.currentTasks,totalTasks:E.totalTasks}),(O.length>0||A)&&h(fe,{materialList:O,videoUrl:A,videoDuration:I,coverUrl:M,originCoverUrl:P,isKeyboardOpen:T,onMaterialDelete:Ae,onVideoDelete:je,onMaterialAdd:Z,onCoverClick:Me,onPreview:ke}),h(pe,{isKeyboardOpen:T,onMaterialClick:()=>void Z(),onVideoClick:()=>void Ee(),onAtUserClick:Pe}),h(u,{active:C,setActive:w}),h(t,{open:Ce,onOpenChange:e=>{q(e),e||(J.current?.(!1),J.current=null)},children:g(ee,{children:[g(re,{children:[h(ie,{children:b(`pageClient.title`)}),h(te,{children:we})]}),g(ne,{children:[h(r,{onClick:()=>{q(!1),J.current?.(!1),J.current=null},children:b(`pageClient.cancel`)}),h(n,{onClick:()=>{q(!1),J.current?.(!0),J.current=null},children:b(`pageClient.resume`)})]})]})}),h(o,{open:ye,onOpenChange:De,showCloseButton:!1,className:`w-full rounded-[8px] bg-bg2`,children:h(l,{onSelect:Ne,onClose:Oe})})]})}export{y 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{Text as i}from"../../ui/text.mjs";import{useRequest as a}from"../../../hooks/query/use-query.mjs";import{useSearchHistory as o}from"../../../hooks/use-search-history.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{Text as i}from"../../ui/text.mjs";import{useRequest as a}from"../../../hooks/query/use-query.mjs";import{useSearchHistory as o}from"../../../hooks/use-search-history.mjs";import{eventKey as s}from"../../../constants/event-key.mjs";import{SearchHistoryServer as c}from"../../biz/business/search-history/server.mjs";import l from"./hot-recommend.mjs";import u from"./hot-search.mjs";import d from"./search-result/index.mjs";import f from"./top-header.mjs";import{memo as p,useEffect as m,useMemo as h,useState as g}from"react";import{Fragment as _,jsx as v,jsxs as y}from"react/jsx-runtime";import{useTranslations as b}from"next-intl";import{useSearchParams as x}from"next/navigation";const S=[{labelKey:`tabs.all`,value:`all`},{labelKey:`tabs.video`,value:`video`},{labelKey:`tabs.post`,value:`info`},{labelKey:`tabs.user`,value:`user`}],C=p(({searchType:e,onChange:t,tabList:n})=>v(`nav`,{className:`w-full h-[42px] bg-bg1 flex items-center px-[3px] sticky top-[53px] left-0 z-50`,children:n.map(n=>v(i,{className:`h-[30px] rounded-[15px] leading-[30px] px-[9px] text-[16px] bg-transparent transition-all duration-150 ${e===n.value?`text-theme5 !text-[20px] font-bold`:`text-text2`}`,onClick:()=>{e!==n.value&&t(n.value)},children:n.label},n.value))}));function w(){let i=b(`components.pages.search.pageClient`),{userInfo:p}=n(),w=p?.user_id||`guest`,T=x().get(`q`)?.toString()||``,E=T?decodeURIComponent(T):``,{data:D,refetch:O}=a([`hotSearchKey`],()=>r({user_id:w})),k=h(()=>D?.data?.recommend_list??[],[D]),[A,j]=g(E),M=h(()=>S.map(e=>({value:e.value,label:i(e.labelKey)})),[i]),[N,P]=g(E),[F,I]=g(0),[L,R]=g(S[0].value),[,z]=g([]),{history:B,addHistory:V}=o({storageKey:w}),H=h(()=>A.trim()===``?k.length>0||B.length>0||A.trim()===``:!1,[k,A,B]),U=h(()=>A.trim()!==``&&!H,[A,H]);return m(()=>(t.on(s.EXCHANGE_SEARCH_TYPE,R),()=>{t.off(s.EXCHANGE_SEARCH_TYPE,R)}),[R]),y(`div`,{className:`w-full min-h-screen bg-bg1 pb-[12px]`,children:[v(f,{setSearchInputVal:t=>{t!==A&&(z([]),j(t),e({q:t}))},initInputVal:N,initInputVersion:F,addSearchHistory:V}),H&&y(`div`,{className:`w-full pt-[8px]`,children:[B.length>0&&v(c,{title:i(`searchHistory`),rows:`2`,onHistoryClick:e=>{P(e),I(e=>e+1)}}),v(u,{initHotSearchKeywordList:k,onRefreshHotKey:async()=>(await O()).data??{code:0,message:``,data:{recommend_list:[]}},onClick:e=>{P(e.title||``),I(e=>e+1)}})]}),v(l,{isShow:A.trim()===``}),U&&y(_,{children:[v(C,{searchType:L,tabList:M,onChange:e=>{R(e),z([])}}),v(d,{inputVal:A,searchType:L},`${L}-${A}`)]})]})}export{w as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{gContentGetRecommendVideoList as e}from"../../../../service/generated/client.mjs";import{Image as t}from"../../../ui/image.mjs";import{Box as n}from"../../../ui/box.mjs";import{EmptyState as r}from"../../../ui/empty.mjs";import{usePaginated as i,useRefetchQuery as a,useUpdateRequest as o}from"../../../../hooks/query/use-query.mjs";import{getPostDetailPagePath as s}from"../../../../utils/tools.mjs";import{
|
|
2
|
+
"use client";import{gContentGetRecommendVideoList as e}from"../../../../service/generated/client.mjs";import{Image as t}from"../../../ui/image.mjs";import{Box as n}from"../../../ui/box.mjs";import{EmptyState as r}from"../../../ui/empty.mjs";import{usePaginated as i,useRefetchQuery as a,useUpdateRequest as o}from"../../../../hooks/query/use-query.mjs";import{getPostDetailPagePath as s}from"../../../../utils/tools.mjs";import{apiCollectCustom as c}from"../../../../utils/api-collect.mjs";import{UserActivityList as l}from"../../../common/list/user-activity-list/user-activity-list.mjs";import{VideoListItemSkeleton as u}from"../../../common/skeleton/video-list-item-skeleton.mjs";import{useCardDecoration as d}from"../../../../hooks/use-card-decoration.mjs";import f from"../../../ui/rate.mjs";import{mapRecommendContentToUserActivityItem as p}from"../search-utils.mjs";import{memo as m,useCallback as h,useMemo as g}from"react";import{jsx as _,jsxs as v}from"react/jsx-runtime";import{useTranslations as y}from"next-intl";import b from"next/link";const x=m(()=>_(n,{className:`w-full px-[12px] pt-[12px]`,children:Array.from({length:3}).map((e,t)=>_(u,{},`search-video-skeleton-${t}`))}));x.displayName=`SearchVideoListSkeleton`;const S=m(({item:e})=>{let{getCalculationScore:r}=d();return v(b,{className:`w-full flex items-center justify-between mb-[12px] pb-[12px] border-b border-line1 cursor-pointer px-[12px]`,href:s({id:e.video_id,contentType:0}),onClick:()=>{e.video_id},children:[_(n,{className:`w-[76px] h-[102px] shrink-0 rounded-[8px] overflow-hidden relative bg-bg2`,children:_(t,{src:e.img_y||e.img_x||``,fill:!0,objectFit:`cover`,alt:e.name||``})}),v(n,{className:`flex-1 min-w-0 flex flex-col ml-[12px]`,children:[_(`span`,{className:`leading-[26px] text-text1 text-[18px] font-bold max-w-[200px] line-clamp-1 mb-[4px]`,children:e.name||``}),v(n,{className:`flex items-center`,style:{transform:`scale(0.6)`,transformOrigin:`left center`},children:[_(f,{allowHalf:!0,value:r({score:String(e.score??0)})}),_(`span`,{className:`ml-[8px] text-[24px] text-[#F59E0B] font-bold leading-[24px]`,children:e.score?(Number(e.score)/10).toFixed(1):0})]}),v(n,{className:`w-full mt-[4px] flex items-center shrink-0 pr-[12px]`,children:[_(n,{className:`w-fit h-[20px] leading-[20px] px-[6px] text-text3 text-[12px] bg-line1 rounded-[4px] shrink-0 mr-[10px]`,children:e.group_name}),_(`span`,{className:`text-text2 text-[14px] leading-[22px] flex-1 min-w-0 line-clamp-1`,children:e.description})]})]})]})});S.displayName=`VideoItem`;const C=m(({list:e})=>_(n,{className:`w-full px-[12px] pt-[12px]`,children:e.map((e,t)=>_(S,{item:e},String(e.video_id??t)))}));C.displayName=`VideoList`;const w=m(({list:e,onUpdate:t,onActionSuccess:n})=>{let r=h(n=>{let r=e.findIndex(e=>e.content_id===n.content_id);if(r!==-1){let i=[...e];i[r]=n,t(i)}},[e,t]);return _(l,{list:g(()=>e.map(e=>({...p(e),onLikeSuccess(t){r({...e,like_count:String(t.count),dislike_count:t.dislikeCount===void 0?e.dislike_count:String(t.dislikeCount),interaction:{...e.interaction,is_liked:t.isLiked,is_dislike:t.isDisliked??e.interaction?.is_dislike}})},onDislikeSuccess(t){r({...e,like_count:t.likeCount===void 0?e.like_count:String(t.likeCount),dislike_count:String(t.count),interaction:{...e.interaction,is_dislike:t.isDisliked,is_liked:t.isLiked??e.interaction?.is_liked}})}})),[r,e]),showGroupHeaders:!1,onActionSuccess:n})});w.displayName=`InfoList`;const T=m(({searchType:t,inputVal:s})=>{let c=y(`components.pages.search.searchResult`),u=h(async n=>await e({data_type:2,extra_params:JSON.stringify({type:t===`video`?3:2,keywords:s}),page:n||1,page_size:20}),[s,20,t]),d=g(()=>[`searchByKeyForVideoInfo`,s,t===`video`?3:2],[s,t]),f=i({key:d,initialPageParam:1,async queryFn(e){let n=await u(e);return(t===`video`?n?.data?.videos:n?.data?.contents)??{has_more:!1,total:0,list:[]}},getNextPageParam(e,t){if(e.has_more)return t.length+1}}),m=g(()=>{let e=f.data?.pages??[],t=[];for(let n of e){let e=n.list??[];t.push(...e)}return t},[f.data?.pages]),v=g(()=>m,[m,t]),b=o(),S=a(),w=h(e=>{b(d,t=>{if(!t)return t;let n=t.pages.map(t=>({...t,list:(t.list??[]).map(t=>t.content_id===e.content_id?e:t)}));return{...t,pages:n}})},[d,b]),T=h(()=>{S(d)},[d,S]),E=h(e=>({...p(e),onLikeSuccess(t){w({...e,like_count:String(t.count),dislike_count:t.dislikeCount===void 0?e.dislike_count:String(t.dislikeCount),interaction:{...e.interaction,is_liked:t.isLiked,is_dislike:t.isDisliked??e.interaction?.is_dislike}})},onDislikeSuccess(t){w({...e,like_count:t.likeCount===void 0?e.like_count:String(t.likeCount),dislike_count:String(t.count),interaction:{...e.interaction,is_dislike:t.isDisliked,is_liked:t.isLiked??e.interaction?.is_liked}})}}),[w]),D=g(()=>v.map(E),[E,v]),O=f.isPending||f.isFetching,k=t===`video`&&O&&v.length===0;return _(n,{className:`w-full`,children:t===`video`?k?_(x,{}):v.length>0?_(C,{list:v}):_(r,{type:`no-content`,text:c(`searchVideoInfo.noRelevantContent`),className:`mt-[12px]`}):_(l,{list:D,loading:O,hasMore:f.hasNextPage??!1,loadMore:async e=>{if(e!==!1)try{f&&await f.fetchNextPage()}catch(e){console.error(`获取内容列表失败`,e)}},showGroupHeaders:!1,emptyText:c(`searchVideoInfo.noRelevantContent`),onActionSuccess:T})})});T.displayName=`SearchInfoOrVideoList`;export{C as VideoList,T as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import
|
|
2
|
+
"use client";import{Input as e}from"../../ui/input.mjs";import{useKeepAliveEffect as t,useKeepAliveState as n}from"../../common/keep-scroll-position/index.mjs";import{isPCEnv as r}from"../../../utils/tools.mjs";import{HeaderNav as i}from"../../common/header-nav/client.mjs";import a from"../../../assets/icons/search.mjs";import o from"../../../assets/icons/clear.mjs";import s from"./style.module.mjs";import{memo as c,useCallback as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{useTranslations as f}from"next-intl";import{useSearchParams as p}from"next/navigation";const m=c(({setSearchInputVal:c,initInputVal:m,initInputVersion:h,addSearchHistory:g})=>{let _=f(`components.pages.search`),[v,y]=n(`search-input-val`,``),b=p().get(`q`),x=e=>{let t=e.target.value;y(t)},S=l(e=>{c(e),g(e)},[g,c]);return t(()=>{m&&(y(m),S(m))},[m,h],`search-init-input-effect`),t(()=>{b&&(y(b),S(b))},[b],`search-url-params-effect`),u(i,{className:`h-[55px]`,rightChild:u(`div`,{className:`cursor-pointer w-[52px] flex items-center justify-center`,onClick:()=>{v&&S(v)},children:u(`span`,{className:`text-[16px] text-text1`,children:_(`topHeader.search`)})}),centerChild:d(`header`,{className:`w-[calc(100%-52px-48px)] ml-[-15px] h-[35px] rounded-[20px] flex items-center justify-center relative overflow-hidden border-line1 border-[1px]`,children:[u(`div`,{className:`absolute left-0 top-0 w-full h-full bg-bg2 opacity-50`}),u(a,{className:`w-[16px] h-[16px] text-text3 absolute left-[12px] top-[9px] z-[1]`}),u(e,{placeholder:_(`topHeader.placeholder`),maxLength:20,value:v,className:s.searchInput,onChange:x,onKeyDown:e=>{if(e.key===`Enter`){if(e.preventDefault(),!v)return;S(v)}}}),v&&u(o,{className:`w-[15px] h-[15px] text-text3 z-10 absolute right-[12px]`,onClick:()=>{r()||(y(``),c(``))}})]})})});export{m as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import
|
|
2
|
+
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../ui/legacy/button.mjs";import{useOpenLoginAsync as i}from"../../../../hooks/use-auth.mjs";import{memo as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";import{useTranslations as c}from"next-intl";const l=a(({className:a}={})=>{let l=c(`components.pages.userFollow.components`),u=i();return s(t,{className:e(`w-full bg-bg1 py-[20px] flex flex-col items-center justify-center relative z-[1]`,a),children:[s(n,{className:`text-[16px] leading-[22px] text-text1`,children:[l(`followNoLogin.notLoggedIn`),`~`]}),o(r,{className:`mt-[13px] w-[130px] h-[36px] leading-[36px] rounded-[8px] bg-theme5 text-[16px] text-white`,onClick:async()=>{await u()&&console.warn(`login success`)},children:l(`followNoLogin.login`)})]})});l.displayName=`FollowNoLogin`;export{l as FollowNoLogin};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{gContentGetVideoDetail as e}from"../../../service/generated/client.mjs";import{HydrationBoundary as t}from"../../../hooks/query/hydration-boundary.mjs";import{
|
|
2
|
+
import{gContentGetVideoDetail as e}from"../../../service/generated/client.mjs";import{HydrationBoundary as t}from"../../../hooks/query/hydration-boundary.mjs";import{normalizeEpisodeNumber as n,warmupProcessM3u8Auto as r}from"../../common/video-player/process-m3u8-cache.mjs";import{revalidate as i}from"../../../constants/revalidate.mjs";import{DetailStructuredData as a}from"../../biz/business/detail/detail-structured-data.mjs";import o from"./video-detail-client.mjs";import{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";async function u({params:u,isWebView:d=!1,materialConfig:f}){let{level:p}=await u,m=p?.[0]||``,h=p.findIndex(e=>e===`episode`),g=n(h>=0?p?.[h+1]:void 0,1),_=null,v=null;if(m){_=await e({id:m},{revalidate:i.TIME});let t=_?.data?.video;t&&typeof t==`object`&&(await r(t.links,g),v={...t,mid:t.mid||t.id||``,content_type:0,episode_cnt:t.links?.length||0})}return l(s,{children:[v&&c(a,{information:v,detailId:m}),c(t,{prefetch:m&&_?[{queryKey:[`video-detail`,m],queryFn:()=>Promise.resolve(_)}]:[],children:c(o,{detailId:m,isWebView:d,materialConfig:f})})]})}export{u as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{cn as t}from"../../../utils/cn.mjs";import n from"../../../utils/get-res-url.mjs";import{decryptImageToUint8Array as r}from"../../../utils/decrypt-image-client.mjs";import{gContentGetAppChannels as i,gContentGetVideoDetail as a,pInteractionBrowse as o}from"../../../service/generated/client.mjs";import{uint8ArrayToBase64 as s}from"../../../utils/uint8.mjs";import{EmptyState as c}from"../../ui/empty.mjs";import{useRequest as l}from"../../../hooks/query/use-query.mjs";import{useKeepAliveEffect as u,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{queryKey as m}from"../../../constants/query-key.mjs";import ee from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{resolveMaterialProps as te,videoDetailMaterials as ne}from"../../biz/business/detail/materials/registry.mjs";import{DetailHero as re}from"../../biz/business/detail/video-hero.mjs";import{
|
|
2
|
+
"use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{cn as t}from"../../../utils/cn.mjs";import n from"../../../utils/get-res-url.mjs";import{decryptImageToUint8Array as r}from"../../../utils/decrypt-image-client.mjs";import{gContentGetAppChannels as i,gContentGetVideoDetail as a,pInteractionBrowse as o}from"../../../service/generated/client.mjs";import{uint8ArrayToBase64 as s}from"../../../utils/uint8.mjs";import{EmptyState as c}from"../../ui/empty.mjs";import{useRequest as l}from"../../../hooks/query/use-query.mjs";import{useKeepAliveEffect as u,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{queryKey as m}from"../../../constants/query-key.mjs";import ee from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{resolveMaterialProps as te,videoDetailMaterials as ne}from"../../biz/business/detail/materials/registry.mjs";import{DetailHero as re}from"../../biz/business/detail/video-hero.mjs";import{Fragment as h,useCallback as g,useEffect as _,useMemo as v}from"react";import{Fragment as y,jsx as b,jsxs as x}from"react/jsx-runtime";import{useTranslations as ie}from"next-intl";import{useParams as S,useSearchParams as C}from"next/navigation";const w=[{id:`detail-info`,componentName:`video-detail-info`,props:{}},{id:`detail-actions`,componentName:`video-detail-actions`,props:{}},{id:`detail-recommend`,componentName:`video-detail-recommend`,props:{rows:2}}];function T({detailId:f,initialInformation:T,isWebView:E=!1,materialConfig:D}){let O=ie(`components.pages.videoDetail`),k=S(),ae=C(),A=k.level,j=Array.isArray(A)?A:typeof A==`string`?[A]:[],M=j.findIndex(e=>e===`episode`),N=M>=0?j[M+1]:j[2],P=Math.max(1,Number(N)||1),[F,I]=d(`detail-current-series-num-${f}`,P);_(()=>{I(P)},[f,P,I]);let L=Math.max(0,F-1),{data:R}=l(v(()=>[`video-detail`,f],[f]),async()=>f?await a({id:f}):null,{enabled:!!f}),z=v(()=>{let e=R?.data?.video;return!e||typeof e!=`object`?null:{...e,content_type:1,episode_cnt:e.links?.length||0}},[R?.data?.video]),oe=T??z??null,[B,V]=d(`detail-information-${f}`,oe),H=B?.links?.[L]?.id||``,{data:U,isFetching:W,isFetchedAfterMount:G,isSuccess:K}=l(v(()=>[`detail-interaction`,B?.id,B?.content_type,H,F],[H,F,B?.content_type,B?.id]),async()=>!B?.id||typeof B.content_type!=`number`?null:await p([B.id],1),{enabled:E?!1:!!B?.id,staleTime:0,refetchOnMount:`always`,refetchOnWindowFocus:!1}),se=v(()=>{if(!G||W||!K)return 0;let e=U?.interaction_list?.[0]?.browse_record,t=Number(e?.browse_duration||0);if(!Number.isFinite(t)||t<=0)return 0;let n=String(e?.browse_episode||``).trim();if(!n)return t;let r=Number.parseInt(n,10);return Number.isNaN(r)?0:r===F?t:0},[F,U,G,W,K]),[ce,le]=d(`info-detail-active-tab-${f}`,`video`),[q,J]=d(`info-detail-comment-add-count-${f}`,0),[Y,ue]=d(`info-detail-comment-total-${f}`,void 0),X=g(async e=>{let t=String(f||``).trim();if(!t)return;let n=e.browse_episode||F,r=Date.now(),i=String(e.browse_key||r);try{await o({app_id:0,content_type:1,content_id:t,browse_duration:Number(e.browse_duration||0),browse_episode:String(n),browse_key:i,browse_page_ts:r})}catch(e){console.error(`上报播放进度失败:`,e)}},[F,f]);_(()=>{!B&&z&&V(z),window.video={[f]:B},window.getVideoInfoAsync=async()=>{let e=B?.links?.[L]?.m3u8_url||``,t=e?`${process.env.NEXT_PUBLIC_API_BASE}/api/content/processM3u8?url=${encodeURIComponent(`${n()}/m3f/${e}`)}`:``,i=B?.img_y||B?.img_x||B?.preview_images?.[0]||``,a=``,o=await r(i);return o&&(a=s(o.bytes)),{poster:a,src:t,title:B?.name||``}},window.getVideoBrowseRecordAsync=async()=>{let e=await p([f],1);return e?.interaction_list?.[0]?e.interaction_list[0].browse_record:null},window.reportVideoBrowse=X},[f,L,B,z,V,X]),_(()=>{if(!U?.interaction_list?.[0])return;let e=U.interaction_list[0];V(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}})},[U,V]);let Z=g(e=>{V(t=>t&&{...t,...e})},[V]);u(()=>{B?.id&&B.id},[B?.id],`detail-page-report-${f}`),_(()=>{!B||typeof window>`u`||window.sensors?.track?.(`detail_page_view`,{object_id:B.id||f,author_id:B.up_user,object_type:B.content_type,object_category:B.content_type,object_tags:B.tags?.map(e=>e.name),block_id:``,page_source:window.location?.pathname||``})},[f,B]),_(()=>{J(0)},[H,J]),v(()=>(typeof Y==`number`?Y:0)+q,[q,Y]);let de=g(()=>{},[!1,le]);g(()=>{J(e=>e+1)},[J]),_(()=>{},[!1,de,B?.id,ae]);let Q=g(e=>{if(E){let t=encodeURIComponent(B?.name||``),n=`/webview/${B?.id}/${t}/episode/${e}`;window.location.href=n}else I(e)},[B?.id,B?.name,E,I]),$=B?.status===`1`,{data:fe}=l([m.CHANNEL],()=>i()),pe=e(fe?.data),me=v(()=>{if(D!==void 0){let e=new Map(w.map(e=>[e.componentName,e]));return D.map(t=>{let n=e.get(t.componentName);return{...n,...t,props:{...n?.props??{},...t.props??{}}}})}return w},[D]),he=g(e=>{if(!B)return null;let t=ne[e.componentName];if(!t)return null;let n=t.clientComponent,r=te(t,e.props);if(!r.isValid)return b(`div`,{children:`组件配置错误`});let i={};return e.componentName.startsWith(`video-detail-info`)&&(i.information=B,i.currentSeriesNum=F,i.onEpisodeChange=Q,i.isShow=!0),e.componentName===`video-detail-actions`&&(i.information=B,i.onUpdate=Z),e.componentName===`video-detail-recommend`&&(i.detailId=f),b(n,{...r.props,...i})},[F,f,Q,Z,B,!0]);return x(`div`,{className:`w-full min-h-screen bg-bg2 text-text1 ${E?``:`pt-11`}`,children:[!E&&b(`div`,{className:`fixed bg-black top-0 left-0 right-0 z-[1000]`,children:b(ee,{data:{list:pe}})}),b(`div`,{className:`mx-auto w-full max-w-[840px] pb-6`,children:x(y,{children:[B&&!$&&b(c,{type:`no-content`,text:O(`videoDetailClient.videoUnavailable`)}),B&&$&&x(y,{children:[!E&&b(re,{isVideo:!0,information:B,episodeIndex:L,resumeProgressSeconds:se}),b(`div`,{id:`selectPopupPosition`,className:`w-full`}),!1,x(`div`,{className:t(`w-full`,!1),children:[me.map(e=>b(h,{children:he(e)},e.id)),!1]}),!1]}),!B&&b(c,{type:`no-content`,text:O(`videoDetailClient.videoDeleted`)})]})})]})}export{T as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Button as e}from"../../ui/button.mjs";import{gContentGetNewstVideoList as t,gContentGetPopularVideoList as n}from"../../../service/generated/client.mjs";import{gContentGetNewstVideoListKey as r,gContentGetPopularVideoListKey as i}from"../../../service/generated/tanstack.mjs";import{Box as a}from"../../ui/box.mjs";import{InfiniteScroll as o}from"../../ui/infinite-scroll.mjs";import{Text as s}from"../../ui/text.mjs";import{usePaginated as c}from"../../../hooks/query/use-query.mjs";import l from"../../../assets/icons/left_arrow.mjs";import{getNextVideoListPageParam as u,resolveNextCursor as d}from"./types.mjs";import{VideoListItemComponent as f}from"./video-list-item.mjs";import{
|
|
2
|
+
"use client";import{Button as e}from"../../ui/button.mjs";import{gContentGetNewstVideoList as t,gContentGetPopularVideoList as n}from"../../../service/generated/client.mjs";import{gContentGetNewstVideoListKey as r,gContentGetPopularVideoListKey as i}from"../../../service/generated/tanstack.mjs";import{Box as a}from"../../ui/box.mjs";import{InfiniteScroll as o}from"../../ui/infinite-scroll.mjs";import{Text as s}from"../../ui/text.mjs";import{usePaginated as c}from"../../../hooks/query/use-query.mjs";import l from"../../../assets/icons/left_arrow.mjs";import{getNextVideoListPageParam as u,resolveNextCursor as d}from"./types.mjs";import{VideoListItemComponent as f}from"./video-list-item.mjs";import{useMemo as p,useState as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import _ from"next/link";import{useRouter as v}from"next/navigation";const y=[];function b({title:b=`列表页`,tags:x=y}){let S=v(),[C,w]=m(`hot`),T={page_size:10,tags:x.length?x:void 0},{data:E,fetchNextPage:D,hasNextPage:O}=c({key:C===`hot`?i(T):r(T),queryFn:async e=>{let r={page_size:10,cursor:e||void 0,tags:x.length?x:void 0},i=(C===`hot`?await n(r):await t(r)).data;return{list:i?.videos??[],nextCursor:d(i)}},getNextPageParam:u,initialPageParam:``}),k=p(()=>E?.pages?.flatMap(e=>e.list)??[],[E?.pages]);function A(){S.back()}let j=p(()=>k.map(e=>{let t=e.id??e.mid??``;return h(_,{href:`/video/${t}/${e.name??``}`,children:h(f,{item:e})},t)}),[k]);return g(a,{as:`main`,className:`h-[100dvh] max-h-[100dvh] flex flex-col bg-bg1 overflow-hidden [overscroll-behavior-y:none]`,children:[g(a,{className:`shrink-0 bg-bg1`,children:[g(a,{as:`header`,className:`flex items-center gap-2 px-4 py-3`,children:[h(l,{className:`w-[16px] h-[16px]`,onClick:A}),h(s,{as:`h1`,className:`flex-1 min-w-0 flex justify-center overflow-hidden text-[18px] pr-[16px]`,children:h(s,{className:`block max-w-full truncate`,children:b})})]}),g(a,{as:`nav`,className:`px-4 pb-2 flex gap-2`,children:[h(e,{type:`button`,onClick:()=>w(`hot`),className:`h-[30px] px-[12px] text-[14px] rounded-[50px] ${C===`hot`?`bg-theme5 text-text1`:`bg-transparent text-text2`}`,children:`最热`}),h(e,{type:`button`,onClick:()=>w(`latest`),className:`h-[30px] px-[12px] text-[14px] rounded-[50px] ${C===`latest`?`bg-theme5 text-text1`:`bg-transparent text-text2`}`,children:`最新`})]})]}),h(a,{id:`video-list-scroll-container`,className:`flex-1 min-h-0 overflow-y-auto [overscroll-behavior-y:none]`,children:h(o,{loadMore:()=>D().then(()=>void 0),hasMore:O,rootId:`video-list-scroll-container`,threshold:300,className:``,children:h(a,{className:`grid grid-cols-2 gap-3 p-4`,children:j})})})]})}export{b as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{useUserStore as e}from"../store/modules/user-store.mjs";import{gCommunityGetUserCollections as t,pCommunityAddContentToCollection as n,pInteractionBatchQueryContentInteractions as r,pInteractionCancelDislike as i,pInteractionCancelLike as a,pInteractionDislike as o,pInteractionLike as s,pInteractionRemoveCollect as c}from"../service/generated/client.mjs";import{useLoginModalStore as l}from"../store/modules/login-modal-store.mjs";import u from"../components/common/collection-popup/index.mjs";import d from"../components/common/share-popup/share-popup.mjs";import{useInteractionAnimation as f}from"./use-interaction-animation.mjs";import{
|
|
2
|
+
import{useUserStore as e}from"../store/modules/user-store.mjs";import{gCommunityGetUserCollections as t,pCommunityAddContentToCollection as n,pInteractionBatchQueryContentInteractions as r,pInteractionCancelDislike as i,pInteractionCancelLike as a,pInteractionDislike as o,pInteractionLike as s,pInteractionRemoveCollect as c}from"../service/generated/client.mjs";import{useLoginModalStore as l}from"../store/modules/login-modal-store.mjs";import u from"../components/common/collection-popup/index.mjs";import d from"../components/common/share-popup/share-popup.mjs";import{useInteractionAnimation as f}from"./use-interaction-animation.mjs";import{useCallback as p,useEffect as m,useMemo as h,useState as g}from"react";import{toast as _}from"sonner";import{usePathname as v,useRouter as y,useSearchParams as b}from"next/navigation";function x(){let t=e.getState().userId||e.getState().userInfo?.userId;if(!t){let{open:e}=l.getState();return e(),null}return t}async function S(t,n){try{let i=e.getState().userId||e.getState().userInfo?.userId;if(!i)return console.warn(`用户未登录,无法查询交互状态`),null;let a=await r({app_id:0,user_id:i,content_ids:t,content_type:n});return a.code===0?a.data:(console.error(`查询交互状态失败:`,a.message),null)}catch(e){return console.error(`查询交互状态异常:`,e),null}}async function C(e,t){try{let n=x();if(!n)return{success:!1,message:`请先登录`};let r=await s({app_id:0,user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`点赞失败`}}catch(e){return console.error(`点赞失败:`,e),{success:!1,message:`点赞失败`}}}async function w(e,t){try{let n=x();if(!n)return{success:!1,message:`请先登录`};let r=await a({app_id:0,user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`取消点赞失败`}}catch(e){return console.error(`取消点赞失败:`,e),{success:!1,message:`取消点赞失败`}}}async function T(e,t){try{let n=x();if(!n)return{success:!1,message:`请先登录`};let r=await o({app_id:0,user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`点踩失败`}}catch(e){return console.error(`点踩异常:`,e),{success:!1,message:`点踩异常`}}}async function E(e,t){try{let n=x();if(!n)return{success:!1,message:`请先登录`};let r=await i({app_id:0,user_id:n,id:e,content_type:t});return r.code===0?{success:!0,data:r.data}:{success:!1,message:r.message||`取消点踩失败`}}catch(e){return console.error(`取消点踩异常:`,e),{success:!1,message:`取消点踩异常`}}}function D({id:r,isLike:i,isDislike:a,isCollect:o,likeCnt:s,dislikeCnt:x,contentType:S,animationClasses:D,copyUrl:O,prefetchDefaultCollection:k=!1}){let{isLogin:A,userInfo:j,userId:M}=e(),N=y(),P=v(),F=b()?.toString()||``,[I,L]=g(void 0),R=D?.like||`like-shake-animation`,z=D?.dislike||`dislike-shake-animation`,B=h(()=>String(M||j?.userId||``),[M,j?.userId]);m(()=>{L(void 0)},[B]);let[V,H]=g(!1),[U,W]=g(!1);m(()=>{d.clear(),u.clear()},[P,F]),m(()=>()=>{d.clear(),u.clear()},[]);let G=p(async()=>{if(!A||!B)return null;try{let e=await t({page:1,page_size:40});if(e.code!==0)return L(null),null;let n=(e.data?.data?.collections??[]).find(e=>e?.is_default),r=(typeof n?.title==`string`?n.title.trim():``)||null;return L(r),r}catch(e){return console.error(`获取默认收藏夹失败:`,e),L(null),null}},[A,B]);m(()=>{!A||!B||k&&I===void 0&&G()},[I,G,A,k,B]);let K=p(()=>{if(!A){let{open:e}=l.getState();return e(),!1}return!0},[A]),q=f(),J=f(),Y=p(async e=>{try{return e?await C(r,S):await w(r,S)}catch(e){return console.error(`点赞操作失败`,e),{success:!1,message:`点赞操作失败`}}},[r,S]),X=p(async()=>{if(!(!K()||V)){H(!0);try{let e=!i;e&&q.trigger(R);let t={isLike:e,likeCnt:Math.max(0,s+(e?1:-1))};e&&a&&(t.isDislike=!1,t.dislikeCnt=Math.max(0,x-1));let n=await Y(e);if(!n.success){_.error(n.message||`点赞失败`);return}return t}finally{H(!1)}}},[q,i,a,s,x,Y,K,V,R]),Z=p(async e=>{try{return e?await T(r,S):await E(r,S)}catch(e){return console.error(`点踩操作失败`,e),{success:!1,message:`点踩操作失败`}}},[r,S]),ee=p(async()=>{if(!(!K()||U)){W(!0);try{let e=!a;e&&J.trigger(z);let t={isDislike:e,dislikeCnt:Math.max(0,x+(e?1:-1))};e&&i&&(t.isLike=!1,t.likeCnt=Math.max(0,s-1));let n=await Z(e);if(!n.success){_.error(n.message||`操作失败`);return}return t}finally{W(!1)}}},[J,i,a,s,x,Z,K,U,z]),Q=p(async({currentId:e,isCancel:t,collectionIds:r})=>{try{if(t){let t=String(M||j?.userId||``);if(!t)return{success:!1};let n=await c({app_id:0,user_id:t,content_id:e,content_type:S});return n.code===0?{success:!0}:{success:!1,message:n.message}}if(!String(M||j?.userId||``))return{success:!1};let i=r?.[0],a=await n({...i?{collection_id:i}:{},content_id:e,source_type:S});return a.code===0?{success:!0}:{success:!1,message:a.message}}catch(e){return console.error(`取消收藏操作失败`,e),{success:!1,message:e?.message}}},[M,j?.userId,S]),$=p(({currentCollect:e,onUpdate:t})=>K()?(e?(async()=>{let e=await Q({currentId:r,isCancel:!0});if(!e?.success){_.error(e?.message||`操作失败`);return}t({isCollect:!1})})():(d.clear(),u.show({toCreateCollection:()=>{N.push(`/collection/create?information_id=${r}`)},onCollect:e=>{(async()=>{let n=await Q({currentId:r,isCancel:!1,collectionIds:[e]});if(!n?.success){_.error(n?.message||`操作失败`);return}t({isCollect:!0})})()}})),!0):!1,[r,N,K,Q]),te=p(async({currentCollect:e,onUpdate:t})=>{if(!K())return;if(e){let e=await Q({currentId:r,isCancel:!0});return e?.success?(t({isCollect:!1}),{success:!0,isCollect:!1}):{success:!1,message:e?.message}}d.clear(),u.clear();let n=await Q({currentId:r,isCancel:!1});if(!n?.success)return{success:!1,message:n?.message};let i=I===void 0?await G():I;return t({isCollect:!0}),{success:!0,isCollect:!0,collectionTitle:i||void 0}},[I,G,Q,r,K]);return{likeAnimation:q,dislikeAnimation:J,handleLikeOperate:X,handleDislikeOperate:ee,handleShareOperate:p((e,t)=>{let n=typeof t==`string`?{otherId:t}:t,i=n?.otherId||r,a=n?.shareUrl;d.show({copyUrl:O,data:{id:r,isCollect:o,parentId:i},...a?{shareUrl:a}:{},onCollect:t=>{$({currentCollect:t,onUpdate:e})}})},[r,o,$,O]),handleToCollectionOperate:$,handleDefaultCollectionOperate:te}}export{S as batchQueryContentInteractions,D as useContentOperate};
|
package/dist/i18n.d.mts
CHANGED
package/dist/i18n.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import e from"./i18n/locales/en.mjs";import t from"./i18n/locales/zh-CN.mjs";import{hasLocale as n}from"next-intl";import{
|
|
2
|
+
import e from"./i18n/locales/en.mjs";import t from"./i18n/locales/zh-CN.mjs";import{hasLocale as n}from"next-intl";import{defineRouting as r}from"next-intl/routing";import{getRequestConfig as i}from"next-intl/server";const a=`zh-CN`,o=`Asia/Shanghai`,s=`funhub-locale`,c=`NEXT_LOCALE`,l=[{code:`zh-CN`,name:`简体中文`},{code:`en`,name:`English`}];function u(e){if(!e)return null;let t=e.trim().replace(/_/g,`-`).toLowerCase();if(!t)return null;let n=l.find(e=>e.code.toLowerCase()===t);if(n)return n.code;let r=t.split(`-`)[0];return r&&l.find(e=>e.code.toLowerCase().split(`-`)[0]===r)?.code||null}function d(...e){for(let t of e){let e=u(t);if(e)return e}return a}function f(e){if(!e)return a;let t=e.split(`,`).map(e=>{let[t,...n]=e.trim().split(`;`),r=1;for(let e of n){let[t,n]=e.split(`=`).map(e=>e.trim());if(t!==`q`)continue;let i=Number.parseFloat(n||``);Number.isNaN(i)||(r=i)}return{locale:t,weight:r}}).sort((e,t)=>t.weight-e.weight);for(let e of t){let t=u(e.locale);if(t)return t}return a}function p(e,t){let n=[];return Array.isArray(e)&&n.push(...e),n.push(t),d(...n)}function m(e){let t=d(e);if(typeof document<`u`&&(document.cookie=`${c}=${t}; path=/; max-age=31536000; SameSite=Lax`),typeof window<`u`)try{window.localStorage.setItem(s,t)}catch{}return t}function h(){if(typeof window>`u`)return null;try{return u(window.localStorage.getItem(s))}catch{return null}}function g(e){return l.some(t=>t.code===e)}function _(n){let r={"zh-CN":t,en:e};return r[d(n)]||r[a]||{}}const v=r({locales:l.map(e=>e.code),defaultLocale:a,localePrefix:`never`}),y=i(async({requestLocale:e})=>{let t=await e,r=n(v.locales,t)?t:d(t,v.defaultLocale);return{locale:r,messages:_(r)}});var b={defaultLocale:a,locales:l,isValidLocale:g,getMessages:_,routing:v,nextIntlRequestConfig:y};export{b as default,a as defaultLocale,o as defaultTimeZone,h as getCachedLocalePreference,_ as getMessages,g as isValidLocale,c as localeCookieKey,s as localeStorageKey,l as locales,y as nextIntlRequestConfig,u as normalizeLocale,m as persistLocalePreference,d as resolveLocaleByPriority,f as resolveLocaleFromAcceptLanguage,p as resolveLocaleFromNavigator,v as routing};
|