@funhub/platform 0.2.9 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/icons/search/video.mjs +2 -0
- package/dist/biz.d.mts +5 -5
- package/dist/biz.mjs +1 -1
- package/dist/components/biz/business/advertisement/ad-match.d.mts +8 -4
- package/dist/components/biz/business/advertisement/ad-match.mjs +1 -1
- package/dist/components/biz/business/advertisement/ad-provider.mjs +1 -1
- package/dist/components/biz/business/advertisement/ad-query.d.mts +1 -2
- package/dist/components/biz/business/advertisement/ad-query.mjs +1 -1
- package/dist/components/biz/business/advertisement/ad-runtime-provider.d.mts +2 -2
- package/dist/components/biz/business/advertisement/ad-runtime-provider.mjs +1 -1
- package/dist/components/biz/business/advertisement/banner-ad/client.mjs +1 -1
- package/dist/components/biz/business/advertisement/banner-ad/material.d.mts +2 -3
- package/dist/components/biz/business/advertisement/banner-ad/material.mjs +1 -1
- package/dist/components/biz/business/advertisement/banner-ad/schema.d.mts +9 -6
- package/dist/components/biz/business/advertisement/banner-ad/schema.mjs +1 -1
- package/dist/components/biz/business/advertisement/feed-ad/index.d.mts +1 -31
- package/dist/components/biz/business/advertisement/feed-ad/index.mjs +1 -1
- package/dist/components/biz/business/advertisement/floating-ad/client.d.mts +4 -4
- package/dist/components/biz/business/advertisement/floating-ad/client.mjs +1 -1
- package/dist/components/biz/business/advertisement/floating-ad/index.d.mts +1 -1
- package/dist/components/biz/business/advertisement/floating-ad/material.d.mts +5 -0
- package/dist/components/biz/business/advertisement/floating-ad/schema.d.mts +21 -10
- package/dist/components/biz/business/advertisement/floating-ad/schema.mjs +1 -1
- package/dist/components/biz/business/advertisement/icon-ad/client.mjs +1 -1
- package/dist/components/biz/business/advertisement/icon-ad/material.d.mts +1 -2
- package/dist/components/biz/business/advertisement/icon-ad/material.mjs +1 -1
- package/dist/components/biz/business/advertisement/icon-ad/schema.d.mts +7 -2
- package/dist/components/biz/business/advertisement/icon-ad/schema.mjs +1 -1
- package/dist/components/biz/business/advertisement/index.d.mts +4 -4
- package/dist/components/biz/business/advertisement/popup-ad/client.mjs +3 -3
- package/dist/components/biz/business/advertisement/popup-ad/index.d.mts +1 -1
- package/dist/components/biz/business/advertisement/popup-ad/material.d.mts +2 -2
- package/dist/components/biz/business/advertisement/popup-ad/schema.d.mts +14 -15
- package/dist/components/biz/business/advertisement/popup-ad/schema.mjs +1 -1
- package/dist/components/biz/business/advertisement/text-ad/client.mjs +1 -1
- package/dist/components/biz/business/advertisement/text-ad/material.d.mts +1 -2
- package/dist/components/biz/business/advertisement/text-ad/material.mjs +1 -1
- package/dist/components/biz/business/advertisement/text-ad/schema.d.mts +5 -3
- package/dist/components/biz/business/advertisement/text-ad/schema.mjs +1 -1
- package/dist/components/biz/business/banner-carousel/client.mjs +1 -1
- package/dist/components/biz/business/detail/shared/detail-operate.mjs +1 -1
- package/dist/components/biz/business/detail/shared/registry.d.mts +1 -0
- package/dist/components/biz/business/detail/shared/runtime-context-provider.mjs +1 -1
- package/dist/components/biz/business/detail/shared/video-hero.mjs +1 -1
- package/dist/components/biz/business/detail/video-detail-info/client.mjs +1 -1
- package/dist/components/biz/business/detail/video-detail-recommend/client.mjs +1 -1
- package/dist/components/biz/business/detail/video-detail-recommend/material.d.mts +1 -0
- package/dist/components/biz/business/detail/video-detail-recommend/schema.d.mts +1 -0
- package/dist/components/biz/business/detail/video-detail-recommend/schema.mjs +1 -1
- package/dist/components/biz/business/detail/video-detail-recommend/shared.mjs +1 -1
- package/dist/components/biz/business/detail/video-detail-recommend/utils.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.mjs +1 -1
- package/dist/components/biz/business/header-search/shared/logo.mjs +1 -1
- package/dist/components/biz/business/home-recommend/home-recommend-grid/client.mjs +1 -1
- package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.d.mts +4 -24
- package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.mjs +1 -1
- package/dist/components/biz/business/home-recommend/home-recommend-grid/material.d.mts +2 -22
- package/dist/components/biz/business/home-recommend/home-recommend-grid/server.mjs +1 -1
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/client.mjs +1 -1
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.d.mts +4 -24
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.mjs +1 -1
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/material.d.mts +2 -22
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/server.mjs +1 -1
- package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
- package/dist/components/biz/business/home-recommend/shared/home-recommend-default-config.mjs +1 -1
- package/dist/components/biz/business/home-recommend/shared/home-recommend-play-count.mjs +2 -0
- package/dist/components/biz/business/home-recommend/shared/home-recommend-preview.mjs +1 -1
- package/dist/components/biz/business/home-recommend/shared/home-recommend-runtime-props.mjs +1 -1
- package/dist/components/biz/business/home-recommend/shared/home-recommend-server-data.mjs +1 -1
- package/dist/components/biz/business/home-recommend/shared/home-recommend-smart-tag.mjs +2 -0
- package/dist/components/biz/business/hot-recommend/client.mjs +1 -1
- package/dist/components/biz/business/hot-recommend/material.d.mts +0 -1
- package/dist/components/biz/business/hot-recommend/schema.d.mts +0 -1
- package/dist/components/biz/business/hot-recommend/schema.mjs +1 -1
- package/dist/components/biz/business/image-text-recommend/client.d.mts +1 -1
- package/dist/components/biz/business/image-text-recommend/client.mjs +1 -1
- package/dist/components/biz/business/image-text-recommend/material.d.mts +7 -7
- package/dist/components/biz/business/image-text-recommend/schema.d.mts +25 -30
- package/dist/components/biz/business/image-text-recommend/schema.mjs +1 -1
- package/dist/components/biz/business/image-text-recommend/server.mjs +1 -1
- package/dist/components/biz/business/image-text-recommend/shared/query.mjs +1 -1
- package/dist/components/biz/business/index.d.mts +4 -4
- package/dist/components/biz/business/large-feature-grid/schema.mjs +1 -1
- package/dist/components/biz/business/marquee/client.mjs +1 -1
- package/dist/components/biz/business/marquee/marquee.module.mjs +24 -0
- package/dist/components/biz/business/marquee/material.d.mts +6 -5
- package/dist/components/biz/business/marquee/schema.d.mts +6 -5
- package/dist/components/biz/business/marquee/schema.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/video-waterfall.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/utils.mjs +1 -1
- package/dist/components/biz/business/tab-bar/client.d.mts +0 -2
- 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/biz/business/text-recommend/material.d.mts +0 -1
- package/dist/components/biz/business/text-recommend/schema.d.mts +0 -1
- package/dist/components/biz/business/text-recommend/schema.mjs +1 -1
- package/dist/components/common/collection-popup/create-collection-sheet.d.mts +3 -0
- package/dist/components/common/collection-popup/create-collection-sheet.mjs +1 -1
- package/dist/components/common/collection-popup/index.mjs +1 -1
- package/dist/components/common/list/waterfall-recommend/recommend-badge-style.mjs +2 -0
- package/dist/components/common/list/waterfall-recommend/waterfall-recommend-display.mjs +2 -0
- package/dist/components/common/list/waterfall-recommend/waterfall-recommend.d.mts +5 -7
- package/dist/components/common/list/waterfall-recommend/waterfall-recommend.mjs +1 -1
- package/dist/components/common/series-episodes/index.d.mts +1 -0
- package/dist/components/common/series-episodes/index.mjs +1 -1
- package/dist/components/common/video-player/index.d.mts +1 -2
- 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/fullscreen-feed/page.mjs +1 -1
- package/dist/components/pages/search/search-result/shared.mjs +1 -1
- package/dist/components/pages/search-result/search-video-info.mjs +1 -1
- package/dist/components/pages/settings/_components/reset-password-drawer.mjs +1 -1
- package/dist/components/ui/badge.d.mts +1 -1
- package/dist/components/ui/button.d.mts +2 -2
- package/dist/components/ui/empty.d.mts +1 -1
- package/dist/components/ui/item.d.mts +1 -1
- package/dist/hooks.d.mts +1 -2
- package/dist/hooks.mjs +1 -1
- package/dist/i18n/locales/en.mjs +1 -1
- package/dist/i18n/locales/zh-CN.mjs +1 -1
- package/dist/materials.d.mts +1 -2
- package/dist/materials.mjs +1 -1
- package/dist/service/advertisement.d.mts +1 -1
- package/dist/service/advertisement.mjs +1 -1
- package/dist/service/generated/client.d.mts +2 -10
- package/dist/service/generated/client.mjs +1 -1
- package/dist/service/generated/tanstack.d.mts +2 -12
- package/dist/service/generated/tanstack.mjs +1 -1
- package/dist/service.d.mts +3 -3
- package/dist/service.mjs +1 -1
- package/dist/store/modules/user-store.d.mts +1 -1
- package/dist/store/modules/user-store.mjs +1 -1
- package/dist/store.d.mts +1 -3
- package/dist/store.mjs +1 -1
- package/dist/types.d.mts +1 -171
- package/dist/utils/device-id.d.mts +2 -2
- package/dist/utils/device-id.mjs +1 -1
- package/dist/utils/http.mjs +1 -1
- package/dist/utils/password-validator.mjs +1 -1
- package/dist/utils/schema/inspector.d.mts +2 -2
- package/dist/utils.d.mts +1 -3
- package/dist/utils.mjs +1 -1
- package/package.json +1 -2
- package/dist/components/biz/business/home-recommend/shared/home-recommend-smart-layout.mjs +0 -2
- package/dist/components/biz/business/ranking-recommend/client.d.mts +0 -17
- package/dist/components/biz/business/ranking-recommend/client.mjs +0 -70
- package/dist/components/biz/business/ranking-recommend/material.d.mts +0 -35
- package/dist/components/biz/business/ranking-recommend/material.mjs +0 -2
- package/dist/components/biz/business/ranking-recommend/schema.d.mts +0 -35
- package/dist/components/biz/business/ranking-recommend/schema.mjs +0 -2
- package/dist/components/biz/business/ranking-recommend/server.d.mts +0 -11
- package/dist/components/biz/business/ranking-recommend/server.mjs +0 -2
- package/dist/components/biz/business/ranking-recommend/shared/query.mjs +0 -2
- package/dist/components/biz/business/ranking-recommend/shared.d.mts +0 -15
- package/dist/components/biz/business/ranking-recommend/shared.mjs +0 -2
- package/dist/components/common/video-player/video-blind-ad-overlay.mjs +0 -2
- package/dist/components/common/video-player/video-player-ref-context.mjs +0 -2
- package/dist/hooks/use-is-client.d.mts +0 -10
- package/dist/hooks/use-is-client.mjs +0 -2
- package/dist/store/modules/blind-spot-ad-store.d.mts +0 -116
- package/dist/store/modules/blind-spot-ad-store.mjs +0 -2
- package/dist/store/modules/video-player-ref-store.d.mts +0 -21
- package/dist/store/modules/video-player-ref-store.mjs +0 -2
- package/dist/utils/browser-fingerprint.d.mts +0 -13
- package/dist/utils/browser-fingerprint.mjs +0 -2
- package/dist/utils/request-user-id.d.mts +0 -12
- package/dist/utils/request-user-id.mjs +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineComponentPropsSchema as e}from"../../../../utils/schema/schema.mjs";import{z as t}from"zod";const n=e(e=>({title:e.string(`文字推荐标题`,{label:`标题名称`,description:`支持输入,中/英/数/符,6个字符`}),displayCount:e.number(2,{label:`展示数`}),
|
|
2
|
+
import{defineComponentPropsSchema as e}from"../../../../utils/schema/schema.mjs";import{z as t}from"zod";const n=e(e=>({title:e.string(`文字推荐标题`,{label:`标题名称`,description:`支持输入,中/英/数/符,6个字符`}),displayCount:e.number(2,{label:`展示数`}),items:e.array(t.object({label:e.string(`推荐搜索1`,{label:`热词`})}),{label:`推荐位模块`,defaultValue:[{label:`推荐搜索2`},{label:`推荐搜索3`}]})}));export{n as textRecommendInspectorPropsSchema};
|
|
@@ -11,6 +11,8 @@ interface CreateCollectionSheetProps {
|
|
|
11
11
|
visible: boolean;
|
|
12
12
|
/** 弹窗模式。 */
|
|
13
13
|
mode?: 'create' | 'edit';
|
|
14
|
+
/** 是否展示描述输入框。 */
|
|
15
|
+
showDescription?: boolean;
|
|
14
16
|
/** 编辑模式下的收藏夹 ID。 */
|
|
15
17
|
collectionId?: string;
|
|
16
18
|
/** 编辑模式的初始值。 */
|
|
@@ -30,6 +32,7 @@ interface CreateCollectionSheetProps {
|
|
|
30
32
|
declare function CreateCollectionSheet({
|
|
31
33
|
visible,
|
|
32
34
|
mode,
|
|
35
|
+
showDescription,
|
|
33
36
|
collectionId,
|
|
34
37
|
initialValues,
|
|
35
38
|
onClose,
|
|
@@ -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{gCommunityGetCollectionInfo as n,pCommunityCreateCollection as r,pCommunityUpdateCollection as i}from"../../../service/generated/client.mjs";import{Box as a}from"../../ui/box.mjs";import{InputGroup as o,InputGroupAddon as s,InputGroupTextarea as c}from"../../ui/input-group.mjs";import{useDeleteRequest as l,useRequest as u}from"../../../hooks/query/use-query.mjs";import d from"../../ui/popup.mjs";import{useCallback as f,useEffect as p,useMemo as m,useRef as h,useState as g}from"react";import{XIcon as _}from"lucide-react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{toast as b}from"sonner";import{useTranslations as x}from"next-intl";
|
|
2
|
+
"use client";import{cn as e}from"../../../utils/cn.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{Box as a}from"../../ui/box.mjs";import{InputGroup as o,InputGroupAddon as s,InputGroupTextarea as c}from"../../ui/input-group.mjs";import{useDeleteRequest as l,useRequest as u}from"../../../hooks/query/use-query.mjs";import d from"../../ui/popup.mjs";import{useCallback as f,useEffect as p,useMemo as m,useRef as h,useState as g}from"react";import{XIcon as _}from"lucide-react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{toast as b}from"sonner";import{useTranslations as x}from"next-intl";function S(e){return{title:(e?.title??``).slice(0,50),description:(e?.description??``).slice(0,100)}}function C({visible:C,mode:w=`create`,showDescription:T=!0,collectionId:E,initialValues:D,onClose:O,onCreated:k,onUpdated:A,onSuccess:j}){let M=x(`components.pages.collectionCreate`),N=x(`components.common.collectionPopup`),{userId:P}=t(),F=l(),I=w===`edit`,L=D?.title!==void 0||D?.description!==void 0,R=C&&I&&!!E&&!L,z=typeof document>`u`?void 0:document.body,B=h(!1),[V,H]=g(!1),[U,W]=g(()=>S()),G=u([`collection-detail`,E,`sheet`],()=>n({collection_id:E}),{enabled:R}),K=G.data?.data?.data?.collection;p(()=>{C||(B.current=!1,H(!1))},[C]),p(()=>{if(!(!C||B.current)){if(!I){W(S()),B.current=!0;return}if(L){W(S(D)),B.current=!0;return}K&&(W(S({title:K.title,description:K.description})),B.current=!0)}},[K,L,D,I,C]);let q=f((e,t)=>{W(n=>({...n,[e]:t}))},[]),J=m(()=>R&&!B.current&&G.isLoading,[G.isLoading,R]),Y=M(I?`form.editTitle`:`form.createTitle`),X=I?M(`form.save`):N(`createModalAction`),Z=M(I?`form.saving`:`form.creating`);function Q(e){e||O?.()}function $(e){P&&(F([`user-profile`,`mine`]),F([`user-profile`,`mine`,P]),F([`user-profile`,`mine`,P,`user-collection-created`,P])),e&&F([`collection-detail`,e])}async function ee(){if(V)return;let e=U.title.trim(),t=U.description.trim();if(!e){b.error(M(`form.titleRequired`));return}if(I&&!E){b.error(M(`form.collectionNotFound`));return}let n=b.loading(Z);try{H(!0);let a=I?await i({collection_id:E,title:e,description:t,cover_image:``}):await r({title:e,description:t,cover_image:``});if(a.code!==0){b.error(a.message||M(I?`form.saveFailed`:`form.createFailed`),{id:n});return}$(E),b.success(I?N(`updateSuccess`):M(`form.createSuccess`),{id:n}),j?.(),I?A?.():k?.(),O?.()}catch(e){console.error(I?`编辑收藏夹失败`:`创建收藏夹失败`,e),b.error(M(I?`form.saveFailed`:`form.createFailed`),{id:n})}finally{H(!1)}}return v(d,{open:C,onOpenChange:Q,showCloseButton:!1,className:`!z-[1210] max-h-[85vh] rounded-t-[24px] bg-[var(--color-surface-panel-dark)] p-0 text-[var(--color-text-primary)] backdrop-blur-[50px]`,overlayClassName:`!z-[1200] overlay-create-collection`,overlayForceRender:!0,portalContainer:z,children:y(`div`,{className:`flex flex-col pb-[34px]`,children:[y(`div`,{className:`flex h-14 items-center justify-between px-4`,children:[v(`span`,{className:`text-lg font-medium text-[var(--color-text-primary)]`,children:Y}),v(`button`,{type:`button`,className:`flex h-6 w-6 items-center justify-center rounded text-[var(--color-text-primary)] opacity-60 hover:opacity-100`,onClick:()=>O?.(),"aria-label":`关闭`,children:v(_,{size:24})})]}),y(`div`,{className:`flex flex-col gap-4 px-4`,children:[y(a,{className:`flex flex-col gap-2`,children:[y(`label`,{className:`text-sm text-[var(--color-text-dimmed)]`,children:[v(`span`,{className:`text-[var(--color-border-required)]`,children:`* `}),M(`form.label`)]}),y(o,{className:e(`min-h-[160px] rounded-2xl border border-transparent bg-[var(--color-surface-field-bg)] px-4 py-3`,`focus-within:!border-[var(--color-border-danger)] focus-within:!ring-0`,J?`opacity-60`:``),children:[v(c,{maxLength:50,className:`min-h-[120px] resize-none bg-transparent text-sm text-[var(--color-text-primary)] placeholder:text-[var(--color-text-quaternary)] focus-visible:ring-0 focus-visible:ring-offset-0`,placeholder:M(`form.titlePlaceholder`),value:U.title,onChange:e=>q(`title`,e.target.value),disabled:V||J}),y(s,{align:`block-end`,className:`flex items-center justify-end gap-2 bg-transparent px-0`,children:[y(`span`,{className:`text-sm text-[var(--color-text-disabled)]`,children:[U.title.length,`/`,50]}),v(`button`,{type:`button`,className:`text-sm text-[var(--color-text-disabled)] hover:text-[var(--color-text-primary)] disabled:opacity-50`,onClick:()=>q(`title`,``),disabled:V||J,children:M(`form.clear`)})]})]})]}),T&&y(a,{className:`flex flex-col gap-2`,children:[v(`label`,{className:`text-sm text-[var(--color-text-dimmed)]`,children:M(`form.descriptionLabel`)}),y(o,{className:e(`min-h-[160px] rounded-2xl border border-transparent bg-[var(--color-surface-field-bg)] px-4 py-3 focus-within:ring-0`,`focus-within:!border-[var(--color-border-danger)]`,J?`opacity-60`:``),children:[v(c,{maxLength:100,className:`min-h-[120px] resize-none bg-transparent text-sm text-[var(--color-text-primary)] placeholder:text-[var(--color-text-quaternary)] focus-visible:ring-0 focus-visible:ring-offset-0`,placeholder:M(`form.descriptionPlaceholder`),value:U.description,onChange:e=>q(`description`,e.target.value),disabled:V||J}),y(s,{align:`block-end`,className:`flex items-center justify-end gap-2 bg-transparent px-0`,children:[y(`span`,{className:`text-sm text-[var(--color-text-disabled)]`,children:[U.description.length,`/`,100]}),v(`button`,{type:`button`,className:`text-sm text-[var(--color-text-disabled)] hover:text-[var(--color-text-primary)] disabled:opacity-50`,onClick:()=>q(`description`,``),disabled:V||J,children:M(`form.clear`)})]})]})]}),v(`button`,{type:`button`,className:`h-12 w-full max-w-[358px] self-center rounded-[var(--radius-pill)] text-base font-medium text-[var(--color-text-primary)] transition-opacity hover:opacity-90 disabled:pointer-events-none disabled:opacity-50`,style:{background:`var(--gradient-action-button)`},onClick:ee,disabled:V||J,children:V?Z:X})]})]})})}export{C as CreateCollectionSheet};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{createStore as e}from"../../../store/create-store.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetUserCollections as n}from"../../../service/generated/client.mjs";import{Image as r}from"../../ui/image.mjs";import{InfiniteScroll as i}from"../../ui/infinite-scroll.mjs";import a from"../../../assets/icons/close.mjs";import o from"../../../assets/icons/common/right_arrow.mjs";import s from"../../../assets/icons/detail/min-collection.mjs";import c from"../../../assets/icons/empty/img-empty-nodata.mjs";import l from"../../ui/popup.mjs";import{CreateCollectionSheet as u}from"./create-collection-sheet.mjs";import d from"../page-loading/index.mjs";import{useCallback as f,useEffect as p,useMemo as m,useState as h}from"react";import{Fragment as g,jsx as _,jsxs as v}from"react/jsx-runtime";import{toast as y}from"sonner";import{useTranslations as b}from"next-intl";const x=e(e=>({isOpen:!1,options:null,open:t=>e(e=>({...e,isOpen:!0,options:t})),close:()=>e(e=>({...e,isOpen:!1,options:null}))}),{name:`collection-popup-store`,persist:!1});function S(e){return{id:String(e?.collection_id||``),cover:e?.cover_image||``,title:e?.title||``,contentCount:Number(e?.content_count||0)}}function C(e){let x=b(`components.common.collectionPopup`),{visible:C,mode:w=`favorite`,onClose:T,toCreateCollection:E,onCollect:D}=e,{userInfo:O,userId:k}=t(),[A,j]=h(!0),[M,N]=h([]),[P,F]=h(!0),[I,L]=h(1),[R,z]=h(!1),B=m(()=>String(k||O?.userId||`0`),[k,O?.userId]),V=f(async e=>{if(!B||!e?.reset&&(!P||A&&M.length>0))return;let t=e?.nextPage??I;j(!0);try{let e=await n({page:t,page_size:10});if(e.code!==0){F(!1);return}let r=(e.data?.data?.collections??[]).map(S);N(e=>t===1?r:[...e,...r]),e.data?.data?.has_more===!1||r.length<10?F(!1):(F(!0),L(t+1))}catch(e){console.error(`获取合集列表失败:`,e),F(!1)}finally{j(!1)}},[M.length,P,A,I,10,B]);p(()=>{C&&V()},[V,C]);let[H,U]=h(!0);p(()=>{U(!A&&M.length===0)},[M.length,A]);function W(e){e||T?.()}function G(){if(w===`select`){z(!0);return}E?.()}function K(e){D?.(e),w===`favorite`&&y.message(x(`collectSuccess`))}function q(e){return function(){K(e)}}function J(){return V()}let Y=f(()=>{F(!0),L(1),N([]),V({nextPage:1,reset:!0})},[V]);return v(l,{open:C,onOpenChange:W,showCloseButton:!1,className:`z-[1000] h-[450px] rounded-t-[16px] bg-bg1 p-0 text-text1`,children:[v(`div`,{className:`bg-bg1 h-[450px] pb-[24px] flex flex-col`,children:[v(`div`,{className:`w-full px-[16px] relative`,children:[v(`div`,{className:`w-full h-[60px] flex items-center justify-center`,children:[_(`button`,{type:`button`,className:`cursor-pointer absolute w-[48px] h-[60px] left-0 top-0 flex items-center justify-center focus:outline-none`,onClick:T,children:_(a,{className:`w-[16px] h-[16px] text-text1`})}),_(`div`,{className:`text-[18px] text-text1 font-semibold`,children:x(w===`select`?`selectTitle`:`favoriteToCollectionTitle`)}),w===`select`&&_(`button`,{type:`button`,className:`absolute right-0 top-0 h-[60px] px-[16px] text-[14px] text-theme5 font-semibold`,onClick:G,children:x(`newCollection`)})]}),w===`favorite`&&v(`button`,{type:`button`,className:`cursor-pointer w-full h-[48px] rounded-[16px] px-[12px] border border-solid border-line1 flex items-center justify-between`,onClick:G,children:[v(`div`,{className:`flex items-center`,children:[_(s,{className:`w-[24px] h-[24px]`}),_(`span`,{className:`ml-[8px] text-text1 text-[14px] font-semibold leading-[18px]`,children:x(`createCollection`)})]}),_(o,{className:`text-text2 w-[12px] h-[12px]`})]})]}),_(`div`,{className:`w-full px-[16px] flex-1 h-[0] overflow-y-auto`,children:A?_(d,{}):H?v(`div`,{className:`flex flex-col items-center justify-center py-[48px] text-text2`,children:[_(c,{className:`w-[120px] h-[120px]`}),v(`span`,{className:`mt-[16px] text-[14px]`,children:[x(`noCollections`),`,`,x(`createCollectionHint`)]})]}):v(g,{children:[M.map((e,t)=>v(`button`,{type:`button`,className:`cursor-pointer w-full h-[92px] flex items-center text-left`,onClick:q(e.id),children:[_(`div`,{className:`w-[60px] h-[60px] bg-bg2 rounded-[8px] overflow-hidden relative`,children:e.cover&&_(r,{src:e.cover,fill:!0,objectFit:`cover`,alt:x(`coverAlt`)})}),v(`div`,{className:`ml-[12px] flex flex-col justify-center`,children:[_(`span`,{className:`max-w-[200px] text-text1 text-[18px] leading-[24px] font-semibold line-clamp-1`,children:e.title||``}),v(`span`,{className:`mt-[3px] text-text2 text-[14px]`,children:[e.contentCount||0,x(`postsCountSuffix`)]})]})]},e.id||`collection-${t}`)),M.length>0&&_(i,{loadMore:J,hasMore:P})]})})]}),_(u,{visible:R,onClose:()=>z(!1),onCreated:()=>{z(!1),Y()}})]})}function w(){let{isOpen:e,options:t,close:n}=x();return e?_(C,{visible:e,mode:t?.mode,onClose:()=>{n(),t?.onClose?.()},toCreateCollection:()=>{n(),t?.toCreateCollection?.()},onCollect:e=>{n(),t?.onCollect?.(e)}}):null}var T=class{static show(e){x.getState().open(e)}static clear(){x.getState().close()}};export{C as CollectionPopupComponent,w as CollectionPopupHost,T as default};
|
|
2
|
+
"use client";import{createStore as e}from"../../../store/create-store.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetUserCollections as n}from"../../../service/generated/client.mjs";import{Image as r}from"../../ui/image.mjs";import{InfiniteScroll as i}from"../../ui/infinite-scroll.mjs";import a from"../../../assets/icons/close.mjs";import o from"../../../assets/icons/common/right_arrow.mjs";import s from"../../../assets/icons/detail/min-collection.mjs";import c from"../../../assets/icons/empty/img-empty-nodata.mjs";import l from"../../ui/popup.mjs";import{CreateCollectionSheet as u}from"./create-collection-sheet.mjs";import d from"../page-loading/index.mjs";import{useCallback as f,useEffect as p,useMemo as m,useState as h}from"react";import{Fragment as g,jsx as _,jsxs as v}from"react/jsx-runtime";import{toast as y}from"sonner";import{useTranslations as b}from"next-intl";const x=e(e=>({isOpen:!1,options:null,open:t=>e(e=>({...e,isOpen:!0,options:t})),close:()=>e(e=>({...e,isOpen:!1,options:null}))}),{name:`collection-popup-store`,persist:!1});function S(e){return{id:String(e?.collection_id||``),cover:e?.cover_image||``,title:e?.title||``,contentCount:Number(e?.content_count||0)}}function C(e){let x=b(`components.common.collectionPopup`),{visible:C,mode:w=`favorite`,onClose:T,toCreateCollection:E,onCollect:D}=e,{userInfo:O,userId:k}=t(),[A,j]=h(!0),[M,N]=h([]),[P,F]=h(!0),[I,L]=h(1),[R,z]=h(!1),B=m(()=>String(k||O?.userId||`0`),[k,O?.userId]),V=f(async e=>{if(!B||!e?.reset&&(!P||A&&M.length>0))return;let t=e?.nextPage??I;j(!0);try{let e=await n({page:t,page_size:10});if(e.code!==0){F(!1);return}let r=(e.data?.data?.collections??[]).map(S);N(e=>t===1?r:[...e,...r]),e.data?.data?.has_more===!1||r.length<10?F(!1):(F(!0),L(t+1))}catch(e){console.error(`获取合集列表失败:`,e),F(!1)}finally{j(!1)}},[M.length,P,A,I,10,B]);p(()=>{C&&V()},[V,C]);let[H,U]=h(!0);p(()=>{U(!A&&M.length===0)},[M.length,A]);function W(e){e||T?.()}function G(){if(w===`select`){z(!0);return}E?.()}function K(e){D?.(e),w===`favorite`&&y.message(x(`collectSuccess`))}function q(e){return function(){K(e)}}function J(){return V()}let Y=f(()=>{F(!0),L(1),N([]),V({nextPage:1,reset:!0})},[V]);return v(l,{open:C,onOpenChange:W,showCloseButton:!1,className:`z-[1000] h-[450px] rounded-t-[16px] bg-bg1 p-0 text-text1`,children:[v(`div`,{className:`bg-bg1 h-[450px] pb-[24px] flex flex-col`,children:[v(`div`,{className:`w-full px-[16px] relative`,children:[v(`div`,{className:`w-full h-[60px] flex items-center justify-center`,children:[_(`button`,{type:`button`,className:`cursor-pointer absolute w-[48px] h-[60px] left-0 top-0 flex items-center justify-center focus:outline-none`,onClick:T,children:_(a,{className:`w-[16px] h-[16px] text-text1`})}),_(`div`,{className:`text-[18px] text-text1 font-semibold`,children:x(w===`select`?`selectTitle`:`favoriteToCollectionTitle`)}),w===`select`&&_(`button`,{type:`button`,className:`absolute right-0 top-0 h-[60px] px-[16px] text-[14px] text-theme5 font-semibold`,onClick:G,children:x(`newCollection`)})]}),w===`favorite`&&v(`button`,{type:`button`,className:`cursor-pointer w-full h-[48px] rounded-[16px] px-[12px] border border-solid border-line1 flex items-center justify-between`,onClick:G,children:[v(`div`,{className:`flex items-center`,children:[_(s,{className:`w-[24px] h-[24px]`}),_(`span`,{className:`ml-[8px] text-text1 text-[14px] font-semibold leading-[18px]`,children:x(`createCollection`)})]}),_(o,{className:`text-text2 w-[12px] h-[12px]`})]})]}),_(`div`,{className:`w-full px-[16px] flex-1 h-[0] overflow-y-auto`,children:A?_(d,{}):H?v(`div`,{className:`flex flex-col items-center justify-center py-[48px] text-text2`,children:[_(c,{className:`w-[120px] h-[120px]`}),v(`span`,{className:`mt-[16px] text-[14px]`,children:[x(`noCollections`),`,`,x(`createCollectionHint`)]})]}):v(g,{children:[M.map((e,t)=>v(`button`,{type:`button`,className:`cursor-pointer w-full h-[92px] flex items-center text-left`,onClick:q(e.id),children:[_(`div`,{className:`w-[60px] h-[60px] bg-bg2 rounded-[8px] overflow-hidden relative`,children:e.cover&&_(r,{src:e.cover,fill:!0,objectFit:`cover`,alt:x(`coverAlt`)})}),v(`div`,{className:`ml-[12px] flex flex-col justify-center`,children:[_(`span`,{className:`max-w-[200px] text-text1 text-[18px] leading-[24px] font-semibold line-clamp-1`,children:e.title||``}),v(`span`,{className:`mt-[3px] text-text2 text-[14px]`,children:[e.contentCount||0,x(`postsCountSuffix`)]})]})]},e.id||`collection-${t}`)),M.length>0&&_(i,{loadMore:J,hasMore:P})]})})]}),_(u,{visible:R,showDescription:!1,onClose:()=>z(!1),onCreated:()=>{z(!1),Y()}})]})}function w(){let{isOpen:e,options:t,close:n}=x();return e?_(C,{visible:e,mode:t?.mode,onClose:()=>{n(),t?.onClose?.()},toCreateCollection:()=>{n(),t?.toCreateCollection?.()},onCollect:e=>{n(),t?.onCollect?.(e)}}):null}var T=class{static show(e){x.getState().open(e)}static clear(){x.getState().close()}};export{C as CollectionPopupComponent,w as CollectionPopupHost,T as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
|
|
2
|
+
const e=`absolute left-[8px] top-[12px] z-10 flex min-w-0 items-center`,t=`h-[18px] w-auto max-w-[96px] rounded-[4px] object-contain`;function n(e){return typeof e==`string`?e.trim():``}export{t as RECOMMEND_BADGE_IMAGE_CLASS_NAME,e as RECOMMEND_TOP_LEFT_BADGE_WRAPPER_CLASS_NAME,n as normalizeRecommendBadgeUrl};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
|
|
2
|
+
const e=`173 / 216`,t=`173 / 142`;function n(e){let t=Number(e);return!Number.isFinite(t)||t<=0?``:Math.min(t,10).toFixed(1)}function r(e){return{title:e.title,topLeftBadgeImageUrl:e.badgeImageUrl,topRightScoreText:n(e.score),bottomLeftHeatText:e.heatText||``,bottomRightEpisodeText:e.episodeText||``}}export{t as WATERFALL_SHORT_CARD_ASPECT_RATIO,e as WATERFALL_TALL_CARD_ASPECT_RATIO,r as buildWaterfallRecommendLegacyDisplay};
|
|
@@ -20,19 +20,17 @@ interface WaterfallRecommendItem {
|
|
|
20
20
|
cardKind: WaterfallRecommendCardKind;
|
|
21
21
|
/** 封面地址。 */
|
|
22
22
|
coverUrl?: string;
|
|
23
|
-
/**
|
|
23
|
+
/** 图片下方标题。 */
|
|
24
24
|
title: string;
|
|
25
25
|
/** 左上角角标。 */
|
|
26
26
|
badgeImageUrl?: string;
|
|
27
|
-
/**
|
|
28
|
-
badgeText?: string;
|
|
29
|
-
/** 右上角集数文字(如"24集全")。 */
|
|
27
|
+
/** 图片右下角剧集/时长文案。 */
|
|
30
28
|
episodeText?: string;
|
|
31
|
-
/**
|
|
29
|
+
/** 旧布局遗留的辅助文案。 */
|
|
32
30
|
metaPrimaryText?: string;
|
|
33
|
-
/**
|
|
31
|
+
/** 图片左下角播放量文案。 */
|
|
34
32
|
heatText?: string;
|
|
35
|
-
/**
|
|
33
|
+
/** 图片右上角评分,0-10。 */
|
|
36
34
|
score?: number;
|
|
37
35
|
/**
|
|
38
36
|
* 选择模式下的业务 ID(如视频 id)。
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../ui/link.mjs";import{CollectionSelectIcon as
|
|
2
|
+
"use client";import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../ui/link.mjs";import i from"../../../../assets/icons/detail/video_flag.mjs";import{CollectionSelectIcon as a,CollectionSelectedIcon as o}from"../collection-list/collection-select-icon.mjs";import{RECOMMEND_BADGE_IMAGE_CLASS_NAME as s,RECOMMEND_TOP_LEFT_BADGE_WRAPPER_CLASS_NAME as c,normalizeRecommendBadgeUrl as l}from"./recommend-badge-style.mjs";import{WATERFALL_SHORT_CARD_ASPECT_RATIO as u,WATERFALL_TALL_CARD_ASPECT_RATIO as d,buildWaterfallRecommendLegacyDisplay as f}from"./waterfall-recommend-display.mjs";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";const g={backgroundImage:`var(--gradient-card-mask-strong)`};function _({title:e,moreHref:i,onMoreClick:a,moreIcon:o,columns:s,sectionClassName:c=`w-full`,headerClassName:l=`mb-[16px] flex items-center justify-between px-[16px]`,titleClassName:u=`flex-1 min-w-0 text-[18px] leading-[24px] font-medium line-clamp-1 text-text2`,moreLinkClassName:d=`ml-[8px] flex size-[24px] shrink-0 items-center justify-center opacity-50`,containerClassName:f=`relative flex w-full gap-[15px] px-[16px]`,overlay:p,footer:g,getItemRef:_,selectionMode:y=!1,selectedIds:b,onToggleSelection:x}){return h(t,{className:c,children:[h(t,{className:l,children:[m(n,{className:u,children:e}),o&&i&&m(r,{href:i,"aria-label":`更多`,className:d,children:o}),o&&!i&&a&&m(`button`,{type:`button`,"aria-label":`更多`,className:d,onClick:a,children:o})]}),h(t,{className:f,children:[m(t,{className:`flex-1 min-w-0 flex flex-col`,children:s.left.map((e,t)=>m(`div`,{ref:_?.({item:e,column:`left`,columnIndex:t}),children:m(v,{item:e,selectionMode:y,selectedIds:b,onToggleSelection:x})},e.key))}),m(t,{className:`flex-1 min-w-0 flex flex-col`,children:s.right.map((e,t)=>m(`div`,{ref:_?.({item:e,column:`right`,columnIndex:t}),children:m(v,{item:e,selectionMode:y,selectedIds:b,onToggleSelection:x})},e.key))}),p]}),g]})}function v({item:_,selectionMode:v=!1,selectedIds:y,onToggleSelection:b}){let x=_.cardKind===`short`?u:d,S=_.selectionId??``,C=!!(S&&y?.has(S)),w=f(_),T=l(w.topLeftBadgeImageUrl);function E(){!v||!S||b?.(S)}let D=h(p,{children:[h(t,{className:`relative w-full overflow-hidden rounded-[8px] bg-[#18111f]`,style:{aspectRatio:x},children:[_.coverUrl&&m(e,{src:_.coverUrl,alt:_.title||`推荐封面`,fill:!0,objectFit:`cover`,className:`object-cover`}),m(t,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:g,"aria-hidden":!0}),v&&m(t,{className:`pointer-events-none absolute left-[8px] top-[8px] z-20`,children:m(C?o:a,{})}),!v&&h(p,{children:[T&&m(t,{className:c,children:m(e,{src:T,alt:`角标`,width:96,height:18,className:s})}),w.topRightScoreText&&m(n,{as:`span`,className:`absolute right-[8px] top-[8px] z-10 shrink-0 text-[14px] leading-[22px] font-semibold text-[#FFC24B]`,children:w.topRightScoreText}),h(t,{className:`absolute left-[8px] right-[8px] bottom-[10px] z-10 flex items-end justify-between gap-[8px]`,children:[m(t,{className:`flex min-w-0 items-center gap-[4px]`,children:w.bottomLeftHeatText&&h(p,{children:[m(i,{className:`h-[16px] w-[16px] shrink-0 text-white`}),m(n,{as:`span`,className:`min-w-0 truncate text-[14px] leading-[20px] text-white`,children:w.bottomLeftHeatText})]})}),w.bottomRightEpisodeText&&m(n,{as:`span`,className:`shrink-0 text-[14px] leading-[20px] text-white`,children:w.bottomRightEpisodeText})]})]})]}),!v&&m(t,{className:`mt-[8px] overflow-hidden`,children:m(n,{as:`h3`,className:`line-clamp-2 text-[16px] leading-[22px] text-[--color-text-white80]`,children:w.title})})]});return v?m(`button`,{type:`button`,className:`mb-[16px] block w-full cursor-pointer border-0 bg-transparent p-0 text-left`,onClick:E,"aria-pressed":C,disabled:!S,children:D}):m(r,{href:_.href,className:`mb-[16px] block w-full`,children:D})}export{_ as WaterfallRecommend};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Box as e}from"../../ui/box.mjs";import{Text as t}from"../../ui/text.mjs";import{Sheet as n,SheetContent as r,SheetHeader as i,SheetTitle as a}from"../../ui/sheet.mjs";import{Switch as o}from"../../ui/switch.mjs";import{useKeepAliveState as s}from"../keep-scroll-position/index.mjs";import c from"../../../assets/icons/common/right_arrow.mjs";import l from"../../ui/popup.mjs";import{useCallback as u,useEffect as d,useMemo as f,useRef as p,useState as m}from"react";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";import{toast as v}from"sonner";import{useTranslations as y}from"next-intl";const b=`funhub:detail-series-popup-query`,x=`funhub:detail-series-popup-close`;function S(e){return e.type===b&&e instanceof CustomEvent}function C({active:e}){return e?_(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`shrink-0`,"aria-hidden":!0,children:[g(`circle`,{cx:`16`,cy:`12`,r:`3`,fill:`white`}),g(`path`,{d:`M8 5H16C19.866 5 23 8.13401 23 12C23 15.866 19.866 19 16 19H8C4.13401 19 1 15.866 1 12C1 8.13401 4.13401 5 8 5ZM16 15C17.6569 15 19 13.6569 19 12C19 10.3431 17.6569 9 16 9C14.3431 9 13 10.3431 13 12C13 13.6569 14.3431 15 16 15Z`,fill:`#9054E5`})]}):_(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`shrink-0`,"aria-hidden":!0,children:[g(`path`,{d:`M1.5 12C1.5 8.68629 4.18629 6 7.5 6H16.5C19.8137 6 22.5 8.68629 22.5 12C22.5 15.3137 19.8137 18 16.5 18H7.5C4.18629 18 1.5 15.3137 1.5 12Z`,stroke:`currentColor`,strokeWidth:`1.5`,strokeOpacity:`0.6`}),g(`circle`,{cx:`9`,cy:`12`,r:`3`,fill:`rgba(255,255,255,0.6)`})]})}function w(){return g(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`block h-[20px] w-[20px]`,"aria-hidden":!0,children:g(`path`,{d:`M10 8.61116L14.8611 3.75L16.25 5.13889L11.3889 10L16.25 14.8611L14.8611 16.25L10 11.3889L5.13889 16.25L3.75 14.8611L8.61111 10L3.75 5.13889L5.13889 3.75L10 8.61116Z`,fill:`currentColor`})})}function T(e,t,n){return(e||[]).map((e,r)=>{let i=Number.parseInt(e?.id||``,10),a=Number.isNaN(i)?r+1:i,o=e?.name||``,s=Number.isNaN(i)&&o||n(a);return{id:e?.id||`${t}-${a}`,series_num:a,title:s}})}function E(e,t,n){return(e||[]).map((e,r)=>{let i=Number(e?.id),a=Number.isNaN(i)?r+1:i,o=n(a);return{id:e?.id||`${t}-${a}`,series_num:a,title:o}})}function D(e,t,n){return e<=0?n(`singleContent`):n(t===`1`?`completedSeriesTotal`:`ongoingSeriesTotal`,{total:e})}function O(){return g(`span`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 overflow-hidden rounded-[8px] p-[0.5px]`,style:{backgroundImage:`linear-gradient(180deg, #9756E3 0%, #6C43EE 100%), linear-gradient(135deg, rgba(255,30,172,0.7) 0%, rgba(108,67,238,0) 100%)`},children:g(`span`,{className:`block h-full w-full`,style:{borderRadius:`7.5px`,backgroundColor:`#000000`,backgroundImage:`linear-gradient(90deg, rgba(246,206,255,0.1) 0%, rgba(246,206,255,0.1) 100%), linear-gradient(90deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.1) 100%)`}})})}function k(e){return e.mode===`detail`?g(j,{information:e.information,series_num:e.series_num,onEpisodeChange:e.onEpisodeChange}):g(A,{open:e.open,variant:e.variant,title:e.title,updateStatus:e.updateStatus,summaryText:e.summaryText,seriesList:e.seriesList,activeEpisodeId:e.activeEpisodeId,showEpisodeTitle:e.showEpisodeTitle,onToggleTitle:e.onToggleTitle,onClose:e.onClose,onSelectEpisode:e.onSelectEpisode,popupBodyStyle:e.popupBodyStyle,popupStylePreset:e.popupStylePreset})}function A({open:s,variant:c,title:u,updateStatus:h,summaryText:v,seriesList:b,activeEpisodeId:x,showEpisodeTitle:S=!1,onToggleTitle:E,onClose:k,onSelectEpisode:A,popupBodyStyle:j,popupStylePreset:M=`default`}){let N=y(`components.common.seriesEpisodes`),P=!!E,F=P&&S,I=c===`popup`&&M===`detail-style-one`,L=c===`popup`?20:50,R=p(null),z=p(null),B=f(()=>T(b,`episode`,e=>N(`episodeLabel`,{episode:e})),[b,N]),V=f(()=>{if(B.length===0)return[];let e=[];return B.forEach((t,n)=>{let r=Math.floor(n/L);e[r]||(e[r]=[]),e[r].push(t)}),e},[B,L]),H=f(()=>{if(!x)return 0;let e=B.findIndex(e=>e.id===x);return e<0?0:Math.floor(e/L)},[x,B,L]),[U,W]=m(H);d(()=>{W(H)},[H]);let G=f(()=>typeof v==`string`&&v.trim()?v:D(B.length,h,N),[B.length,v,N,h]),K=u||N(`selectorTitle`);function q(){let e=R.current;if(e){z.current&&=(window.cancelAnimationFrame(z.current),null),e.scrollTop=0;try{e.scrollTo({top:0,left:0,behavior:`auto`})}catch{}z.current=window.requestAnimationFrame(()=>{z.current=null;let e=R.current;e&&(e.scrollTop=0)})}}d(()=>{s&&q()},[s,S,U]);function J(e){E&&(E(e),q())}function Y(e){A?.(e.id,e.series_num),k()}let X=F?2:5,Z=V.length>1?g(`div`,{className:`shrink-0 w-full flex gap-[8px] overflow-x-auto`,children:V.map((e,t)=>{if(e.length===0)return null;let n=t===U,r=t*L+1,i=Math.min((t+1)*L,B.length);return _(`div`,{className:`shrink-0 px-[16px] py-[6px] rounded-[16px] text-[14px] transition-colors cursor-pointer relative overflow-hidden ${n?`text-theme5 bg-bg2`:`text-text2 bg-bg2`}`,onClick:()=>{W(t),q()},children:[r,`-`,i,n&&g(`div`,{className:`absolute w-full h-full top-0 left-0 opacity-20 bg-theme5`})]},`series-group-${t}`)})}):null,Q=_(`div`,{className:`pb-[8px] flex justify-between`,children:[g(`span`,{className:`text-[16px] text-text1`,children:G}),P&&_(`div`,{className:`flex items-center gap-[4px]`,children:[g(o,{size:`sm`,className:`data-checked:bg-theme5 h-[20px] w-[33px]`,checked:S,onCheckedChange:e=>{J(!!e)}}),g(`button`,{type:`button`,className:`text-[16px] text-text1`,onClick:()=>{J(!S)},children:N(`episodeTitle`)})]})]}),$=g(`div`,{className:`grid w-full gap-2 ${X===2?`grid-cols-2`:`grid-cols-5`}`,children:(V[U]||[]).map((e,t)=>{let n=!!(x&&e.id===x);return g(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Y(e)},className:`flex items-center justify-center w-full h-[60px] rounded-[8px] border border-line1 border-solid text-[16px] cursor-pointer select-none transition-colors relative overflow-hidden ${n?`font-bold text-theme5 bg-line1`:`text-text1`} ${F?`h-[72px] px-[10px] text-[14px]`:``} ${t%X===0?``:`border-l-0`}`,children:F?g(`span`,{className:`leading-[22px] line-clamp-2`,children:e.title}):e.series_num},e.id)})}),ee=V.length>1?g(`div`,{className:`flex gap-[8px] overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:V.map((e,t)=>{if(e.length===0)return null;let n=t===U,r=t*L+1,i=Math.min((t+1)*L,B.length);return g(`button`,{type:`button`,className:`flex h-[28px] w-[72px] shrink-0 items-center justify-center rounded-[100px] px-[4px] transition-colors ${n?`bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-white`:`bg-white/20 text-white`}`,onClick:()=>{W(t),q()},children:_(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[20px]`,children:[r,`-`,i]})},`series-popup-group-${t}`)})}):null,te=_(`div`,{className:`flex items-center justify-between`,children:[g(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/60`,children:G}),P&&_(`button`,{type:`button`,className:`flex items-center gap-[3px] text-white/60`,onClick:()=>{J(!S)},children:[g(C,{active:S}),g(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] ${S?`text-[#9756E3]`:`text-white/60`}`,children:N(`episodeTitle`)})]})]}),ne=F?g(`div`,{className:`flex w-full flex-col gap-[12px]`,children:(V[U]||[]).map(e=>{let t=!!(x&&e.id===x);return _(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Y(e)},className:`relative flex w-full items-start overflow-hidden rounded-[8px] px-[16px] py-[18px] text-left transition-colors ${t?I?``:`border border-[#FF1EFF] bg-[linear-gradient(90deg,rgba(246,206,255,0.1)_0%,rgba(246,206,255,0.1)_100%),linear-gradient(90deg,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0.1)_100%)]`:`bg-white/10`}`,children:[t&&I&&g(O,{}),g(`span`,{className:`relative z-[1] line-clamp-1 font-['PingFang_SC'] text-[14px] ${t?`font-medium leading-[16px] text-[#9756E3]`:`font-normal leading-[16px] text-white/80`}`,children:e.title})]},`popup-${e.id}`)})}):g(`div`,{className:`grid w-full grid-cols-[repeat(6,52px)] justify-between gap-y-[8px]`,children:(V[U]||[]).map(e=>{let t=!!(x&&e.id===x);return _(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Y(e)},className:`relative flex h-[52px] w-[52px] items-center justify-center overflow-hidden rounded-[8px] transition-colors ${t?I?`text-[#9756E3]`:`border border-[#E62AFF]/90 bg-[linear-gradient(90deg,rgba(246,206,255,0.1)_0%,rgba(246,206,255,0.1)_100%),linear-gradient(90deg,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0.1)_100%)] text-[#9756E3]`:`bg-white/10 text-white/80`}`,children:[t&&I&&g(O,{}),g(`span`,{className:`relative z-[1] font-['PingFang_SC'] text-[16px] font-medium not-italic leading-[16px]`,children:e.series_num})]},`popup-${e.id}`)})});return c===`sheet`?g(n,{open:s,onOpenChange:e=>!e&&k(),children:_(r,{side:`bottom`,showCloseButton:!0,className:`min-h-[50vh] bg-bg1 text-text1 rounded-t-2xl border-t border-white/10`,children:[g(i,{className:`pt-3 pb-0`,children:g(a,{className:`flex items-center justify-between text-lg text-text1`,children:K})}),_(`div`,{className:`px-4 pb-2 flex flex-col gap-3`,children:[Z,Q]}),g(`div`,{ref:R,className:`flex-1 h-0 pt-[4px] pb-[12px] overflow-y-auto px-4`,children:$})]})}):g(l,{open:s,onOpenChange:e=>{e||k()},showCloseButton:!1,className:`!gap-0 !border-0 !bg-transparent !p-0 !shadow-none`,overlayClassName:`bg-black/50 backdrop-blur-0`,children:_(e,{className:`flex h-full w-full flex-col overflow-hidden rounded-t-[16px] bg-black text-text1`,style:{height:`70vh`,...j},children:[_(e,{className:`shrink-0 flex items-center justify-between px-[16px] pt-[32px]`,children:[g(t,{className:`font-['PingFang_SC'] text-[18px] font-medium not-italic leading-[24px] text-white`,children:K}),g(`button`,{type:`button`,"aria-label":`关闭`,className:`flex h-[24px] w-[24px] items-center justify-center text-white opacity-60`,onClick:k,children:g(`span`,{className:`flex h-[24px] w-[24px] items-center overflow-hidden p-[2px]`,children:g(w,{})})})]}),g(e,{className:`flex-1 h-0 w-full px-[16px] pb-[24px]`,children:_(e,{className:`flex h-full flex-col`,children:[ee&&g(e,{className:`mt-[16px] shrink-0`,children:ee}),g(e,{className:`mt-[16px] shrink-0`,children:te}),g(e,{ref:R,className:`flex-1 overflow-y-auto pb-[17px] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden ${F?`mt-[12px]`:`mt-[8px]`}`,children:ne})]})})]})})}function j({information:n,series_num:r,onEpisodeChange:i}){let a=y(`components.common`),[o,l]=s(`detail-series-popup-${n.id}`,!1),[C,w]=s(`detail-series-title-toggle-${n.id}`,!1),[T,D]=s(`detail-series-scroll-left-${n.id}`,null),[O,k]=m(r);d(()=>{k(r)},[n.id,r]),d(()=>{if(typeof window>`u`)return;let e=()=>{l(!1)};return window.addEventListener(x,e),()=>{window.removeEventListener(x,e)}},[l]),d(()=>{if(typeof window>`u`)return;let e=e=>{if(!S(e))return;let t=e.detail||{};t.open=!!t.open||!!o};return window.addEventListener(b,e),()=>{window.removeEventListener(b,e)}},[o]);let j=f(()=>E((n.links||[]).map(e=>({id:e.id,name:e.name})),n.id||`episode`,e=>a(`seriesEpisodes.episodeLabel`,{episode:e})),[n.id,n.links,a]),M=n.update_status===`1`?a(`seriesEpisodes.completedSeriesTotal`,{total:n.links.length}):a(`seriesEpisodes.ongoingSeriesUpdatedTo`,{total:n.links.length}),N=f(()=>n.links[O-1]?.id||n.links[0]?.id||``,[n.links,O]),P=p(null),F=p(null),I=p(null),L=p(!1),R=p(null),z=p(null),B=p(null),[V,H]=m(!1),U=u((e,t=`smooth`)=>{let n=P.current?.querySelector(`[data-content-id="${e}"]`);if(n&&P.current){let e=P.current,r=Math.max(0,n.offsetLeft-10);e.scrollTo({left:r,behavior:t})}},[]),W=u(()=>{z.current!==null&&(window.clearTimeout(z.current),z.current=null)},[]),G=u(()=>{B.current!==null&&(window.clearTimeout(B.current),B.current=null)},[]),K=u(()=>{R.current!==null&&(v.dismiss(R.current),R.current=null),W(),G()},[G,W]),q=u(()=>{F.current=null,I.current=null,K(),H(!1)},[K]),J=u((e,t)=>{G(),B.current=window.setTimeout(()=>{B.current=null,F.current===e&&q()},Math.max(0,t))},[G,q]);d(()=>{L.current=!1},[n.id]),d(()=>{if(L.current||!N)return;let e=window.requestAnimationFrame(()=>{let e=P.current;e&&(typeof T==`number`?e.scrollTo({left:Math.max(0,T),behavior:`auto`}):(U(N,`auto`),D(Math.max(0,Math.round(e.scrollLeft)))),L.current=!0)});return()=>{window.cancelAnimationFrame(e)}},[N,T,U,D]),d(()=>{let e=F.current;!e||e!==r||J(e,1e3)},[J,r]),d(()=>()=>{q()},[q]);let Y=u((e,t,n)=>{let r=P.current;if(!r||!e)return t;let i=r.querySelector(`[data-content-id="${e}"]`);if(!i)return t;let a=r.getBoundingClientRect();if(a.width<=0||typeof n!=`number`||(n-a.left)/a.width<.5)return t;let o=i.offsetLeft+i.offsetWidth/2,s=r.clientWidth/2,c=Math.max(0,r.scrollWidth-r.clientWidth),l=Math.min(c,Math.max(0,o-s));return r.scrollTo({left:l,behavior:`smooth`}),Math.round(l)},[]),X=u((e,t=`inline`,o,s)=>{if(e!==O){if(!n.links[e-1]){v.error(a(`seriesEpisodes.episodeNotFound`));return}if(typeof window<`u`&&window.isWebView===!0){try{k(e);let c=o||n.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),D(Math.max(0,Math.round(P.current?.scrollLeft||0)))):D(Y(c,l,s)),H(!0),K(),R.current=v.loading(a(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(k(r),q(),v.error(a(`seriesEpisodes.episodeSwitchFailed`)))},3e3),i(e)}catch(e){k(r),q(),console.error(`切换剧集失败`,e),v.error(a(`seriesEpisodes.episodeSwitchFailed`))}return}try{k(e);let c=o||n.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),D(Math.max(0,Math.round(P.current?.scrollLeft||0)))):D(Y(c,l,s)),H(!0),K(),R.current=v.loading(a(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(k(r),q(),v.error(a(`seriesEpisodes.episodeSwitchFailed`)))},8e3),i(e)}catch(e){k(r),q(),console.error(`切换剧集失败`,e),v.error(a(`seriesEpisodes.episodeSwitchFailed`))}}},[q,K,n.links,i,O,r,Y,U,D,a]),[Z,Q]=m(`70vh`),$=u(()=>{if(typeof window>`u`)return;if(window.isWebView===!0){Q(`100vh`);return}let e=document.getElementById(`selectPopupPosition`),t=window.visualViewport?.height||window.innerHeight;if(!e){Q(`70vh`);return}let n=Math.max(0,t-e.offsetTop);if(n<=0){Q(`70vh`);return}Q(`${n}px`)},[]);return d(()=>{if(!o)return;$();let e=()=>{$()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[$,o]),j.length<=1?null:_(h,{children:[_(e,{className:`w-full mt-[16px] flex flex-col items-end mb-[4px]`,children:[_(e,{className:`w-fit flex items-center px-[12px] h-[28px]`,onClick:()=>l(!0),children:[g(t,{className:`text-[14px] text-text2 leading-[20px]`,children:M}),g(c,{className:`w-[11px] h-[18px] ml-[4px] text-text2`})]}),g(`div`,{ref:P,className:`w-full mt-[12px] overflow-x-auto px-[12px] flex gap-x-[8px] ${C?`h-[76px]`:`h-[60px]`} ${V?`touch-none`:``}`,children:j.map((e,n)=>g(`div`,{"data-content-id":e.id,className:`shrink-0 h-[full] px-[18px] rounded-[6px] border border-line1 flex items-center ${C?`w-[162px]`:`w-[60px] !px-[0] justify-center`} ${e.id===N?`!border-theme5 bg-line1`:``}`,onClick:t=>{X(n+1,`inline`,e.id,t.clientX)},children:g(t,{className:`text-[16px] text-text1 leading-[22px] line-clamp-2 ${e.id===N?`font-bold !text-theme5`:``}`,children:C?e.title:e.series_num})},e.id))})]}),g(A,{title:a(`seriesEpisodes.selectorTitle`),variant:`popup`,open:o,updateStatus:n.update_status,summaryText:M,seriesList:(n.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:N,showEpisodeTitle:C,onToggleTitle:e=>{w(e)},onClose:()=>l(!1),onSelectEpisode:(e,t)=>{l(!1),X(t,`popup`,e)},popupBodyStyle:{height:Z},popupStylePreset:`default`})]})}export{O as DetailStyleOneActiveBorderLayer,k as SeriesEpisodes};
|
|
2
|
+
"use client";import{Box as e}from"../../ui/box.mjs";import{Text as t}from"../../ui/text.mjs";import{Sheet as n,SheetContent as r,SheetHeader as i,SheetTitle as a}from"../../ui/sheet.mjs";import{Switch as o}from"../../ui/switch.mjs";import{useKeepAliveState as s}from"../keep-scroll-position/index.mjs";import c from"../../../assets/icons/common/right_arrow.mjs";import l from"../../ui/popup.mjs";import{useCallback as u,useEffect as d,useMemo as f,useRef as p,useState as m}from"react";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";import{toast as v}from"sonner";import{useTranslations as ee}from"next-intl";const y=`funhub:detail-series-popup-query`,b=`funhub:detail-series-popup-close`;function x(e){return e.type===y&&e instanceof CustomEvent}function S({active:e}){return e?_(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`shrink-0`,"aria-hidden":!0,children:[g(`circle`,{cx:`16`,cy:`12`,r:`3`,fill:`white`}),g(`path`,{d:`M8 5H16C19.866 5 23 8.13401 23 12C23 15.866 19.866 19 16 19H8C4.13401 19 1 15.866 1 12C1 8.13401 4.13401 5 8 5ZM16 15C17.6569 15 19 13.6569 19 12C19 10.3431 17.6569 9 16 9C14.3431 9 13 10.3431 13 12C13 13.6569 14.3431 15 16 15Z`,fill:`#9054E5`})]}):_(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`shrink-0`,"aria-hidden":!0,children:[g(`path`,{d:`M1.5 12C1.5 8.68629 4.18629 6 7.5 6H16.5C19.8137 6 22.5 8.68629 22.5 12C22.5 15.3137 19.8137 18 16.5 18H7.5C4.18629 18 1.5 15.3137 1.5 12Z`,stroke:`currentColor`,strokeWidth:`1.5`,strokeOpacity:`0.6`}),g(`circle`,{cx:`9`,cy:`12`,r:`3`,fill:`rgba(255,255,255,0.6)`})]})}function C(){return g(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,className:`block h-[20px] w-[20px]`,"aria-hidden":!0,children:g(`path`,{d:`M10 8.61116L14.8611 3.75L16.25 5.13889L11.3889 10L16.25 14.8611L14.8611 16.25L10 11.3889L5.13889 16.25L3.75 14.8611L8.61111 10L3.75 5.13889L5.13889 3.75L10 8.61116Z`,fill:`currentColor`})})}function w(e,t){let n=String(t||``).trim();if(!n)return e;let r=e.replace(/\s+/g,``);return n.replace(/\s+/g,``)===r?e:`${e} ${n}`}function T(e,t,n){return(e||[]).map((e,r)=>{let i=Number.parseInt(e?.id||``,10),a=Number.isNaN(i)?r+1:i,o=e?.name||``,s=w(n(a),o);return{id:e?.id||`${t}-${a}`,series_num:a,title:s}})}function E(e,t,n){return(e||[]).map((e,r)=>{let i=Number(e?.id),a=Number.isNaN(i)?r+1:i,o=n(a);return{id:e?.id||`${t}-${a}`,series_num:a,title:o}})}function D(e,t,n){return e<=0?n(`singleContent`):n(t===`1`?`completedSeriesTotal`:`ongoingSeriesTotal`,{total:e})}function O(){return g(`span`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 overflow-hidden rounded-[8px] p-[0.5px]`,style:{backgroundImage:`linear-gradient(90deg, rgba(255,30,172,0.7) 0%, rgba(108,67,238,0) 100%), linear-gradient(180deg, #9756E3 0%, #6C43EE 100%)`},children:g(`span`,{className:`block h-full w-full`,style:{borderRadius:`7.5px`,backgroundColor:`#000000`,backgroundImage:`linear-gradient(90deg, rgba(246,206,255,0.1) 0%, rgba(246,206,255,0.1) 100%), linear-gradient(90deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.1) 100%)`}})})}function k(e){return e.mode===`detail`?g(j,{information:e.information,series_num:e.series_num,onEpisodeChange:e.onEpisodeChange}):g(A,{open:e.open,variant:e.variant,title:e.title,videoTitle:e.videoTitle,updateStatus:e.updateStatus,summaryText:e.summaryText,seriesList:e.seriesList,activeEpisodeId:e.activeEpisodeId,showEpisodeTitle:e.showEpisodeTitle,onToggleTitle:e.onToggleTitle,onClose:e.onClose,onSelectEpisode:e.onSelectEpisode,popupBodyStyle:e.popupBodyStyle,popupStylePreset:e.popupStylePreset})}function A({open:s,variant:c,title:h,videoTitle:v,updateStatus:y,summaryText:b,seriesList:x,activeEpisodeId:E,showEpisodeTitle:k=!1,onToggleTitle:A,onClose:j,onSelectEpisode:M,popupBodyStyle:N,popupStylePreset:P=`default`}){let F=ee(`components.common.seriesEpisodes`),I=!!A,L=I&&k,R=c===`popup`&&P===`detail-style-one`,z=p(null),B=p(null),V=f(()=>T(x,`episode`,e=>F(`episodeLabel`,{episode:e})),[x,F]),H=f(()=>{if(V.length===0)return[];let e=[];return V.forEach((t,n)=>{let r=Math.floor(n/50);e[r]||(e[r]=[]),e[r].push(t)}),e},[V,50]),U=f(()=>{if(!E)return 0;let e=V.findIndex(e=>e.id===E);return e<0?0:Math.floor(e/50)},[E,V,50]),[W,G]=m(U);d(()=>{G(U)},[U]);let K=f(()=>typeof b==`string`&&b.trim()?b:D(V.length,y,F),[V.length,b,F,y]),q=h||F(`selectorTitle`),J=String(v||``).trim(),Y=u(e=>w(F(`episodeLabel`,{episode:e.series_num}),J),[J,F]);function X(){let e=z.current;if(e){B.current&&=(window.cancelAnimationFrame(B.current),null),e.scrollTop=0;try{e.scrollTo({top:0,left:0,behavior:`auto`})}catch{}B.current=window.requestAnimationFrame(()=>{B.current=null;let e=z.current;e&&(e.scrollTop=0)})}}d(()=>{s&&X()},[s,k,W]);function Z(e){A&&(A(e),X())}function Q(e){M?.(e.id,e.series_num),j()}let $=L?2:5,te=H.length>1?g(`div`,{className:`shrink-0 w-full flex gap-[8px] overflow-x-auto`,children:H.map((e,t)=>{if(e.length===0)return null;let n=t===W,r=t*50+1,i=Math.min((t+1)*50,V.length);return _(`div`,{className:`shrink-0 px-[16px] py-[6px] rounded-[16px] text-[14px] transition-colors cursor-pointer relative overflow-hidden ${n?`text-theme5 bg-bg2`:`text-text2 bg-bg2`}`,onClick:()=>{G(t),X()},children:[r,`-`,i,n&&g(`div`,{className:`absolute w-full h-full top-0 left-0 opacity-20 bg-theme5`})]},`series-group-${t}`)})}):null,ne=_(`div`,{className:`pb-[8px] flex justify-between`,children:[g(`span`,{className:`text-[16px] text-text1`,children:K}),I&&_(`div`,{className:`flex items-center gap-[4px]`,children:[g(o,{size:`sm`,className:`data-checked:bg-theme5 h-[20px] w-[33px]`,checked:k,onCheckedChange:e=>{Z(!!e)}}),g(`button`,{type:`button`,className:`text-[16px] text-text1`,onClick:()=>{Z(!k)},children:F(`episodeTitle`)})]})]}),re=g(`div`,{className:`grid w-full gap-2 ${$===2?`grid-cols-2`:`grid-cols-5`}`,children:(H[W]||[]).map((e,t)=>{let n=!!(E&&e.id===E);return g(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Q(e)},className:`flex items-center justify-center w-full h-[60px] rounded-[8px] border border-line1 border-solid text-[16px] cursor-pointer select-none transition-colors relative overflow-hidden ${n?`font-bold text-theme5 bg-line1`:`text-text1`} ${L?`h-[72px] px-[10px] text-[14px]`:``} ${t%$===0?``:`border-l-0`}`,children:L?g(`span`,{className:`block w-full truncate leading-[22px]`,children:Y(e)}):e.series_num},e.id)})}),ie=H.length>1?g(`div`,{className:`flex gap-[8px] overflow-x-auto [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,children:H.map((e,t)=>{if(e.length===0)return null;let n=t===W,r=t*50+1,i=Math.min((t+1)*50,V.length);return g(`button`,{type:`button`,className:`flex h-[28px] w-[72px] shrink-0 items-center justify-center rounded-[100px] px-[4px] transition-colors ${n?`bg-[linear-gradient(90deg,#9756E3_0%,#6C43EE_100%)] text-white`:`bg-white/20 text-white`}`,onClick:()=>{G(t),X()},children:_(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[20px]`,children:[r,`-`,i]})},`series-popup-group-${t}`)})}):null,ae=_(`div`,{className:`flex items-center justify-between`,children:[g(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/60`,children:K}),I&&_(`button`,{type:`button`,className:`flex items-center gap-[3px] text-white/60`,onClick:()=>{Z(!k)},children:[g(S,{active:k}),g(`span`,{className:`font-['PingFang_SC'] text-[14px] font-normal not-italic leading-[24px] text-white/60`,children:F(`episodeTitle`)})]})]}),oe=L?g(`div`,{className:`flex w-full flex-col gap-[12px]`,children:(H[W]||[]).map(e=>{let t=!!(E&&e.id===E);return _(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Q(e)},className:`relative flex w-full items-start overflow-hidden rounded-[8px] px-[16px] py-[18px] text-left transition-colors ${t?R?``:`border border-[#FF1EFF] bg-[linear-gradient(90deg,rgba(246,206,255,0.1)_0%,rgba(246,206,255,0.1)_100%),linear-gradient(90deg,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0.1)_100%)]`:`bg-white/10`}`,children:[t&&R&&g(O,{}),g(`span`,{className:`relative z-[1] block w-full truncate font-['PingFang_SC'] text-[14px] ${t?`font-medium leading-[16px] text-[#CA3FE9]`:`font-normal leading-[16px] text-white/80`}`,children:Y(e)})]},`popup-${e.id}`)})}):g(`div`,{className:`grid w-full grid-cols-[repeat(6,52px)] justify-between gap-y-[8px]`,children:(H[W]||[]).map(e=>{let t=!!(E&&e.id===E);return _(`button`,{type:`button`,"data-episode-id":e.id,onClick:()=>{Q(e)},className:`relative flex h-[52px] w-[52px] items-center justify-center overflow-hidden rounded-[8px] transition-colors ${t?R?`text-[#9756E3]`:`border border-[#E62AFF]/90 bg-[linear-gradient(90deg,rgba(246,206,255,0.1)_0%,rgba(246,206,255,0.1)_100%),linear-gradient(90deg,rgba(255,255,255,0.1)_0%,rgba(255,255,255,0.1)_100%)] text-[#9756E3]`:`bg-white/10 text-white/80`}`,children:[t&&R&&g(O,{}),g(`span`,{className:`relative z-[1] font-['PingFang_SC'] text-[16px] font-medium not-italic leading-[16px]`,children:e.series_num})]},`popup-${e.id}`)})});return c===`sheet`?g(n,{open:s,onOpenChange:e=>!e&&j(),children:_(r,{side:`bottom`,showCloseButton:!0,className:`min-h-[50vh] bg-bg1 text-text1 rounded-t-2xl border-t border-white/10`,children:[g(i,{className:`pt-3 pb-0`,children:g(a,{className:`flex items-center justify-between text-lg text-text1`,children:q})}),_(`div`,{className:`px-4 pb-2 flex flex-col gap-3`,children:[te,ne]}),g(`div`,{ref:z,className:`flex-1 h-0 pt-[4px] pb-[12px] overflow-y-auto px-4`,children:re})]})}):g(l,{open:s,onOpenChange:e=>{e||j()},showCloseButton:!1,className:`!gap-0 !border-0 !bg-transparent !p-0 !shadow-none`,overlayClassName:`bg-black/50 backdrop-blur-0`,children:_(e,{className:`flex h-full w-full flex-col overflow-hidden rounded-t-[16px] bg-black text-text1`,style:{height:`70vh`,...N},children:[_(e,{className:`shrink-0 flex items-center justify-between px-[16px] pt-[32px]`,children:[g(t,{className:`font-['PingFang_SC'] text-[18px] font-medium not-italic leading-[24px] text-white`,children:q}),g(`button`,{type:`button`,"aria-label":`关闭`,className:`flex h-[24px] w-[24px] items-center justify-center text-white opacity-60`,onClick:j,children:g(`span`,{className:`flex h-[24px] w-[24px] items-center overflow-hidden p-[2px]`,children:g(C,{})})})]}),g(e,{className:`flex-1 h-0 w-full px-[16px] pb-[24px]`,children:_(e,{className:`flex h-full flex-col`,children:[ie&&g(e,{className:`mt-[16px] shrink-0`,children:ie}),g(e,{className:`mt-[16px] shrink-0`,children:ae}),g(e,{ref:z,className:`flex-1 overflow-y-auto pb-[17px] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden ${L?`mt-[12px]`:`mt-[8px]`}`,children:oe})]})})]})})}function j({information:n,series_num:r,onEpisodeChange:i}){let a=ee(`components.common`),[o,l]=s(`detail-series-popup-${n.id}`,!1),[S,C]=s(`detail-series-title-toggle-${n.id}`,!1),[w,T]=s(`detail-series-scroll-left-${n.id}`,null),[D,k]=m(r);d(()=>{k(r)},[n.id,r]),d(()=>{if(typeof window>`u`)return;let e=()=>{l(!1)};return window.addEventListener(b,e),()=>{window.removeEventListener(b,e)}},[l]),d(()=>{if(typeof window>`u`)return;let e=e=>{if(!x(e))return;let t=e.detail||{};t.open=!!t.open||!!o};return window.addEventListener(y,e),()=>{window.removeEventListener(y,e)}},[o]);let j=f(()=>E((n.links||[]).map(e=>({id:e.id,name:e.name})),n.id||`episode`,e=>a(`seriesEpisodes.episodeLabel`,{episode:e})),[n.id,n.links,a]),M=n.update_status===`1`?a(`seriesEpisodes.completedSeriesTotal`,{total:n.links.length}):a(`seriesEpisodes.ongoingSeriesUpdatedTo`,{total:n.links.length}),N=f(()=>n.links[D-1]?.id||n.links[0]?.id||``,[n.links,D]),P=p(null),F=p(null),I=p(null),L=p(!1),R=p(null),z=p(null),B=p(null),[V,H]=m(!1),U=u((e,t=`smooth`)=>{let n=P.current?.querySelector(`[data-content-id="${e}"]`);if(n&&P.current){let e=P.current,r=Math.max(0,n.offsetLeft-10);e.scrollTo({left:r,behavior:t})}},[]),W=u(()=>{z.current!==null&&(window.clearTimeout(z.current),z.current=null)},[]),G=u(()=>{B.current!==null&&(window.clearTimeout(B.current),B.current=null)},[]),K=u(()=>{R.current!==null&&(v.dismiss(R.current),R.current=null),W(),G()},[G,W]),q=u(()=>{F.current=null,I.current=null,K(),H(!1)},[K]),J=u((e,t)=>{G(),B.current=window.setTimeout(()=>{B.current=null,F.current===e&&q()},Math.max(0,t))},[G,q]);d(()=>{L.current=!1},[n.id]),d(()=>{if(L.current||!N)return;let e=window.requestAnimationFrame(()=>{let e=P.current;e&&(typeof w==`number`?e.scrollTo({left:Math.max(0,w),behavior:`auto`}):(U(N,`auto`),T(Math.max(0,Math.round(e.scrollLeft)))),L.current=!0)});return()=>{window.cancelAnimationFrame(e)}},[N,w,U,T]),d(()=>{let e=F.current;!e||e!==r||J(e,1e3)},[J,r]),d(()=>()=>{q()},[q]);let Y=u((e,t,n)=>{let r=P.current;if(!r||!e)return t;let i=r.querySelector(`[data-content-id="${e}"]`);if(!i)return t;let a=r.getBoundingClientRect();if(a.width<=0||typeof n!=`number`||(n-a.left)/a.width<.5)return t;let o=i.offsetLeft+i.offsetWidth/2,s=r.clientWidth/2,c=Math.max(0,r.scrollWidth-r.clientWidth),l=Math.min(c,Math.max(0,o-s));return r.scrollTo({left:l,behavior:`smooth`}),Math.round(l)},[]),X=u((e,t=`inline`,o,s)=>{if(e!==D){if(!n.links[e-1]){v.error(a(`seriesEpisodes.episodeNotFound`));return}if(typeof window<`u`&&window.isWebView===!0){try{k(e);let c=o||n.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),T(Math.max(0,Math.round(P.current?.scrollLeft||0)))):T(Y(c,l,s)),H(!0),K(),R.current=v.loading(a(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(k(r),q(),v.error(a(`seriesEpisodes.episodeSwitchFailed`)))},3e3),i(e)}catch(e){k(r),q(),console.error(`切换剧集失败`,e),v.error(a(`seriesEpisodes.episodeSwitchFailed`))}return}try{k(e);let c=o||n.links[e-1]?.id||``,l=Math.max(0,Math.round(P.current?.scrollLeft||0));t===`popup`?(c&&U(c,`auto`),T(Math.max(0,Math.round(P.current?.scrollLeft||0)))):T(Y(c,l,s)),H(!0),K(),R.current=v.loading(a(`seriesEpisodes.episodeSwitching`)),F.current=e,I.current=t,z.current=window.setTimeout(()=>{F.current===e&&(k(r),q(),v.error(a(`seriesEpisodes.episodeSwitchFailed`)))},8e3),i(e)}catch(e){k(r),q(),console.error(`切换剧集失败`,e),v.error(a(`seriesEpisodes.episodeSwitchFailed`))}}},[q,K,n.links,i,D,r,Y,U,T,a]),[Z,Q]=m(`70vh`),$=u(()=>{if(typeof window>`u`)return;if(window.isWebView===!0){Q(`100vh`);return}let e=document.getElementById(`selectPopupPosition`),t=window.visualViewport?.height||window.innerHeight;if(!e){Q(`70vh`);return}let n=Math.max(0,t-e.offsetTop);if(n<=0){Q(`70vh`);return}Q(`${n}px`)},[]);return d(()=>{if(!o)return;$();let e=()=>{$()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[$,o]),j.length<=1?null:_(h,{children:[_(e,{className:`w-full mt-[16px] flex flex-col items-end mb-[4px]`,children:[_(e,{className:`w-fit flex items-center px-[12px] h-[28px]`,onClick:()=>l(!0),children:[g(t,{className:`text-[14px] text-text2 leading-[20px]`,children:M}),g(c,{className:`w-[11px] h-[18px] ml-[4px] text-text2`})]}),g(`div`,{ref:P,className:`w-full mt-[12px] overflow-x-auto px-[12px] flex gap-x-[8px] ${S?`h-[76px]`:`h-[60px]`} ${V?`touch-none`:``}`,children:j.map((e,n)=>_(`div`,{"data-content-id":e.id,className:`relative shrink-0 h-[full] overflow-hidden px-[18px] rounded-[8px] border border-line1 flex items-center ${S?`w-[162px]`:`w-[60px] !px-[0] justify-center`} ${e.id===N?`border-transparent bg-transparent`:``}`,onClick:t=>{X(n+1,`inline`,e.id,t.clientX)},children:[e.id===N&&g(O,{}),g(t,{className:`relative z-[1] text-[16px] text-text1 leading-[22px] line-clamp-2 ${e.id===N?`font-bold !text-[#CA3FE9]`:``}`,children:S?e.title:e.series_num})]},e.id))})]}),g(A,{title:a(`seriesEpisodes.selectorTitle`),videoTitle:n.name,variant:`popup`,open:o,updateStatus:n.update_status,summaryText:M,seriesList:(n.links||[]).map(e=>({id:e.id,name:e.name})),activeEpisodeId:N,showEpisodeTitle:S,onToggleTitle:e=>{C(e)},onClose:()=>l(!1),onSelectEpisode:(e,t)=>{l(!1),X(t,`popup`,e)},popupBodyStyle:{height:Z},popupStylePreset:`default`})]})}export{O as DetailStyleOneActiveBorderLayer,k as SeriesEpisodes};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { Ref } from "react";
|
|
3
3
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
-
import { SimplePlayer } from "xgplayer";
|
|
5
4
|
|
|
6
5
|
//#region components/common/video-player/index.d.ts
|
|
7
6
|
interface CommonPlayerProps {
|
|
@@ -38,7 +37,7 @@ interface CommonPlayerRef {
|
|
|
38
37
|
enterFullscreen: () => void;
|
|
39
38
|
isFullscreen: () => boolean;
|
|
40
39
|
isPlayerReady: () => boolean;
|
|
41
|
-
getPlayer: () =>
|
|
40
|
+
getPlayer: () => any;
|
|
42
41
|
}
|
|
43
42
|
declare function CommonPlayer({
|
|
44
43
|
className,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Button as e}from"../../ui/button.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as n,pCommunityDeleteCollection as r,pCommunityRemoveContentFromCollection as i,pInteractionBatchDeleteCollects as a}from"../../../service/generated/client.mjs";import{useRouter as o}from"../../../utils/use-compatible-router.mjs";import{Box as s}from"../../ui/box.mjs";import{Checkbox as ee}from"../../ui/checkbox.mjs";import{DropdownMenu as te,DropdownMenuContent as c,DropdownMenuItem as l,DropdownMenuSeparator as u,DropdownMenuTrigger as ne}from"../../ui/dropdown-menu.mjs";import{List as d}from"../../ui/list.mjs";import{Text as re}from"../../ui/text.mjs";import{useLoginModalStore as f}from"../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as p,useMutation as m,useRequest as ie}from"../../../hooks/query/use-query.mjs";import{CreateCollectionSheet as ae}from"../../common/collection-popup/create-collection-sheet.mjs";import{ShareDrawer as oe}from"../../common/share-popup/share-drawer.mjs";import{SharePlatformEnum as h}from"../../../types/share.mjs";import se from"../../../utils/share-manager.mjs";import{DeleteConfirmDialog as ce}from"../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{HeaderNav as le}from"../../common/header-nav/client.mjs";import{CollectionDetailCard as g}from"./_components/collection-detail-card.mjs";import{CollectionDetailVideoCard as ue}from"./_components/collection-detail-video-card.mjs";import{useMemo as _,useState as v}from"react";import{MoreVertical as y}from"lucide-react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{toast as S}from"sonner";import{useTranslations as de}from"next-intl";function C(e){if(e.cover_image)return e.cover_image;let t=``;return e.medias?.find(e=>e?(!e.is_video&&!t&&e.media_url&&(t=e.media_url),!!e.cover_image):!1)?.cover_image||t}function w(e){let t=e.detail.info?.video_duration;if(typeof t==`number`&&Number.isFinite(t)&&t>0)return Math.floor(t);let n=e.detail.duration;if(typeof n==`number`&&Number.isFinite(n)&&n>0)return Math.floor(n);let r=e.medias?.find(e=>{let t=e?.video_duration;return typeof t==`number`&&Number.isFinite(t)&&t>0})?.video_duration;return typeof r==`number`&&Number.isFinite(r)&&r>0?Math.floor(r):0}function T(e){let t=[e.detail.episode_cnt,e.detail.series_num_total,Array.isArray(e.detail.links)?e.detail.links.length:void 0].find(e=>typeof e==`number`&&Number.isFinite(e)&&e>0);return typeof t==`number`?Math.floor(t):0}function E(e){let t=e.detail.info?.play_count;if(typeof t==`number`&&Number.isFinite(t))return Math.max(0,Math.floor(t));let n=e.detail.view_count||e.viewCount;return typeof n==`number`&&Number.isFinite(n)?Math.max(0,Math.floor(n)):0}function D(e){return e.detail.type===2||e.is_more_link||e.detail.info?.is_more_link||e.detail.is_more_link?!0:T(e)>1}function fe(e){let t=e.detail,n=t.info,r=String(n?.cover_image||t.cover_image||C(e)||``),i=String(n?.text||n?.title||t.title||t.content||``),a=T(e),o=t.author_score??0,s=Array.isArray(t.tags)?t.tags:[];return{id:e.content_id?String(e.content_id):String(e.id),title:i,type:typeof e.type==`number`?e.type:0,coverImage:r,score:o,collectedAt:t.create_time==null?void 0:String(t.create_time),tags:s,duration:w(e),viewCount:E(e),episodeCount:a,publishTime:String(t.create_time??t.update_time??``),is_more_link:D(e),authorName:``}}function O({id:C}){let w=de(`components.pages.collectionDetail`),T=o(),{userId:E,isLogin:D}=t(),{open:O}=f(),k=p(),A=ie([`collection-detail`,C],()=>n({collection_id:C})),j=A.data?.data?.data?.collection?.user_id,M=!!(j&&E&&String(j)===String(E)),[pe,N]=v(!1),[P,F]=v(!1),[I,L]=v(!1),[R,z]=v(!1),[B,V]=v(()=>new Set),[H,U]=v(null),W=A.data?.data?.data?.collection,G=W?.contents,K=_(()=>G?G.map(e=>({content_id:e.content_id,is_more_link:e.is_more_link,id:Number(e.content_id),detail:e,type:Number(e.source_type??0),medias:e.medias,cover_image:e.cover_image,viewCount:e.view_count})):[],[G]).map(fe),me=K.length>0&&K.every(e=>e.type===1),q=_(()=>new Set(K.map(e=>e.id)),[K]),J=q.size>0&&B.size===q.size,{mutateAsync:he,isPending:ge}=m(async e=>await i({collection_id:C,content_id:e})),{mutateAsync:_e,isPending:Y}=m(async e=>await r({collection_id:e})),{mutateAsync:ve,isPending:X}=m(async e=>await a({app_id:0,user_id:E,folder_id:C,content_type:1,content_ids:e})),ye=M&&W?.is_default===!1;function be(e){U({kind:`content`,id:e.id,type:e.type,title:e.title,isCollected:!0}),N(!0)}function Z(){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}if(!M){S.error(w(`detail.operationFailed`));return}V(new Set),z(!0)}function xe(){V(new Set),z(!1)}function Q(e){V(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function Se(){if(J){V(new Set);return}V(new Set(q))}async function Ce(){if(!(B.size===0||X)){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}try{let e=await ve(Array.from(B));if(e.code===0){S.success(w(`detail.uncollectSuccess`)),k([`collection-detail`,C]),k([`user-profile`,`mine`]),k([`user-profile`,`profile`,j]),V(new Set),z(!1);return}S.error(e.message||w(`detail.uncollectFailed`))}catch(e){console.error(`批量取消收藏失败`,e),S.error(w(`detail.operationFailed`))}}}function we(e){if(typeof window>`u`)return``;if(e.kind===`collection`)return`${window.location.origin}/collection/${e.id}`;let t=e.title?encodeURIComponent(e.title):`detail`,n=e.type===1?`/video/${e.id}/${t}`:`/post/${e.id}`;return`${window.location.origin}${n}`}function $(e){if(!H)return;let t=we(H);t&&se.showSharePopup({type:e,data:{id:H.id},copyUrl:t})}function Te(){$(h.WECHAT)}function Ee(){$(h.QQ)}function De(){$(h.WECHAT_MOMENTS)}function Oe(){if(!ge){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}!H||H.kind!==`content`||he(H.id).then(e=>{if(e.code===0){S.success(w(`detail.uncollectSuccess`)),k([`collection-detail`,C]),U(e=>e&&{...e,isCollected:!1});return}S.error(e.message||w(`detail.uncollectFailed`))}).catch(e=>{console.error(`取消收藏失败`,e),S.error(w(`detail.operationFailed`))})}}function ke(){L(!0),N(!1)}function Ae(){if(!Y){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}if(!ye){S.error(w(`detail.defaultCollectionDeleteNotSupported`));return}F(!0)}}async function je(){if(!Y)try{let e=await _e(C);if(e.code===0){S.success(w(`detail.deleteSuccess`)),k([`collection-detail`,C]),k([`user-profile`,`mine`]),k([`user-profile`,`profile`,j]),F(!1),N(!1),T.back();return}S.error(e.message||w(`detail.deleteFailed`))}catch(e){console.error(`删除合集失败`,e),S.error(w(`detail.operationFailed`))}}return x(s,{className:`relative flex min-h-screen flex-col overflow-hidden bg-[var(--color-surface-panel-dark)] ${R?`pb-28`:`pb-6`}`,children:[b(le,{className:`!border-none !bg-[var(--color-surface-panel-dark)] !border-transparent`,title:W?.title??``,centerChild:b(`
|
|
2
|
+
"use client";import{Button as e}from"../../ui/button.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as n,pCommunityDeleteCollection as r,pCommunityRemoveContentFromCollection as i,pInteractionBatchDeleteCollects as a}from"../../../service/generated/client.mjs";import{useRouter as o}from"../../../utils/use-compatible-router.mjs";import{Box as s}from"../../ui/box.mjs";import{Checkbox as ee}from"../../ui/checkbox.mjs";import{DropdownMenu as te,DropdownMenuContent as c,DropdownMenuItem as l,DropdownMenuSeparator as u,DropdownMenuTrigger as ne}from"../../ui/dropdown-menu.mjs";import{List as d}from"../../ui/list.mjs";import{Text as re}from"../../ui/text.mjs";import{useLoginModalStore as f}from"../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as p,useMutation as m,useRequest as ie}from"../../../hooks/query/use-query.mjs";import{CreateCollectionSheet as ae}from"../../common/collection-popup/create-collection-sheet.mjs";import{ShareDrawer as oe}from"../../common/share-popup/share-drawer.mjs";import{SharePlatformEnum as h}from"../../../types/share.mjs";import se from"../../../utils/share-manager.mjs";import{DeleteConfirmDialog as ce}from"../../common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{HeaderNav as le}from"../../common/header-nav/client.mjs";import{CollectionDetailCard as g}from"./_components/collection-detail-card.mjs";import{CollectionDetailVideoCard as ue}from"./_components/collection-detail-video-card.mjs";import{useMemo as _,useState as v}from"react";import{MoreVertical as y}from"lucide-react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{toast as S}from"sonner";import{useTranslations as de}from"next-intl";function C(e){if(e.cover_image)return e.cover_image;let t=``;return e.medias?.find(e=>e?(!e.is_video&&!t&&e.media_url&&(t=e.media_url),!!e.cover_image):!1)?.cover_image||t}function w(e){let t=e.detail.info?.video_duration;if(typeof t==`number`&&Number.isFinite(t)&&t>0)return Math.floor(t);let n=e.detail.duration;if(typeof n==`number`&&Number.isFinite(n)&&n>0)return Math.floor(n);let r=e.medias?.find(e=>{let t=e?.video_duration;return typeof t==`number`&&Number.isFinite(t)&&t>0})?.video_duration;return typeof r==`number`&&Number.isFinite(r)&&r>0?Math.floor(r):0}function T(e){let t=[e.detail.episode_cnt,e.detail.series_num_total,Array.isArray(e.detail.links)?e.detail.links.length:void 0].find(e=>typeof e==`number`&&Number.isFinite(e)&&e>0);return typeof t==`number`?Math.floor(t):0}function E(e){let t=e.detail.info?.play_count;if(typeof t==`number`&&Number.isFinite(t))return Math.max(0,Math.floor(t));let n=e.detail.view_count||e.viewCount;return typeof n==`number`&&Number.isFinite(n)?Math.max(0,Math.floor(n)):0}function D(e){return e.detail.type===2||e.is_more_link||e.detail.info?.is_more_link||e.detail.is_more_link?!0:T(e)>1}function fe(e){let t=e.detail,n=t.info,r=String(n?.cover_image||t.cover_image||C(e)||``),i=String(n?.text||n?.title||t.title||t.content||``),a=T(e),o=t.author_score??0,s=Array.isArray(t.tags)?t.tags:[];return{id:e.content_id?String(e.content_id):String(e.id),title:i,type:typeof e.type==`number`?e.type:0,coverImage:r,score:o,collectedAt:t.create_time==null?void 0:String(t.create_time),tags:s,duration:w(e),viewCount:E(e),episodeCount:a,publishTime:String(t.create_time??t.update_time??``),is_more_link:D(e),authorName:``}}function O({id:C}){let w=de(`components.pages.collectionDetail`),T=o(),{userId:E,isLogin:D}=t(),{open:O}=f(),k=p(),A=ie([`collection-detail`,C],()=>n({collection_id:C})),j=A.data?.data?.data?.collection?.user_id,M=!!(j&&E&&String(j)===String(E)),[pe,N]=v(!1),[P,F]=v(!1),[I,L]=v(!1),[R,z]=v(!1),[B,V]=v(()=>new Set),[H,U]=v(null),W=A.data?.data?.data?.collection,G=W?.contents,K=_(()=>G?G.map(e=>({content_id:e.content_id,is_more_link:e.is_more_link,id:Number(e.content_id),detail:e,type:Number(e.source_type??0),medias:e.medias,cover_image:e.cover_image,viewCount:e.view_count})):[],[G]).map(fe),me=K.length>0&&K.every(e=>e.type===1),q=_(()=>new Set(K.map(e=>e.id)),[K]),J=q.size>0&&B.size===q.size,{mutateAsync:he,isPending:ge}=m(async e=>await i({collection_id:C,content_id:e})),{mutateAsync:_e,isPending:Y}=m(async e=>await r({collection_id:e})),{mutateAsync:ve,isPending:X}=m(async e=>await a({app_id:0,user_id:E,folder_id:C,content_type:1,content_ids:e})),ye=M&&W?.is_default===!1;function be(e){U({kind:`content`,id:e.id,type:e.type,title:e.title,isCollected:!0}),N(!0)}function Z(){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}if(!M){S.error(w(`detail.operationFailed`));return}V(new Set),z(!0)}function xe(){V(new Set),z(!1)}function Q(e){V(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function Se(){if(J){V(new Set);return}V(new Set(q))}async function Ce(){if(!(B.size===0||X)){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}try{let e=await ve(Array.from(B));if(e.code===0){S.success(w(`detail.uncollectSuccess`)),k([`collection-detail`,C]),k([`user-profile`,`mine`]),k([`user-profile`,`profile`,j]),V(new Set),z(!1);return}S.error(e.message||w(`detail.uncollectFailed`))}catch(e){console.error(`批量取消收藏失败`,e),S.error(w(`detail.operationFailed`))}}}function we(e){if(typeof window>`u`)return``;if(e.kind===`collection`)return`${window.location.origin}/collection/${e.id}`;let t=e.title?encodeURIComponent(e.title):`detail`,n=e.type===1?`/video/${e.id}/${t}`:`/post/${e.id}`;return`${window.location.origin}${n}`}function $(e){if(!H)return;let t=we(H);t&&se.showSharePopup({type:e,data:{id:H.id},copyUrl:t})}function Te(){$(h.WECHAT)}function Ee(){$(h.QQ)}function De(){$(h.WECHAT_MOMENTS)}function Oe(){if(!ge){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}!H||H.kind!==`content`||he(H.id).then(e=>{if(e.code===0){S.success(w(`detail.uncollectSuccess`)),k([`collection-detail`,C]),U(e=>e&&{...e,isCollected:!1});return}S.error(e.message||w(`detail.uncollectFailed`))}).catch(e=>{console.error(`取消收藏失败`,e),S.error(w(`detail.operationFailed`))})}}function ke(){L(!0),N(!1)}function Ae(){if(!Y){if(!D||!E){S.error(w(`detail.pleaseLogin`)),O();return}if(!ye){S.error(w(`detail.defaultCollectionDeleteNotSupported`));return}F(!0)}}async function je(){if(!Y)try{let e=await _e(C);if(e.code===0){S.success(w(`detail.deleteSuccess`)),k([`collection-detail`,C]),k([`user-profile`,`mine`]),k([`user-profile`,`profile`,j]),F(!1),N(!1),T.back();return}S.error(e.message||w(`detail.deleteFailed`))}catch(e){console.error(`删除合集失败`,e),S.error(w(`detail.operationFailed`))}}return x(s,{className:`relative flex min-h-screen flex-col overflow-hidden bg-[var(--color-surface-panel-dark)] ${R?`pb-28`:`pb-6`}`,children:[b(le,{className:`!border-none !bg-[var(--color-surface-panel-dark)] !border-transparent`,title:W?.title??``,centerChild:b(`div`,{className:`flex min-w-0 flex-1 items-center justify-center px-12`,children:b(`p`,{className:`min-w-0 max-w-full truncate text-center text-[18px] leading-[22px] font-medium text-text1`,children:W?.title??``})}),onBack:()=>T.back(),rightChild:M?R?b(`button`,{type:`button`,onClick:xe,className:`px-2 py-1 text-sm text-text1`,children:w(`detail.done`)}):x(te,{children:[b(ne,{className:`flex h-10 w-10 items-center justify-center text-text1 outline-none`,children:b(y,{className:`h-5 w-5`,strokeWidth:2})}),x(c,{align:`end`,sideOffset:6,className:`!w-[180px] rounded-[8px] border-none !border-none !ring-0 shadow-none !shadow-none bg-[#252327] px-0 pb-1 pt-[3px]`,children:[b(l,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:ke,children:w(`detail.editCollection`)}),b(u,{className:`mx-0 my-1 bg-[#343237]`}),b(l,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:Z,children:w(`detail.manageCollection`)}),b(u,{className:`mx-0 my-1 bg-[#343237]`}),b(l,{className:`mx-1 h-8 rounded-[4px] px-[10px] text-[13px] leading-4 text-[#fafafa]`,onClick:Ae,disabled:Y,children:w(Y?`detail.deleting`:`detail.deleteCollection`)})]})]}):void 0}),b(s,{className:`relative z-[1] px-4 pb-4`,children:b(s,{className:`text-text2 text-sm leading-[22px] break-all text-ellipsis line-clamp-1`,children:W?.description})}),b(s,{className:`relative z-[1] px-4 ${R?`pb-20`:``}`,children:me?b(d,{loading:A.isLoading,hasMore:!1,emptyText:w(`detail.emptyContent`),columns:2,gridGap:16,className:`!bg-transparent`,children:K.map(e=>b(ue,{id:e.id,title:e.title,coverImage:e.coverImage,duration:e.duration,episodeCount:e.episodeCount,viewCount:e.viewCount,is_more_link:e.is_more_link,isEditMode:R,isSelected:B.has(e.id),onToggleSelection:Q},e.id))}):b(d,{loading:A.isLoading,hasMore:!1,emptyText:w(`detail.emptyContent`),className:`!bg-transparent divide-y divide-text1/5`,children:K.map(e=>b(g,{...e,onOpenShare:be,isEditMode:R,isSelected:B.has(e.id),onToggleSelection:Q},e.id))})}),R&&x(s,{className:`fixed bottom-0 left-0 right-0 z-10 flex items-center justify-between border-t border-text1/10 bg-bg1 px-4 py-3`,children:[x(s,{className:`flex items-center gap-2`,children:[b(ee,{checked:J,onCheckedChange:Se}),b(re,{className:`text-sm text-text1`,children:w(`detail.selectAll`)})]}),b(e,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:B.size>0?`default`:`outline`,disabled:B.size===0||X,onClick:Ce,children:w(X?`detail.deleting`:`detail.delete`)})]}),b(oe,{isShowCollect:H?.kind===`content`&&M&&D,isCollected:H?.isCollected,open:pe,onOpenChange:N,onShareWeChat:Te,onShareQQ:Ee,onShareMoments:De,onUncollect:Oe}),b(ae,{visible:I,mode:`edit`,collectionId:C,initialValues:W?{title:W.title??``,description:W.description??``}:void 0,onClose:()=>L(!1)}),b(ce,{open:P,onOpenChange:F,onConfirm:je,title:w(`detail.deleteCollection`),isConfirming:Y})]})}export{O as CollectionDetail};
|
|
@@ -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{useLoginModalStore as a}from"../../../store/modules/login-modal-store.mjs";import{useRequest as o}from"../../../hooks/query/use-query.mjs";import{queryKey as s}from"../../../constants/query-key.mjs";import{useKeepAliveState as c}from"../../common/keep-scroll-position/index.mjs";import{batchQueryContentInteractions as l}from"../../../hooks/use-content-operate.mjs";import u from"../../biz/basics/fullscreen-feed/runtime/client.mjs";import
|
|
2
|
+
"use client";import{getChannelList as e}from"../../biz/utils/helpers/get-channel-list.mjs";import{useFollowIdsState as t}from"../../../store/modules/follow-ids-store.mjs";import{useUserStore as n}from"../../../store/modules/user-store.mjs";import{gContentGetAppChannels as r,gContentGetVideoDetail as i}from"../../../service/generated/client.mjs";import{useLoginModalStore as a}from"../../../store/modules/login-modal-store.mjs";import{useRequest as o}from"../../../hooks/query/use-query.mjs";import{queryKey as s}from"../../../constants/query-key.mjs";import{useKeepAliveState as c}from"../../common/keep-scroll-position/index.mjs";import{batchQueryContentInteractions as l}from"../../../hooks/use-content-operate.mjs";import u from"../../biz/basics/fullscreen-feed/runtime/client.mjs";import d from"../../biz/business/search-bar/variants/detail-search-bar/index.mjs";import{SeriesEpisodes as ee}from"../../common/series-episodes/index.mjs";import{useCallback as f,useEffect as te,useLayoutEffect as ne,useMemo as p,useRef as re,useState as m}from"react";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";import{useTranslations as v}from"next-intl";function y(e,t){return(e||[]).map((e,n)=>({id:e.id||`${t||`episode`}-${n+1}`,name:e.name||String(n+1),preview_m3u8_url:e.preview_m3u8_url||e.preview_m3u8url||``,m3u8_url:e.m3u8_url||e.m3u8url||``}))}function b(e,t,n){let r=e.id||``,i=t||r,a=y(e.links,i),o=e.static,s=e.score===void 0||e.score===null?void 0:Number(e.score),c=e.duration===void 0||e.duration===null?void 0:Number(e.duration),l={id:i,mid:i,name:e.name||``,img_x:e.img_x||``,img_y:e.img_y||``,img_type:e.img_type||``,cat_id:e.cat_id||``,cat_name:e.cat_name||``,status:e.status||``,status_text:e.status_text||``,show_at:e.show_at||``,tags:[],update_status:e.update_status||``,description:e.description||``,language:e.language||``,director:e.director||``,issue_date:e.issue_date||``,actor:e.actor||``,up_user:e.up_user||``,money:e.money||``,source_username:e.source_username||``,task_id:e.task_id||``,file_status:e.file_status||``,score:Number.isFinite(s)?s:void 0,duration:Number.isFinite(c)?c:void 0,episode_cnt:a.length||0,links:[],static:{browse_cnt:Number(o?.browse_cnt||0),collect_cnt:Number(o?.collect_cnt||0),comment_cnt:Number(e.comment_count??o?.comment_cnt??0),like_cnt:Number(o?.like_cnt||0),share_cnt:Number(o?.share_cnt||0),dislike_cnt:Number(o?.dislike_cnt||0)},type:e.type??e.content_type,author:{avatar:``,user_id:``,nick_name:``,user_name:``,is_verified:!1}};if(a.length===0)return{seriesTitle:l.name,seriesList:[],contents:[{...l,links:[]}]};let u=a.map((e,t)=>{let r=e.id||`${i||`episode`}-${t+1}`,o=n(t+1),s=[e,...a.filter(t=>t.id!==e.id)];return{...l,id:r,mid:i,episode_name:o,links:s}});return{seriesTitle:l.name,seriesList:a,contents:u}}function x({params:y,initialContents:x}){let S=v(`components.pages.feedSeries`),C=v(`components.common.seriesEpisodes`),{locale:w,seriesId:T,episodeNum:E=`1`}=y,{userInfo:D,isLogin:O}=n(),{followIds:ie,setFollowIds:ae}=t(),k=p(()=>x??[],[x]),[A,j]=m({}),{data:oe}=o([s.CHANNEL],()=>r()),se=e(oe?.data),M=p(()=>`feed-series:${w||`default`}:${T}`,[w,T]),ce=p(()=>{let e=Number.parseInt(E??`1`,10);return Number.isNaN(e)?0:Math.max(0,e-1)},[E]),[N,le]=c(`${M}-active-index`,ce),[ue,P]=c(`${M}-user-interacted`,!1),[de,fe]=c(`${M}-series-title-toggle`,!1),[F,I]=m(!1),L=re(null),[R,z]=m(0),B=g(`div`,{ref:L,className:`fixed top-0 left-0 right-0 z-40`,children:g(d,{data:{list:se}})});ne(()=>{let e=L.current;if(!e)return;let t=()=>{z(Math.max(0,Math.round(e.getBoundingClientRect().height)))};t();let n=new ResizeObserver(()=>t());return n.observe(e),()=>{n.disconnect()}},[]);let{data:V,isFetching:H}=o(p(()=>[`feed-series-detail`,T],[T]),async()=>T?await i({id:T}):null,{enabled:!!T&&k.length===0}),U=p(()=>V?.data?.video,[V]),W=p(()=>U?b(U,T,e=>C(`episodeLabel`,{episode:e})):null,[U,T,C]),G=p(()=>k.length>0?k:W?.contents??[],[W?.contents,k]),K=p(()=>Object.keys(A).length===0?G:G.map(e=>{let t=A[e.id];return t?{...e,...t,static:t.static?{...e.static,...t.static}:e.static,author:t.author?{...e.author,...t.author}:e.author}:e}),[G,A]),q=W?.seriesTitle??(k[0]?.name||``),J=W?.seriesList??[],{data:Y}=o(p(()=>[`feed-series-interactions`,T,O],[O,T]),async()=>await l([T],1),{enabled:!!O&&!!T}),X=p(()=>Y?.interaction_list,[Y]);te(()=>{if(!X||X.length===0)return;let e=X.find(e=>e.content_id===T)||X[0];e&&j(t=>{let n=!1,r={...t};for(let t of G){let i=r[t.id],a={...i,is_liked:e.is_liked||!1,is_dislike:e.is_disliked??e.is_dislike??!1,is_collected:e.is_collected||!1,is_followed:e.is_followed||!1};(!i||i.is_liked!==a.is_liked||i.is_dislike!==a.is_dislike||i.is_collected!==a.is_collected||i.is_followed!==a.is_followed)&&(n=!0,r[t.id]=a)}return n?r:t})},[X,G,T]);let Z=f(({})=>{},[]),pe=f(()=>{a.getState().open()},[]),me=f((e,t)=>{let n=t.is_liked!==void 0||t.is_dislike!==void 0||t.is_collected!==void 0||t.is_followed!==void 0||t.static?.like_cnt!==void 0||t.static?.dislike_cnt!==void 0||t.static?.collect_cnt!==void 0||t.static?.comment_cnt!==void 0;j(r=>{if(!n)return{...r,[e]:{...r[e],...t,static:t.static?{...r[e]?.static,...t.static}:r[e]?.static,author:t.author?{...r[e]?.author,...t.author}:r[e]?.author}};let i=!1,a={...r};for(let e of G){let n=e.id,r=a[n],o=t.static?{...r?.static||{},...t.static}:r?.static,s=t.author?{...r?.author||{},...t.author}:r?.author,c={...r,...t,static:o,author:s},l=!1;if(t.is_liked!==void 0&&r?.is_liked!==t.is_liked&&(l=!0),t.is_dislike!==void 0&&r?.is_dislike!==t.is_dislike&&(l=!0),t.is_collected!==void 0&&r?.is_collected!==t.is_collected&&(l=!0),t.is_followed!==void 0&&r?.is_followed!==t.is_followed&&(l=!0),t.static){let e=r?.static||{};t.static.like_cnt!==void 0&&e.like_cnt!==t.static.like_cnt&&(l=!0),t.static.dislike_cnt!==void 0&&e.dislike_cnt!==t.static.dislike_cnt&&(l=!0),t.static.collect_cnt!==void 0&&e.collect_cnt!==t.static.collect_cnt&&(l=!0),t.static.comment_cnt!==void 0&&e.comment_cnt!==t.static.comment_cnt&&(l=!0)}if(t.author&&r?.author){let e=r.author,n=t.author;for(let t of Object.keys(n))if(e?.[t]!==n[t]){l=!0;break}}l&&(i=!0,a[n]=c)}return i?a:r})},[G]),Q=f((e,t)=>{le(e),Z({episodeId:T,episodeNum:e+1,mode:t===`jump`?`replace`:`push`})},[Z,T]),he=f(()=>({showSeriesButton:!0,seriesTitle:q,seriesText:`${N+1}/${J.length||K.length}`,onSeriesClick:()=>I(!0)}),[N,K.length,J.length,q]),$=p(()=>K[N]?.links?.[0]?.id||``,[N,K]);return T?H&&G.length===0?_(h,{children:[B,_(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:[S(`feedSeriesClient.episodeLoading`),`...`]})]}):!H&&G.length===0?_(h,{children:[B,g(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:S(`feedSeriesClient.noEpisodes`)})]}):_(h,{children:[B,g(u,{items:K,activeIndex:N,top:R,videoConfig:{loop:!1,autoNext:!0},userInteracted:ue,onUserInteracted:()=>P(!0),onActiveIndexChange:Q,onDataUpdate:me,getNavigationInfo:he,currentUserId:D.userId||void 0,followIds:ie,onFollowIdsChange:ae,commentContentId:T,onRequireLogin:pe,activeEpisodeId:$}),F&&g(ee,{mode:`selector`,variant:`sheet`,open:F,title:S(`feedSeriesClient.episodeSelectorTitle`),videoTitle:U?.name,updateStatus:U?.update_status,seriesList:J,activeEpisodeId:$,showEpisodeTitle:de,onToggleTitle:fe,onClose:()=>I(!1),onSelectEpisode:(e,t)=>{I(!1),Q(Math.max(0,t-1),`jump`)}})]}):_(h,{children:[B,_(`div`,{className:`flex h-screen w-full items-center justify-center bg-black text-white/80`,children:[S(`feedSeriesClient.missingEpisode`),` `,`ID`]})]})}export{x as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import 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{usePathname as u}from"next/navigation";import{useTranslations as d}from"next-intl";function f({blockId:f,seriesId:p,initialContents:m,videoConfig:h,hasBottom:g,pageSize:_=6,initialActiveIndex:v=0,items:y,onSwipeTo:b,onEpisodeNavigate:x,onGoToEpisode:S,currentUserId:C,followIds:w,onFollowIdsChange:T,onRequireLogin:E}){let D=d(`components.pages.fullscreenFeed`),O=u(),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};
|
|
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{usePathname as u}from"next/navigation";import{useTranslations as d}from"next-intl";function f({blockId:f,seriesId:p,initialContents:m,videoConfig:h,hasBottom:g,pageSize:_=6,initialActiveIndex:v=0,items:y,onSwipeTo:b,onEpisodeNavigate:x,onGoToEpisode:S,currentUserId:C,followIds:w,onFollowIdsChange:T,onRequireLogin:E}){let D=d(`components.pages.fullscreenFeed`),O=u(),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`),videoTitle:M.seriesMeta.seriesTitle,mode:`selector`,variant:`sheet`,open:M.isSeriesSelectorOpen,seriesList:M.seriesMeta.seriesList,activeEpisodeId:M.activeEpisodeId,onClose:M.closeSeriesSelector,onSelectEpisode:M.onSelectEpisode})]})}export{f as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{getPostDetailPagePath as e}from"../../../../utils/tools.mjs";const t=[{label:`综合`,value:1},{label:`最新`,value:2},{label:`最热`,value:3}];function n(e){return!Number.isFinite(e)||e<=0?``:e>=1e8?`${(e/1e8).toFixed(1).replace(/\.0$/,``)}亿热度`:e>=1e4?`${(e/1e4).toFixed(1).replace(/\.0$/,``)}万热度`:`${Math.floor(e)}热度`}function r(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t>10&&t<=100?t/10:Math.min(t,10)}function i(e){return String(e.img_type??``).trim().toLowerCase()===`long`?`short`:`tall`}function a(e){let t=[],n=[],r=0,i=0;return e.forEach(e=>{let a=(e.cardKind===`short`?
|
|
2
|
+
import{getPostDetailPagePath as e}from"../../../../utils/tools.mjs";const t=[{label:`综合`,value:1},{label:`最新`,value:2},{label:`最热`,value:3}];function n(e){return!Number.isFinite(e)||e<=0?``:e>=1e8?`${(e/1e8).toFixed(1).replace(/\.0$/,``)}亿热度`:e>=1e4?`${(e/1e4).toFixed(1).replace(/\.0$/,``)}万热度`:`${Math.floor(e)}热度`}function r(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t>10&&t<=100?t/10:Math.min(t,10)}function i(e){return String(e.img_type??``).trim().toLowerCase()===`long`?`short`:`tall`}function a(e){let t=[],n=[],r=0,i=0;return e.forEach(e=>{let a=(e.cardKind===`short`?142:216)+16;if(r<=i){t.push(e),r+=a;return}n.push(e),i+=a}),{left:t,right:n}}function o(e){return String(e.name||``).trim()}function s(e){return e.img_y||e.img_x||``}function c(e){return String(e.group_name||e.description||``).trim()}function l(t){let n=String(t.video_id||``).trim();return n?e({id:n,contentType:0}):`#`}function u(e){return a(e.filter(e=>String(e.video_id||``).trim()).map((e,t)=>({key:`${e.video_id??`video`}-${t}`,sourceIndex:t,href:l(e),cardKind:i(e),coverUrl:s(e),title:o(e),metaPrimaryText:c(e),heatText:n(Number(e.play_count||0)),score:r(e.score)})))}function d(e){for(let t of e)if(typeof t==`string`&&t.trim())return t.trim();return``}function f(e){return d([e.nick_name,e.nickname,e.display_id,e.user_id])}function p(e){return d([e.signature,e.description,e.text,e.introduce,e.bio])}function m(e){let t=Number(e||0);return!Number.isFinite(t)||t<=0?`0`:t>=1e8?`${(t/1e8).toFixed(1).replace(/\.0$/,``)}亿`:t>=1e4?`${(t/1e4).toFixed(1).replace(/\.0$/,``)}万`:`${Math.floor(t)}`}export{t as SEARCH_RESULT_SORT_OPTIONS,u as buildSearchVideoWaterfallColumns,m as formatSearchFollowerCount,p as resolveSearchUserDescription,f as resolveSearchUserName};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{gContentGetRecommendVideoList as e}from"../../../service/generated/client.mjs";import{Box as t}from"../../ui/box.mjs";import{InfiniteScroll as n}from"../../ui/infinite-scroll.mjs";import{Skeleton as r}from"../../ui/skeleton.mjs";import{usePaginated as i}from"../../../hooks/query/use-query.mjs";import{getPostDetailPagePath as a}from"../../../utils/tools.mjs";import o from"../../../assets/icons/common/right_arrow_thin.mjs";import{WaterfallRecommend as s}from"../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{SearchResultEmpty as c}from"./search-empty.mjs";import{memo as l,useCallback as u,useMemo as d}from"react";import{jsx as f,jsxs as p}from"react/jsx-runtime";import{useTranslations as m}from"next-intl";function h(){return p(t,{className:`flex w-full justify-between gap-[16px] px-[16px]`,children:[p(t,{className:`flex w-[171px] shrink-0 flex-col gap-[16px]`,children:[f(r,{className:`h-[
|
|
2
|
+
"use client";import{gContentGetRecommendVideoList as e}from"../../../service/generated/client.mjs";import{Box as t}from"../../ui/box.mjs";import{InfiniteScroll as n}from"../../ui/infinite-scroll.mjs";import{Skeleton as r}from"../../ui/skeleton.mjs";import{usePaginated as i}from"../../../hooks/query/use-query.mjs";import{getPostDetailPagePath as a}from"../../../utils/tools.mjs";import o from"../../../assets/icons/common/right_arrow_thin.mjs";import{WaterfallRecommend as s}from"../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{SearchResultEmpty as c}from"./search-empty.mjs";import{memo as l,useCallback as u,useMemo as d}from"react";import{jsx as f,jsxs as p}from"react/jsx-runtime";import{useTranslations as m}from"next-intl";function h(){return p(t,{className:`flex w-full justify-between gap-[16px] px-[16px]`,children:[p(t,{className:`flex w-[171px] shrink-0 flex-col gap-[16px]`,children:[f(r,{className:`h-[216px] w-[171px] rounded-[8px] bg-white/8`}),f(r,{className:`h-[142px] w-[171px] rounded-[8px] bg-white/8`}),f(r,{className:`h-[216px] w-[171px] rounded-[8px] bg-white/8`})]}),p(t,{className:`flex w-[171px] shrink-0 flex-col gap-[16px]`,children:[f(r,{className:`h-[142px] w-[171px] rounded-[8px] bg-white/8`}),f(r,{className:`h-[216px] w-[171px] rounded-[8px] bg-white/8`}),f(r,{className:`h-[142px] w-[171px] rounded-[8px] bg-white/8`})]})]})}function g(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t>10&&t<=100?t/10:Math.min(t,10)}function _(e){return String(e.img_type??``).trim().toLowerCase()===`long`?`short`:`tall`}function v(e){let t=String(e.source_tags||``).trim();if(t)return t.split(`,`)[0]?.trim()||void 0}function y(e){let t=Number(e.episode_count||0);if(!t||t<=0)return;let n=Number(e.update_status??-1);return n===1?`${t}集全`:n===0?`更新中`:`${t}集`}function b(e){let t=Number(e||0);return!Number.isFinite(t)||t<=0?``:t>=1e4?`${(t/1e4).toFixed(t>=1e5?0:1).replace(/\.0$/,``)}W`:t>=1e3?`${(t/1e3).toFixed(1).replace(/\.0$/,``)}K`:`${Math.floor(t)}`}function x(e){let t=e.filter(e=>String(e.video_id||``).trim()).map((e,t)=>{let n=String(e.video_id||``).trim(),r=String(e.name||``).trim(),i=String(e.group_name||e.description||``).trim();return{key:`${n}-${t}`,sourceIndex:t,href:n?a({id:n,contentType:0}):`#`,cardKind:_(e),coverUrl:String(e.img_y||e.img_x||``).trim(),title:r,badgeText:v(e),episodeText:y(e),metaPrimaryText:i||void 0,heatText:b(e.play_count)||void 0,score:g(e.score)}}),n=[],r=[],i=0,o=0;return t.forEach(e=>{let t=(e.cardKind===`short`?142:216)+16;i<=o?(n.push(e),i+=t):(r.push(e),o+=t)}),{left:n,right:r}}function S(){return f(o,{className:`size-[16px]`})}const C=l(({list:e,title:t,onMoreClick:n,sectionClassName:r=`w-full`})=>{let i=d(()=>x(e),[e]);return e.length===0?null:f(s,{title:t||``,columns:i,sectionClassName:r,titleClassName:`min-w-0 flex-1 text-[18px] leading-[24px] font-medium line-clamp-1 text-white`,moreLinkClassName:`ml-[8px] flex size-[24px] shrink-0 items-center justify-center text-white/50`,moreIcon:n?f(S,{}):void 0,onMoreClick:n})});C.displayName=`SearchVideoWaterfall`;const w=l(({inputVal:r,sort:a,refreshVersion:o})=>{let s=m(`components.pages.search.searchResult`),l=u(async t=>await e({data_type:2,extra_params:JSON.stringify({type:3,keywords:r,sort:a}),page:t||1,page_size:20}),[r,a]),g=i({key:d(()=>[`search-result`,`video`,r,a,o],[r,o,a]),initialPageParam:1,async queryFn(e){return(await l(e))?.data?.videos??{has_more:!1,total:0,list:[]}},getNextPageParam(e,t){if(e.has_more)return t.length+1}}),_=d(()=>(g.data?.pages??[]).flatMap(e=>e.list??[]),[g.data?.pages]),v=!!((g.isPending||g.isFetching)&&_.length===0),y=u(async()=>{try{await g.fetchNextPage()}catch(e){console.error(`获取视频搜索结果失败`,e)}},[g]);return v?f(h,{}):_.length===0?f(c,{text:s(`searchVideoInfo.noRelevantContent`)}):p(t,{className:`w-full pb-[24px]`,children:[f(C,{list:_}),g.hasNextPage&&f(n,{loadMore:async e=>y(),hasMore:g.hasNextPage,className:`w-full`})]})});w.displayName=`SearchVideoInfo`;export{C as SearchVideoWaterfall,w 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{hashPassword as n}from"../../../../utils/common.mjs";import{useUserStore as r}from"../../../../store/modules/user-store.mjs";import{pUserResetPassword as i,pUserSendResetPasswordEmailCode as ee,pUserVerifyResetPasswordEmailCode as te}from"../../../../service/generated/client.mjs";import{getPasswordValidationErrorText as ne,validatePasswordPair as a}from"../../../../utils/password-validator.mjs";import{Box as o}from"../../../ui/box.mjs";import{Drawer as re,DrawerContent as ie,DrawerDescription as ae,DrawerHeader as s,DrawerTitle as c}from"../../../ui/drawer.mjs";import{Text as l}from"../../../ui/text.mjs";import u from"../../../ui/legacy/button.mjs";import{HeaderNav as oe}from"../../../common/header-nav/client.mjs";import{EyeIcon as d}from"../../../../assets/icons/eye-icon.mjs";import{EyeOffIcon as f}from"../../../../assets/icons/eye-off-icon.mjs";import p from"../../../ui/legacy/input.mjs";import{useEffect as m,useMemo as h,useRef as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{toast as b}from"sonner";import{useTranslations as se}from"next-intl";function x(e){let[t,n]=e.split(`@`);return!t||!n?e:`${t.slice(0,3)}***${t.length>3?t.slice(-1):``}@${n}`}function S(S){let C=se(`components.pages.settings.components`),{open:ce,onOpenChange:w}=S,T=r(e=>e.userInfo),[E,D]=_([,,,,,,].fill(``)),[O,k]=_(0),A=g(null),j=E.includes(``),[M,N]=_(``),P=g(null),[F,I]=_(60),[L,R]=_(!1),z=h(()=>x(T?.email||``),[T?.email]);async function B(){if(L)return;let e=b.loading(C(`resetPasswordDrawer.sending`));try{let t=await ee({user_id:T?.user_id});t.code===0?(b.success(C(`resetPasswordDrawer.codeSentSuccess`),{id:e}),R(!0),I(60),N(``)):b.error(t.message||C(`resetPasswordDrawer.sendFailed`),{id:e})}catch(t){console.error(t),b.error(C(`resetPasswordDrawer.sendFailed`),{id:e})}}function V(){W(e=>e===1?e:e+1)}async function H(){let e=b.loading(C(`resetPasswordDrawer.verifying`));try{N(``);let t=await te({user_id:T?.user_id,email_code:E.join(``)});t.code===0?(b.success(C(`resetPasswordDrawer.verifySuccess`),{id:e}),V()):(N(t.message||C(`resetPasswordDrawer.verifyFailed`)),b.error(t.message||C(`resetPasswordDrawer.verifyFailed`),{id:e}))}catch(t){console.error(t),N(C(`resetPasswordDrawer.verifyFailed`)),b.error(C(`resetPasswordDrawer.verifyFailed`),{id:e})}}m(()=>{if(L)return P.current=setInterval(()=>{I(e=>e<=1?(P.current&&clearInterval(P.current),R(!1),60):e-1)},1e3),()=>{P.current&&clearInterval(P.current)}},[L]);let[U,W]=_(0);m(()=>{U===0&&A.current?.focus()},[U]);let[G,K]=_({password:``,confirmPassword:``}),[q,J]=_(!1),[Y,le]=_(!1),[X,ue]=_(!1),Z=h(()=>a(G.password,G.confirmPassword),[G.password,G.confirmPassword]),Q=h(()=>ne(Z),[Z]),$=h(()=>q||G.password.length===0||G.confirmPassword.length===0||Z.type!==`none`,[q,G.password.length,G.confirmPassword.length,Z.type]);async function de(){if($)return;let e=b.loading(C(`resetPasswordDrawer.submitting`));try{J(!0);let t=await i({user_id:T?.user_id,password:n(G.password)});t.code===0?(b.success(C(`resetPasswordDrawer.passwordResetSuccess`),{id:e}),K({password:``,confirmPassword:``}),D([,,,,,,].fill(``)),k(0),w(!1)):b.error(t.message||C(`resetPasswordDrawer.resetFailed`),{id:e})}catch(t){console.error(t),b.error(C(`resetPasswordDrawer.resetFailed`),{id:e})}finally{J(!1)}}function fe(e){let t=e.target.value.replace(/\D/g,``);if(t.length===0)return;let n=[...E],r=t.split(``),i=O;for(let e of r){if(i>=6)break;n[i]=e,i+=1}D(n),k(Math.min(i,5)),M&&N(``)}function pe(e){if(e.key===`Backspace`){e.preventDefault();let t=[...E];t[O]?t[O]=``:O>0&&(t[O-1]=``,k(O-1)),D(t),M&&N(``);return}e.key===`ArrowLeft`&&O>0&&k(O-1),e.key===`ArrowRight`&&O<5&&k(O+1)}function me(e){k(e),A.current?.focus()}let he=y(o,{className:`p-6
|
|
2
|
+
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{Button as t}from"../../../ui/button.mjs";import{hashPassword as n}from"../../../../utils/common.mjs";import{useUserStore as r}from"../../../../store/modules/user-store.mjs";import{pUserResetPassword as i,pUserSendResetPasswordEmailCode as ee,pUserVerifyResetPasswordEmailCode as te}from"../../../../service/generated/client.mjs";import{getPasswordValidationErrorText as ne,validatePasswordPair as a}from"../../../../utils/password-validator.mjs";import{Box as o}from"../../../ui/box.mjs";import{Drawer as re,DrawerContent as ie,DrawerDescription as ae,DrawerHeader as s,DrawerTitle as c}from"../../../ui/drawer.mjs";import{Text as l}from"../../../ui/text.mjs";import u from"../../../ui/legacy/button.mjs";import{HeaderNav as oe}from"../../../common/header-nav/client.mjs";import{EyeIcon as d}from"../../../../assets/icons/eye-icon.mjs";import{EyeOffIcon as f}from"../../../../assets/icons/eye-off-icon.mjs";import p from"../../../ui/legacy/input.mjs";import{useEffect as m,useMemo as h,useRef as g,useState as _}from"react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{toast as b}from"sonner";import{useTranslations as se}from"next-intl";function x(e){let[t,n]=e.split(`@`);return!t||!n?e:`${t.slice(0,3)}***${t.length>3?t.slice(-1):``}@${n}`}function S(S){let C=se(`components.pages.settings.components`),{open:ce,onOpenChange:w}=S,T=r(e=>e.userInfo),[E,D]=_([,,,,,,].fill(``)),[O,k]=_(0),A=g(null),j=E.includes(``),[M,N]=_(``),P=g(null),[F,I]=_(60),[L,R]=_(!1),z=h(()=>x(T?.email||``),[T?.email]);async function B(){if(L)return;let e=b.loading(C(`resetPasswordDrawer.sending`));try{let t=await ee({user_id:T?.user_id});t.code===0?(b.success(C(`resetPasswordDrawer.codeSentSuccess`),{id:e}),R(!0),I(60),N(``)):b.error(t.message||C(`resetPasswordDrawer.sendFailed`),{id:e})}catch(t){console.error(t),b.error(C(`resetPasswordDrawer.sendFailed`),{id:e})}}function V(){W(e=>e===1?e:e+1)}async function H(){let e=b.loading(C(`resetPasswordDrawer.verifying`));try{N(``);let t=await te({user_id:T?.user_id,email_code:E.join(``)});t.code===0?(b.success(C(`resetPasswordDrawer.verifySuccess`),{id:e}),V()):(N(t.message||C(`resetPasswordDrawer.verifyFailed`)),b.error(t.message||C(`resetPasswordDrawer.verifyFailed`),{id:e}))}catch(t){console.error(t),N(C(`resetPasswordDrawer.verifyFailed`)),b.error(C(`resetPasswordDrawer.verifyFailed`),{id:e})}}m(()=>{if(L)return P.current=setInterval(()=>{I(e=>e<=1?(P.current&&clearInterval(P.current),R(!1),60):e-1)},1e3),()=>{P.current&&clearInterval(P.current)}},[L]);let[U,W]=_(0);m(()=>{U===0&&A.current?.focus()},[U]);let[G,K]=_({password:``,confirmPassword:``}),[q,J]=_(!1),[Y,le]=_(!1),[X,ue]=_(!1),Z=h(()=>a(G.password,G.confirmPassword),[G.password,G.confirmPassword]),Q=h(()=>ne(Z),[Z]),$=h(()=>q||G.password.length===0||G.confirmPassword.length===0||Z.type!==`none`,[q,G.password.length,G.confirmPassword.length,Z.type]);async function de(){if($)return;let e=b.loading(C(`resetPasswordDrawer.submitting`));try{J(!0);let t=await i({user_id:T?.user_id,password:n(G.password)});t.code===0?(b.success(C(`resetPasswordDrawer.passwordResetSuccess`),{id:e}),K({password:``,confirmPassword:``}),D([,,,,,,].fill(``)),k(0),w(!1)):b.error(t.message||C(`resetPasswordDrawer.resetFailed`),{id:e})}catch(t){console.error(t),b.error(C(`resetPasswordDrawer.resetFailed`),{id:e})}finally{J(!1)}}function fe(e){let t=e.target.value.replace(/\D/g,``);if(t.length===0)return;let n=[...E],r=t.split(``),i=O;for(let e of r){if(i>=6)break;n[i]=e,i+=1}D(n),k(Math.min(i,5)),M&&N(``)}function pe(e){if(e.key===`Backspace`){e.preventDefault();let t=[...E];t[O]?t[O]=``:O>0&&(t[O-1]=``,k(O-1)),D(t),M&&N(``);return}e.key===`ArrowLeft`&&O>0&&k(O-1),e.key===`ArrowRight`&&O<5&&k(O+1)}function me(e){k(e),A.current?.focus()}let he=y(o,{className:`p-6 grow bg-[var(--color-surface-panel-dark)]`,children:[y(o,{className:`space-y-[12px]`,children:[v(l,{className:`text-[24px] leading-[32px] font-bold text-text1`,children:C(`resetPasswordDrawer.verifyTitle`)}),v(o,{className:`flex items-center justify-between gap-[8px]`,children:y(l,{className:`min-w-0 flex-1 truncate text-[12px] leading-[16px] text-text2`,children:[C(`resetPasswordDrawer.boundEmailNotice`),v(l,{className:`dark:text-white text-white`,children:z}),C(`resetPasswordDrawer.verifyHint`)]})})]}),y(o,{className:`mt-[28px]`,children:[y(o,{className:`relative`,children:[v(`input`,{ref:A,type:`text`,inputMode:`numeric`,pattern:`[0-9]*`,value:``,onChange:fe,onKeyDown:pe,className:`absolute inset-0 h-full w-full opacity-0 pointer-events-none caret-transparent`,autoComplete:`one-time-code`}),v(o,{className:`flex justify-between gap-[10px]`,children:E.map((t,n)=>v(o,{onClick:()=>me(n),className:e(`flex h-[48px] flex-1 cursor-pointer items-center justify-center rounded-[6px] transition-all duration-200`,M?`border-[0.5px] border-[var(--color-verification-error)] bg-white/10`:e(`border-2`,n===O?`border-theme3 bg-theme3/10`:`border-transparent bg-line1`)),children:v(l,{className:e(`select-none text-[24px] font-semibold leading-none`,M?`text-[var(--color-verification-error)]`:`text-text1`),children:t})},`${n}-${t||`empty`}`))})]}),v(o,{className:`min-h-[22px] pt-[8px]`,children:v(l,{className:`text-[14px] leading-[24px] text-[var(--color-verification-error)]`,children:M})}),v(u,{type:`button`,onClick:H,disabled:j,className:`mt-[44px] h-[48px] w-full !rounded-[8px] !border-0 !px-0 !py-0 text-[16px] font-normal leading-[24px] text-white disabled:opacity-100 active:opacity-90 ${j?`!text-white/60`:``}`,style:{background:j?`linear-gradient(90deg, rgba(151, 86, 227, 0.45) 0%, rgba(108, 67, 238, 0.45) 100%)`:`var(--gradient-action-button)`},children:`提交`}),L?v(o,{className:`mt-[16px] w-full text-center text-[15px] leading-[24px] text-[#9DA3AC]`,children:C(`resetPasswordDrawer.resendCountdown`,{seconds:F})}):v(t,{variant:`link`,onClick:B,className:`mt-[16px] h-auto w-full justify-center !rounded-none bg-transparent !px-0 !py-0 text-[14px] leading-[24px] font-medium no-underline hover:no-underline`,style:{backgroundImage:`var(--gradient-action-button)`,backgroundClip:`text`,WebkitBackgroundClip:`text`,color:`transparent`},children:C(`resetPasswordDrawer.sendCode`)})]})]}),ge=y(o,{className:`flex min-h-0 grow flex-col bg-[var(--color-surface-panel-dark)]`,children:[y(o,{className:`px-[32px] pt-[15px]`,children:[v(l,{className:`text-[16px] leading-[20px] text-text1`,children:C(`resetPasswordDrawer.setNewPasswordHint`)}),y(o,{className:`mt-[16px]`,children:[y(o,{className:`relative flex h-[48px] items-center rounded-[8px] border bg-white/10 px-[16px] ${Q?`border-theme5`:`border-transparent`}`,children:[v(p,{value:G.password,onChange:e=>K(t=>({...t,password:e})),placeholder:C(`resetPasswordDrawer.passwordPlaceholder`),type:Y?`text`:`password`,autoComplete:`new-password`,autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,"data-lpignore":`true`,"data-1p-ignore":`true`,"data-form-type":`other`,className:`rounded-none bg-transparent !px-0 !py-0 text-[14px] leading-[20px] text-text1 placeholder:text-white/60`}),v(`button`,{type:`button`,onClick:()=>le(!Y),className:`absolute right-[16px] top-1/2 -translate-y-1/2 text-white/50 transition-colors hover:text-white/80`,children:v(Y?d:f,{className:`h-[24px] w-[24px]`})})]}),y(o,{className:`mt-[16px] relative flex h-[48px] items-center rounded-[8px] border bg-white/10 px-[16px] ${Z.type===`not-match`?`border-theme5`:`border-transparent`}`,children:[v(p,{value:G.confirmPassword,onChange:e=>K(t=>({...t,confirmPassword:e})),placeholder:C(`resetPasswordDrawer.confirmPasswordPlaceholder`),type:X?`text`:`password`,autoComplete:`new-password`,autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,"data-lpignore":`true`,"data-1p-ignore":`true`,"data-form-type":`other`,className:`rounded-none bg-transparent !px-0 !py-0 text-[14px] leading-[20px] text-text1 placeholder:text-white/60`}),v(`button`,{type:`button`,onClick:()=>ue(!X),className:`absolute right-[16px] top-1/2 -translate-y-1/2 text-white/50 transition-colors hover:text-white/80`,children:v(X?d:f,{className:`h-[24px] w-[24px]`})})]}),Q?v(o,{className:`mt-[12px]`,children:v(l,{className:`text-[12px] leading-[16px] text-theme5`,children:Q})}):null]})]}),v(o,{className:`mt-auto bg-[rgba(5,1,15,0.9)] px-[16px] pt-[8px] pb-[calc(env(safe-area-inset-bottom)+8px)] backdrop-blur-[4px]`,children:v(u,{onClick:de,disabled:$,className:`h-[48px] w-full rounded-[8px] bg-[linear-gradient(90deg,#A656E3_10%,#6C43EE_100%)] px-0 py-0 text-[16px] leading-[24px] font-normal text-white disabled:bg-[linear-gradient(90deg,rgba(166,86,227,0.45)_10%,rgba(108,67,238,0.45)_100%)] disabled:text-white/60 active:opacity-90`,children:C(q?`resetPasswordDrawer.submitting`:`resetPasswordDrawer.resetPassword`)})})]});return y(re,{open:ce,onOpenChange:w,direction:`right`,handleOnly:!0,children:[y(s,{className:`hidden`,children:[v(c,{children:C(`resetPasswordDrawer.title`)}),v(ae,{children:C(`resetPasswordDrawer.title`)})]}),y(ie,{className:`!w-full`,children:[v(oe,{className:`!bg-[var(--color-surface-panel-dark)] !border-transparent`,onBack:()=>w(!1)}),U===0&&he,U===1&&ge]})]})}export{S as ResetPasswordDrawer};
|
|
@@ -6,7 +6,7 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
|
|
|
6
6
|
//#region components/ui/badge.d.ts
|
|
7
7
|
/** badgeVariants 工具定义。 */
|
|
8
8
|
declare const badgeVariants: (props?: ({
|
|
9
|
-
variant?: "
|
|
9
|
+
variant?: "default" | "link" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
10
10
|
} & class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
11
11
|
/** Badge 组件。 */
|
|
12
12
|
declare function Badge({
|
|
@@ -7,8 +7,8 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
|
|
|
7
7
|
//#region components/ui/button.d.ts
|
|
8
8
|
/** buttonVariants 工具定义。 */
|
|
9
9
|
declare const buttonVariants: (props?: ({
|
|
10
|
-
variant?: "
|
|
11
|
-
size?: "
|
|
10
|
+
variant?: "default" | "link" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
11
|
+
size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
12
12
|
} & class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
13
13
|
/** Button 组件属性。 */
|
|
14
14
|
type ButtonProps = Button.Props & VariantProps<typeof buttonVariants> & {
|
|
@@ -34,7 +34,7 @@ type EmptyStateProps = React.ComponentProps<'div'> & {
|
|
|
34
34
|
};
|
|
35
35
|
/** emptyMediaVariants 工具定义。 */
|
|
36
36
|
declare const emptyMediaVariants: (props?: ({
|
|
37
|
-
variant?: "
|
|
37
|
+
variant?: "default" | "icon" | null | undefined;
|
|
38
38
|
} & class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
39
39
|
/** EmptyMedia 组件。 */
|
|
40
40
|
declare function EmptyMedia({
|
|
@@ -82,7 +82,7 @@ declare function Item({
|
|
|
82
82
|
}: ItemProps): React.ReactElement;
|
|
83
83
|
/** itemMediaVariants 工具定义。 */
|
|
84
84
|
declare const itemMediaVariants: (props?: ({
|
|
85
|
-
variant?: "
|
|
85
|
+
variant?: "default" | "icon" | "image" | null | undefined;
|
|
86
86
|
} & class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
87
87
|
/** ItemMedia 组件。 */
|
|
88
88
|
declare function ItemMedia({
|
package/dist/hooks.d.mts
CHANGED
|
@@ -7,11 +7,10 @@ import { UseBrowseReportOptions, useBrowseReport } from "./hooks/use-browse-repo
|
|
|
7
7
|
import { useGridFirstRowHeight, useSingleFirstRowHeight, useWaterfallFirstRowHeight } from "./hooks/use-first-row-height.mjs";
|
|
8
8
|
import { useFollow } from "./hooks/use-follow.mjs";
|
|
9
9
|
import { useFullscreenGestures } from "./hooks/use-fullscreen-gestures.mjs";
|
|
10
|
-
import { useIsClient } from "./hooks/use-is-client.mjs";
|
|
11
10
|
import { useKeyboardOpen } from "./hooks/use-keyboard-open.mjs";
|
|
12
11
|
import { LikeableItem, useLikeDislike } from "./hooks/use-like-dislike.mjs";
|
|
13
12
|
import { useMinDurationLoading } from "./hooks/use-min-duration-loading.mjs";
|
|
14
13
|
import { useSearchHistory } from "./hooks/use-search-history.mjs";
|
|
15
14
|
import { useSticky } from "./hooks/use-sticky.mjs";
|
|
16
15
|
import { useKeepAliveEffect, useKeepAliveState } from "./components/common/keep-scroll-position/index.mjs";
|
|
17
|
-
export { AuthFields, HydrationBoundary, IMAGE_TEXT_RECOMMEND_FIXED_BATCH_SIZE, ImageTextRecommendAnyVideo, LikeableItem, PrefetchInfiniteItem, PrefetchItem, PrefetchQueryItem, UseBrowseReportOptions, buildImageTextRecommendChosenTags, buildImageTextRecommendRemoteMap, buildImageTextRecommendSmartPicked, getImageTextRecommendFixedIds, getImageTextRecommendLayoutTags, resolveImageTextRecommendVideoId, useAuth, useBrowseReport, useCloseLogin, useDeleteRequest, useExpireTime, useFollow, useFullscreenGestures, useGridFirstRowHeight,
|
|
16
|
+
export { AuthFields, HydrationBoundary, IMAGE_TEXT_RECOMMEND_FIXED_BATCH_SIZE, ImageTextRecommendAnyVideo, LikeableItem, PrefetchInfiniteItem, PrefetchItem, PrefetchQueryItem, UseBrowseReportOptions, buildImageTextRecommendChosenTags, buildImageTextRecommendRemoteMap, buildImageTextRecommendSmartPicked, getImageTextRecommendFixedIds, getImageTextRecommendLayoutTags, resolveImageTextRecommendVideoId, useAuth, useBrowseReport, useCloseLogin, useDeleteRequest, useExpireTime, useFollow, useFullscreenGestures, useGridFirstRowHeight, useIsLoggedIn, useKeepAliveEffect, useKeepAliveState, useKeyboardOpen, useLikeDislike, useLoginModalOpen, useLogout, useMinDurationLoading, useMutation, useOpenLogin, useOpenLoginAsync, useOpenResetPassword, usePaginated, usePrefetchQuery, useRefetchQuery, useRequest, useRequireLogin, useSearchHistory, useSetAuthFields, useSingleFirstRowHeight, useSticky, useToken, useUpdateRequest, useUserId, useUserInfo, useWaterfallFirstRowHeight };
|
package/dist/hooks.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{IMAGE_TEXT_RECOMMEND_FIXED_BATCH_SIZE as e,buildImageTextRecommendChosenTags as t,buildImageTextRecommendRemoteMap as n,buildImageTextRecommendSmartPicked as r,getImageTextRecommendFixedIds as i,getImageTextRecommendLayoutTags as a,resolveImageTextRecommendVideoId as o}from"./hooks/image-text-recommend.mjs";import{HydrationBoundary as s}from"./hooks/query/hydration-boundary.mjs";import{useDeleteRequest as c,useMutation as l,usePaginated as u,usePrefetchQuery as d,useRefetchQuery as f,useRequest as p,useUpdateRequest as m}from"./hooks/query/use-query.mjs";import{useAuth as h,useCloseLogin as g,useExpireTime as _,useIsLoggedIn as v,useLoginModalOpen as y,useLogout as b,useOpenLogin as x,useOpenLoginAsync as S,useOpenResetPassword as C,useRequireLogin as w,useSetAuthFields as T,useToken as E,useUserId as D,useUserInfo as O}from"./hooks/use-auth.mjs";import{useBrowseReport as k}from"./hooks/use-browse-report.mjs";import{useGridFirstRowHeight as A,useSingleFirstRowHeight as j,useWaterfallFirstRowHeight as M}from"./hooks/use-first-row-height.mjs";import{useFollow as N}from"./hooks/use-follow.mjs";import{useFullscreenGestures as P}from"./hooks/use-fullscreen-gestures.mjs";import{
|
|
2
|
+
import{IMAGE_TEXT_RECOMMEND_FIXED_BATCH_SIZE as e,buildImageTextRecommendChosenTags as t,buildImageTextRecommendRemoteMap as n,buildImageTextRecommendSmartPicked as r,getImageTextRecommendFixedIds as i,getImageTextRecommendLayoutTags as a,resolveImageTextRecommendVideoId as o}from"./hooks/image-text-recommend.mjs";import{HydrationBoundary as s}from"./hooks/query/hydration-boundary.mjs";import{useDeleteRequest as c,useMutation as l,usePaginated as u,usePrefetchQuery as d,useRefetchQuery as f,useRequest as p,useUpdateRequest as m}from"./hooks/query/use-query.mjs";import{useAuth as h,useCloseLogin as g,useExpireTime as _,useIsLoggedIn as v,useLoginModalOpen as y,useLogout as b,useOpenLogin as x,useOpenLoginAsync as S,useOpenResetPassword as C,useRequireLogin as w,useSetAuthFields as T,useToken as E,useUserId as D,useUserInfo as O}from"./hooks/use-auth.mjs";import{useBrowseReport as k}from"./hooks/use-browse-report.mjs";import{useGridFirstRowHeight as A,useSingleFirstRowHeight as j,useWaterfallFirstRowHeight as M}from"./hooks/use-first-row-height.mjs";import{useFollow as N}from"./hooks/use-follow.mjs";import{useFullscreenGestures as P}from"./hooks/use-fullscreen-gestures.mjs";import{useKeyboardOpen as F}from"./hooks/use-keyboard-open.mjs";import{useLikeDislike as I}from"./hooks/use-like-dislike.mjs";import{useMinDurationLoading as L}from"./hooks/use-min-duration-loading.mjs";import{useSearchHistory as R}from"./hooks/use-search-history.mjs";import{useSticky as z}from"./hooks/use-sticky.mjs";import{useKeepAliveEffect as B,useKeepAliveState as V}from"./components/common/keep-scroll-position/index.mjs";export{s as HydrationBoundary,e as IMAGE_TEXT_RECOMMEND_FIXED_BATCH_SIZE,t as buildImageTextRecommendChosenTags,n as buildImageTextRecommendRemoteMap,r as buildImageTextRecommendSmartPicked,i as getImageTextRecommendFixedIds,a as getImageTextRecommendLayoutTags,o as resolveImageTextRecommendVideoId,h as useAuth,k as useBrowseReport,g as useCloseLogin,c as useDeleteRequest,_ as useExpireTime,N as useFollow,P as useFullscreenGestures,A as useGridFirstRowHeight,v as useIsLoggedIn,B as useKeepAliveEffect,V as useKeepAliveState,F as useKeyboardOpen,I as useLikeDislike,y as useLoginModalOpen,b as useLogout,L as useMinDurationLoading,l as useMutation,x as useOpenLogin,S as useOpenLoginAsync,C as useOpenResetPassword,u as usePaginated,d as usePrefetchQuery,f as useRefetchQuery,p as useRequest,w as useRequireLogin,R as useSearchHistory,T as useSetAuthFields,j as useSingleFirstRowHeight,z as useSticky,E as useToken,m as useUpdateRequest,D as useUserId,O as useUserInfo,M as useWaterfallFirstRowHeight};
|