@funhub/platform 0.2.2 → 0.2.3-beta.1
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/detail/collect_nor.mjs +2 -0
- package/dist/assets/icons/detail/collect_sel.mjs +2 -0
- package/dist/assets/icons/detail/share.mjs +2 -0
- package/dist/assets/icons/eye-off-icon.mjs +1 -1
- package/dist/assets/icons/marquee-enter.mjs +2 -0
- package/dist/assets/icons/right_arrow.mjs +2 -0
- package/dist/assets/icons/search/avatar.mjs +2 -0
- package/dist/assets/images/marquee.mjs +2 -0
- package/dist/biz.d.mts +4 -11
- package/dist/biz.mjs +1 -1
- package/dist/common.d.mts +2 -5
- package/dist/common.mjs +1 -1
- package/dist/components/biz/business/advertisement/ad-match.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 -2
- package/dist/components/biz/business/advertisement/banner-ad/material.mjs +1 -1
- package/dist/components/biz/business/advertisement/banner-ad/schema.d.mts +4 -9
- package/dist/components/biz/business/advertisement/banner-ad/schema.mjs +1 -1
- package/dist/components/biz/business/advertisement/feed-ad/index.d.mts +31 -1
- package/dist/components/biz/business/advertisement/feed-ad/index.mjs +1 -1
- package/dist/components/biz/business/advertisement/floating-ad/client.mjs +1 -1
- package/dist/components/biz/business/advertisement/floating-ad/material.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 -1
- package/dist/components/biz/business/advertisement/icon-ad/material.mjs +1 -1
- package/dist/components/biz/business/advertisement/icon-ad/schema.d.mts +1 -7
- package/dist/components/biz/business/advertisement/icon-ad/schema.mjs +1 -1
- package/dist/components/biz/business/advertisement/index.d.mts +2 -2
- package/dist/components/biz/business/advertisement/popup-ad/client.mjs +2 -2
- 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 +15 -14
- 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 -1
- package/dist/components/biz/business/advertisement/text-ad/material.mjs +1 -1
- package/dist/components/biz/business/advertisement/text-ad/schema.d.mts +1 -5
- package/dist/components/biz/business/advertisement/text-ad/schema.mjs +1 -1
- package/dist/components/biz/business/banner-carousel/client.d.mts +2 -2
- package/dist/components/biz/business/banner-carousel/client.mjs +1 -1
- package/dist/components/biz/business/channel-list/client.mjs +1 -1
- package/dist/components/biz/business/channel-list/default-props.mjs +1 -1
- package/dist/components/biz/business/detail/shared/detail-introduction.mjs +2 -0
- package/dist/components/biz/business/detail/shared/detail-operate.mjs +1 -1
- package/dist/components/biz/business/detail/shared/editor-preview.mjs +1 -1
- package/dist/components/biz/business/detail/shared/registry.d.mts +1 -36
- package/dist/components/biz/business/detail/shared/registry.mjs +1 -1
- package/dist/components/biz/business/detail/video-detail-actions/client.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.d.mts +13 -1
- package/dist/components/biz/business/detail/video-detail-recommend/client.mjs +1 -1
- package/dist/components/biz/business/detail/video-detail-recommend/material.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-icon/client.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search/client.d.mts +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search/client.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.d.mts +3 -4
- package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/client.mjs +1 -1
- package/dist/components/biz/business/header-search/header-logo-search/client.mjs +1 -1
- package/dist/components/biz/business/header-search/header-search/client.mjs +1 -1
- package/dist/components/biz/business/header-search/shared/avatar.mjs +1 -1
- package/dist/components/biz/business/header-search/shared/logo.mjs +1 -1
- package/dist/components/biz/business/header-search/shared/search.mjs +1 -1
- package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.d.mts +8 -0
- 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 +8 -0
- package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.d.mts +8 -0
- 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 +8 -0
- package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
- package/dist/components/biz/business/home-recommend/shared/home-recommend-preview.mjs +1 -1
- package/dist/components/biz/business/index.d.mts +3 -12
- package/dist/components/biz/business/large-feature-grid/card-item.mjs +1 -1
- package/dist/components/biz/business/large-feature-grid/client.mjs +1 -1
- package/dist/components/biz/business/large-feature-grid/schema.mjs +1 -1
- package/dist/components/biz/business/marquee/client.mjs +1 -1
- package/dist/components/biz/business/marquee/marquee.module.mjs +6 -2
- package/dist/components/biz/business/marquee/material.d.mts +1 -1
- package/dist/components/biz/business/marquee/schema.d.mts +1 -1
- package/dist/components/biz/business/profile/index.d.mts +1 -1
- package/dist/components/biz/business/profile/profile-header/client.d.mts +1 -2
- package/dist/components/biz/business/profile/profile-header/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/index.d.mts +1 -1
- package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/shell.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.d.mts +1 -5
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/utils.mjs +1 -1
- package/dist/components/biz/business/search-history/client.mjs +1 -1
- package/dist/components/biz/business/search-history/schema.mjs +1 -1
- package/dist/components/biz/business/search-input/client.mjs +1 -1
- package/dist/components/biz/business/shortcut-grid/client.mjs +1 -1
- package/dist/components/biz/business/tab-bar/client.mjs +1 -1
- package/dist/components/common/collection-popup/collection-create-modal.mjs +2 -0
- package/dist/components/common/collection-popup/index.d.mts +0 -1
- package/dist/components/common/collection-popup/index.mjs +1 -1
- package/dist/components/common/icons/setting.mjs +1 -1
- package/dist/components/common/list/collection-list/collection-list-item.d.mts +0 -8
- package/dist/components/common/list/collection-list/collection-list-item.mjs +1 -1
- package/dist/components/common/list/collection-list/collection-list.d.mts +0 -6
- package/dist/components/common/list/collection-list/collection-list.mjs +1 -1
- package/dist/components/common/series-episodes/index.d.mts +1 -3
- package/dist/components/common/series-episodes/index.mjs +1 -1
- package/dist/components/common/skeleton/search-video-card-skeleton.mjs +2 -0
- package/dist/components/common/tab-bar/index.mjs +1 -1
- package/dist/components/pages/collection-detail/detail.mjs +1 -1
- package/dist/components/pages/edit/page.mjs +1 -1
- package/dist/components/pages/home/client.mjs +1 -1
- package/dist/components/pages/login/login-client.mjs +1 -1
- package/dist/components/pages/login/register.mjs +1 -1
- package/dist/components/pages/login/verify.mjs +4 -1
- package/dist/components/pages/search/page-client.mjs +1 -1
- package/dist/components/pages/search/search-result/index.mjs +1 -1
- package/dist/components/pages/search/search-result/search-all.mjs +1 -1
- package/dist/components/pages/search/search-result/search-user.mjs +1 -1
- package/dist/components/pages/search/search-result/search-video-info.mjs +1 -1
- package/dist/components/pages/search/search-utils.mjs +2 -0
- package/dist/components/pages/search/top-header.mjs +1 -1
- package/dist/components/pages/search-result/page-client.mjs +1 -1
- package/dist/components/pages/search-result/search-all.mjs +1 -1
- package/dist/components/pages/search-result/search-result-skeleton.mjs +2 -0
- package/dist/components/pages/search-result/search-tab.mjs +1 -1
- package/dist/components/pages/search-result/search-user.mjs +1 -1
- package/dist/components/pages/search-result/search-video.mjs +2 -0
- package/dist/components/pages/settings/_components/reset-password-drawer.mjs +2 -2
- package/dist/components/pages/settings/_components/settings.mjs +1 -1
- package/dist/components/pages/video-list/video-list-client.mjs +1 -1
- package/dist/components/pages/video-list/video-list-item.mjs +2 -0
- package/dist/components/pages/video-list/video-list-skeleton.d.mts +3 -2
- package/dist/components/pages/video-list/video-list-skeleton.mjs +1 -1
- package/dist/components/ui/badge.d.mts +1 -1
- package/dist/components/ui/box.d.mts +1 -1
- package/dist/components/ui/button.d.mts +1 -1
- package/dist/i18n/locales/en.mjs +2 -2
- package/dist/i18n/locales/zh-CN.mjs +2 -2
- package/dist/materials.d.mts +1 -6
- package/dist/materials.mjs +1 -1
- package/dist/service/generated/client.d.mts +2 -38
- package/dist/service/generated/client.mjs +1 -1
- package/dist/service/generated/tanstack.d.mts +2 -47
- package/dist/service/generated/tanstack.mjs +1 -1
- package/dist/service.d.mts +3 -3
- package/dist/service.mjs +1 -1
- package/dist/types.d.mts +9 -662
- package/dist/utils/helper.d.mts +1 -1
- package/dist/utils/helper.mjs +1 -1
- package/package.json +2 -7
- package/theme.css +59 -170
- package/dist/assets/icons/channel-list/channel-active-indicator.mjs +0 -2
- package/dist/assets/icons/common/header-menu.mjs +0 -2
- package/dist/assets/icons/common/header-search-icon.mjs +0 -2
- package/dist/assets/icons/common/right_arrow_thin.mjs +0 -2
- package/dist/assets/icons/marquee-close.mjs +0 -2
- package/dist/assets/icons/marquee-speaker.mjs +0 -2
- package/dist/assets/images/shortcut-grid/shortcut-grid-card-bg-primary.mjs +0 -2
- package/dist/components/biz/business/detail/video-detail-recommend/shared.mjs +0 -2
- package/dist/components/biz/business/detail/video-detail-waterfall-recommend/client.d.mts +0 -8
- package/dist/components/biz/business/detail/video-detail-waterfall-recommend/client.mjs +0 -2
- package/dist/components/biz/business/detail/video-detail-waterfall-recommend/index.d.mts +0 -5
- package/dist/components/biz/business/detail/video-detail-waterfall-recommend/material.d.mts +0 -45
- package/dist/components/biz/business/detail/video-detail-waterfall-recommend/material.mjs +0 -2
- package/dist/components/biz/business/detail/video-detail-waterfall-recommend/schema.d.mts +0 -9
- package/dist/components/biz/business/detail/video-detail-waterfall-recommend/schema.mjs +0 -2
- package/dist/components/biz/business/detail/video-detail-waterfall-recommend/server.d.mts +0 -11
- package/dist/components/biz/business/detail/video-detail-waterfall-recommend/server.mjs +0 -2
- package/dist/components/biz/business/header-search/shared/header-action.mjs +0 -2
- package/dist/components/biz/business/header-search/shared/header-search-icon.mjs +0 -2
- package/dist/components/biz/business/header-search/shared/header-shell.mjs +0 -2
- package/dist/components/biz/business/hot-recommend/client.d.mts +0 -17
- package/dist/components/biz/business/hot-recommend/client.mjs +0 -2
- package/dist/components/biz/business/hot-recommend/index.d.mts +0 -5
- package/dist/components/biz/business/hot-recommend/material.d.mts +0 -24
- package/dist/components/biz/business/hot-recommend/material.mjs +0 -2
- package/dist/components/biz/business/hot-recommend/schema.d.mts +0 -23
- package/dist/components/biz/business/hot-recommend/schema.mjs +0 -2
- package/dist/components/biz/business/hot-recommend/server.d.mts +0 -11
- package/dist/components/biz/business/hot-recommend/server.mjs +0 -2
- package/dist/components/biz/business/profile/profile-main/empty-state.mjs +0 -2
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/video-waterfall.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/biz/business/search-waterfall-recommend/client.d.mts +0 -9
- package/dist/components/biz/business/search-waterfall-recommend/client.mjs +0 -2
- package/dist/components/biz/business/search-waterfall-recommend/index.d.mts +0 -4
- package/dist/components/biz/business/search-waterfall-recommend/material.d.mts +0 -40
- package/dist/components/biz/business/search-waterfall-recommend/material.mjs +0 -2
- package/dist/components/biz/business/search-waterfall-recommend/server.d.mts +0 -8
- package/dist/components/biz/business/search-waterfall-recommend/server.mjs +0 -2
- package/dist/components/common/collection-popup/create-collection-sheet.d.mts +0 -41
- package/dist/components/common/collection-popup/create-collection-sheet.mjs +0 -2
- package/dist/components/common/list/collection-list/collection-select-icon.mjs +0 -2
- package/dist/components/common/list/waterfall-recommend/index.d.mts +0 -2
- package/dist/components/common/list/waterfall-recommend/waterfall-recommend.d.mts +0 -99
- package/dist/components/common/list/waterfall-recommend/waterfall-recommend.mjs +0 -2
- package/dist/components/pages/collection-detail/_components/collection-detail-video-card.mjs +0 -2
- package/dist/components/pages/login/auth-page-styles.mjs +0 -6
- package/dist/components/pages/search/search-result/shared.mjs +0 -2
- package/dist/components/pages/search-result/search-empty.mjs +0 -2
- package/dist/components/pages/search-result/search-video-info.mjs +0 -2
- package/dist/components/pages/search-result/shared.mjs +0 -2
- package/dist/components/pages/search-result/top-header.mjs +0 -2
- package/dist/components/pages/video-list/video-list-recommend-item.mjs +0 -2
- package/dist/theme-tokens.d.mts +0 -9
- package/dist/theme-tokens.mjs +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import e from"../../../../../assets/icons/search/video.mjs";import{
|
|
2
|
+
"use client";import{Image as e}from"../../../../ui/image.mjs";import t from"../../../../../assets/icons/search/video.mjs";import{jsx as n}from"react/jsx-runtime";import r from"next/link";function i(i){let{logoHref:a,logoSrc:o}=i;return n(r,{href:a,className:`flex items-center justify-center w-[40px] h-[40px] relative`,children:o?n(e,{src:o,alt:`logo`,fill:!0,sizes:`40px`,className:`h-[40px] w-[40px] object-cover`}):n(t,{className:`w-[40px] h-[40px]`})})}export{i as Logo};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{
|
|
2
|
+
"use client";import{Text as e}from"../../../../ui/text.mjs";import t from"../../../../../assets/icons/search.mjs";import{jsx as n,jsxs as r}from"react/jsx-runtime";import i from"next/link";function a(){return r(i,{href:`/search`,"aria-label":`打开搜索页`,className:`flex flex-1 items-center gap-[8px] border-[1px] border-[#FD4C5E] rounded-[20px] px-[12px] py-[8px] h-[40px]`,children:[n(t,{className:`w-[16px] h-[16px]`,"aria-hidden":!0}),n(e,{className:`flex-1 text-[16px] text-text3`,children:`请输入搜索关键字`})]})}export{a as Search};
|
package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.d.mts
CHANGED
|
@@ -28,6 +28,14 @@ declare const homeRecommendGridInspectorPropsSchema: z$1.ZodObject<{
|
|
|
28
28
|
}>>;
|
|
29
29
|
coverUrl: z$1.ZodOptional<z$1.ZodString>;
|
|
30
30
|
is_ad: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
31
|
+
ad: z$1.ZodOptional<z$1.ZodObject<{
|
|
32
|
+
ad_code: z$1.ZodOptional<z$1.ZodString>;
|
|
33
|
+
ad_advertise_url: z$1.ZodOptional<z$1.ZodString>;
|
|
34
|
+
ad_advertise_icon: z$1.ZodOptional<z$1.ZodString>;
|
|
35
|
+
ad_advertise_type: z$1.ZodOptional<z$1.ZodNumber>;
|
|
36
|
+
ad_advertise_desc: z$1.ZodOptional<z$1.ZodString>;
|
|
37
|
+
ad_ext_data: z$1.ZodOptional<z$1.ZodString>;
|
|
38
|
+
}, z$1.core.$strip>>;
|
|
31
39
|
ad_advertise_url: z$1.ZodOptional<z$1.ZodString>;
|
|
32
40
|
ad_advertise_icon: z$1.ZodOptional<z$1.ZodString>;
|
|
33
41
|
badge_url: z$1.ZodOptional<z$1.ZodString>;
|
package/dist/components/biz/business/home-recommend/home-recommend-grid/inspector-schema.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";import{HOME_RECOMMEND_DEFAULT_ENABLE_INFINITE as n,HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as r,HOME_RECOMMEND_DEFAULT_GRID_ROWS as i,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as a,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as o,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as s,HOME_RECOMMEND_DEFAULT_SMART_TAG_ENABLED as c,HOME_RECOMMEND_DEFAULT_TITLE as l}from"../shared/home-recommend-default-config.mjs";import u from"zod";const d=e(e=>({rows:e.number(i,{label:`行数`}),columns:e.number(r,{label:`列数`}),smartTagEnabled:e.boolean(c,{fieldType:`switch`,label:`智能铺设`}),title:e.string(l,{label:`推荐位名称`}),showPlayCount:e.boolean(s,{fieldType:`switch`,label:`显示播放量`}),playCountDelta:e.number(a,{label:`播放量浮动`}),showEpisode:e.boolean(o,{fieldType:`switch`,label:`显示集数`}),enableInfinite:e.boolean(n,{fieldType:`switch`,label:`无限下拉`,required:!1}),moreLink:e.string(``,{label:`更多`,description:``,required:!1}),smartTagIds:u.array(u.string()).optional(),catId:e.string(``,{label:`分类 ID`,description:`透传热门接口 cat_id`,required:!1}),items:u.array(u.object({contentId:u.string(),coverMode:u.enum([`upload`,`content`]).optional(),coverUrl:u.string().optional(),is_ad:u.boolean().optional(),ad_advertise_url:u.string().optional(),ad_advertise_icon:u.string().optional(),badge_url:u.string().optional(),titleMode:u.enum([`custom`,`content`]).optional(),title:u.string().optional(),description:u.string().optional(),showPlayCount:u.boolean().optional(),playCountDelta:u.number().optional(),showEpisode:u.boolean().optional()})).optional()})),f={...t(d),smartTagIds:[],items:[]},p={rows:{type:`number`,title:`行数`,default:f.rows},columns:{type:`number`,title:`列数`,default:f.columns},smartTagEnabled:{type:`boolean`,title:`智能铺设`,default:f.smartTagEnabled},title:{type:`string`,title:`推荐位名称`,default:f.title},showPlayCount:{type:`boolean`,title:`显示播放量`,default:f.showPlayCount},playCountDelta:{type:`number`,title:`播放量浮动`,default:f.playCountDelta},showEpisode:{type:`boolean`,title:`显示集数`,default:f.showEpisode},enableInfinite:{type:`boolean`,title:`无限下拉`,default:f.enableInfinite},moreLink:{type:`string`,title:`更多`,description:``,default:f.moreLink},smartTagIds:{type:`array`,title:`智能铺设标签`,default:f.smartTagIds,items:{type:`string`,title:`标签 ID`}},catId:{type:`string`,title:`分类 ID`,description:`透传热门接口 cat_id`,default:f.catId},items:{type:`array`,title:`推荐项`,default:f.items,items:{type:`object`,title:`推荐项`,properties:{contentId:{type:`string`,title:`内容 ID`},coverMode:{type:`string`,title:`封面模式`},coverUrl:{type:`string`,title:`封面地址`},is_ad:{type:`boolean`,title:`是否广告`},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},badge_url:{type:`string`,title:`角标地址`},titleMode:{type:`string`,title:`标题模式`},title:{type:`string`,title:`标题`},description:{type:`string`,title:`简介`},showPlayCount:{type:`boolean`,title:`显示播放量`},playCountDelta:{type:`number`,title:`播放量浮动`},showEpisode:{type:`boolean`,title:`显示集数`}}}}};export{f as homeRecommendGridInspectorDefaultProps,d as homeRecommendGridInspectorPropsSchema,p as homeRecommendGridPropsSchema};
|
|
2
|
+
import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";import{HOME_RECOMMEND_DEFAULT_ENABLE_INFINITE as n,HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as r,HOME_RECOMMEND_DEFAULT_GRID_ROWS as i,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as a,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as o,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as s,HOME_RECOMMEND_DEFAULT_SMART_TAG_ENABLED as c,HOME_RECOMMEND_DEFAULT_TITLE as l}from"../shared/home-recommend-default-config.mjs";import u from"zod";const d=e(e=>({rows:e.number(i,{label:`行数`}),columns:e.number(r,{label:`列数`}),smartTagEnabled:e.boolean(c,{fieldType:`switch`,label:`智能铺设`}),title:e.string(l,{label:`推荐位名称`}),showPlayCount:e.boolean(s,{fieldType:`switch`,label:`显示播放量`}),playCountDelta:e.number(a,{label:`播放量浮动`}),showEpisode:e.boolean(o,{fieldType:`switch`,label:`显示集数`}),enableInfinite:e.boolean(n,{fieldType:`switch`,label:`无限下拉`,required:!1}),moreLink:e.string(``,{label:`更多`,description:``,required:!1}),smartTagIds:u.array(u.string()).optional(),catId:e.string(``,{label:`分类 ID`,description:`透传热门接口 cat_id`,required:!1}),items:u.array(u.object({contentId:u.string(),coverMode:u.enum([`upload`,`content`]).optional(),coverUrl:u.string().optional(),is_ad:u.boolean().optional(),ad:u.object({ad_code:u.string().optional(),ad_advertise_url:u.string().optional(),ad_advertise_icon:u.string().optional(),ad_advertise_type:u.number().optional(),ad_advertise_desc:u.string().optional(),ad_ext_data:u.string().optional()}).optional(),ad_advertise_url:u.string().optional(),ad_advertise_icon:u.string().optional(),badge_url:u.string().optional(),titleMode:u.enum([`custom`,`content`]).optional(),title:u.string().optional(),description:u.string().optional(),showPlayCount:u.boolean().optional(),playCountDelta:u.number().optional(),showEpisode:u.boolean().optional()})).optional()})),f={...t(d),smartTagIds:[],items:[]},p={rows:{type:`number`,title:`行数`,default:f.rows},columns:{type:`number`,title:`列数`,default:f.columns},smartTagEnabled:{type:`boolean`,title:`智能铺设`,default:f.smartTagEnabled},title:{type:`string`,title:`推荐位名称`,default:f.title},showPlayCount:{type:`boolean`,title:`显示播放量`,default:f.showPlayCount},playCountDelta:{type:`number`,title:`播放量浮动`,default:f.playCountDelta},showEpisode:{type:`boolean`,title:`显示集数`,default:f.showEpisode},enableInfinite:{type:`boolean`,title:`无限下拉`,default:f.enableInfinite},moreLink:{type:`string`,title:`更多`,description:``,default:f.moreLink},smartTagIds:{type:`array`,title:`智能铺设标签`,default:f.smartTagIds,items:{type:`string`,title:`标签 ID`}},catId:{type:`string`,title:`分类 ID`,description:`透传热门接口 cat_id`,default:f.catId},items:{type:`array`,title:`推荐项`,default:f.items,items:{type:`object`,title:`推荐项`,properties:{contentId:{type:`string`,title:`内容 ID`},coverMode:{type:`string`,title:`封面模式`},coverUrl:{type:`string`,title:`封面地址`},is_ad:{type:`boolean`,title:`是否广告`},ad:{type:`object`,title:`广告对象`,properties:{ad_code:{type:`string`,title:`广告业务编码`},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},ad_advertise_type:{type:`number`,title:`广告类型`},ad_advertise_desc:{type:`string`,title:`广告文案描述`},ad_ext_data:{type:`string`,title:`广告扩展信息`}}},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},badge_url:{type:`string`,title:`角标地址`},titleMode:{type:`string`,title:`标题模式`},title:{type:`string`,title:`标题`},description:{type:`string`,title:`简介`},showPlayCount:{type:`boolean`,title:`显示播放量`},playCountDelta:{type:`number`,title:`播放量浮动`},showEpisode:{type:`boolean`,title:`显示集数`}}}}};export{f as homeRecommendGridInspectorDefaultProps,d as homeRecommendGridInspectorPropsSchema,p as homeRecommendGridPropsSchema};
|
|
@@ -28,6 +28,14 @@ declare const homeRecommendGridMaterial: DefineMaterialOption<typeof HomeRecomme
|
|
|
28
28
|
}>>;
|
|
29
29
|
coverUrl: zod.ZodOptional<zod.ZodString>;
|
|
30
30
|
is_ad: zod.ZodOptional<zod.ZodBoolean>;
|
|
31
|
+
ad: zod.ZodOptional<zod.ZodObject<{
|
|
32
|
+
ad_code: zod.ZodOptional<zod.ZodString>;
|
|
33
|
+
ad_advertise_url: zod.ZodOptional<zod.ZodString>;
|
|
34
|
+
ad_advertise_icon: zod.ZodOptional<zod.ZodString>;
|
|
35
|
+
ad_advertise_type: zod.ZodOptional<zod.ZodNumber>;
|
|
36
|
+
ad_advertise_desc: zod.ZodOptional<zod.ZodString>;
|
|
37
|
+
ad_ext_data: zod.ZodOptional<zod.ZodString>;
|
|
38
|
+
}, zod_v4_core0.$strip>>;
|
|
31
39
|
ad_advertise_url: zod.ZodOptional<zod.ZodString>;
|
|
32
40
|
ad_advertise_icon: zod.ZodOptional<zod.ZodString>;
|
|
33
41
|
badge_url: zod.ZodOptional<zod.ZodString>;
|
package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.d.mts
CHANGED
|
@@ -26,6 +26,14 @@ declare const homeRecommendWaterfallInspectorPropsSchema: z$1.ZodObject<{
|
|
|
26
26
|
}>>;
|
|
27
27
|
coverUrl: z$1.ZodOptional<z$1.ZodString>;
|
|
28
28
|
is_ad: z$1.ZodOptional<z$1.ZodBoolean>;
|
|
29
|
+
ad: z$1.ZodOptional<z$1.ZodObject<{
|
|
30
|
+
ad_code: z$1.ZodOptional<z$1.ZodString>;
|
|
31
|
+
ad_advertise_url: z$1.ZodOptional<z$1.ZodString>;
|
|
32
|
+
ad_advertise_icon: z$1.ZodOptional<z$1.ZodString>;
|
|
33
|
+
ad_advertise_type: z$1.ZodOptional<z$1.ZodNumber>;
|
|
34
|
+
ad_advertise_desc: z$1.ZodOptional<z$1.ZodString>;
|
|
35
|
+
ad_ext_data: z$1.ZodOptional<z$1.ZodString>;
|
|
36
|
+
}, z$1.core.$strip>>;
|
|
29
37
|
ad_advertise_url: z$1.ZodOptional<z$1.ZodString>;
|
|
30
38
|
ad_advertise_icon: z$1.ZodOptional<z$1.ZodString>;
|
|
31
39
|
badge_url: z$1.ZodOptional<z$1.ZodString>;
|
package/dist/components/biz/business/home-recommend/home-recommend-waterfall/inspector-schema.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";import{HOME_RECOMMEND_DEFAULT_ENABLE_INFINITE as n,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as r,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as i,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as a,HOME_RECOMMEND_DEFAULT_SMART_TAG_ENABLED as o,HOME_RECOMMEND_DEFAULT_TITLE as s}from"../shared/home-recommend-default-config.mjs";import c from"zod";const l=e(e=>({smartTagEnabled:e.boolean(o,{fieldType:`switch`,label:`智能铺设`}),title:e.string(s,{label:`推荐位名称`}),showPlayCount:e.boolean(a,{fieldType:`switch`,label:`显示播放量`}),playCountDelta:e.number(r,{label:`播放量浮动`}),showEpisode:e.boolean(i,{fieldType:`switch`,label:`显示集数`}),enableInfinite:e.boolean(n,{fieldType:`switch`,label:`无限下拉`}),moreLink:e.string(``,{label:`更多`,description:``,required:!1}),smartTagIds:c.array(c.string()).optional(),catId:e.string(``,{label:`分类 ID`,description:`透传热门接口 cat_id`,required:!1}),items:c.array(c.object({contentId:c.string(),coverMode:c.enum([`upload`,`content`]).optional(),coverUrl:c.string().optional(),is_ad:c.boolean().optional(),ad_advertise_url:c.string().optional(),ad_advertise_icon:c.string().optional(),badge_url:c.string().optional(),titleMode:c.enum([`custom`,`content`]).optional(),title:c.string().optional(),showPlayCount:c.boolean().optional(),playCountDelta:c.number().optional(),showEpisode:c.boolean().optional()})).optional()})),u={...t(l),smartTagIds:[],items:[]},d={smartTagEnabled:{type:`boolean`,title:`智能铺设`,default:u.smartTagEnabled},title:{type:`string`,title:`推荐位名称`,default:u.title},showPlayCount:{type:`boolean`,title:`显示播放量`,default:u.showPlayCount},playCountDelta:{type:`number`,title:`播放量浮动`,default:u.playCountDelta},showEpisode:{type:`boolean`,title:`显示集数`,default:u.showEpisode},enableInfinite:{type:`boolean`,title:`无限下拉`,default:u.enableInfinite},moreLink:{type:`string`,title:`更多`,description:``,default:u.moreLink},smartTagIds:{type:`array`,title:`智能铺设标签`,default:u.smartTagIds,items:{type:`string`,title:`标签 ID`}},catId:{type:`string`,title:`分类 ID`,description:`透传热门接口 cat_id`,default:u.catId},items:{type:`array`,title:`推荐项`,default:u.items,items:{type:`object`,title:`推荐项`,properties:{contentId:{type:`string`,title:`内容 ID`},coverMode:{type:`string`,title:`封面模式`},coverUrl:{type:`string`,title:`封面地址`},is_ad:{type:`boolean`,title:`是否广告`},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},badge_url:{type:`string`,title:`角标地址`},titleMode:{type:`string`,title:`标题模式`},title:{type:`string`,title:`标题`},showPlayCount:{type:`boolean`,title:`显示播放量`},playCountDelta:{type:`number`,title:`播放量浮动`},showEpisode:{type:`boolean`,title:`显示集数`}}}}};export{u as homeRecommendWaterfallInspectorDefaultProps,l as homeRecommendWaterfallInspectorPropsSchema,d as homeRecommendWaterfallPropsSchema};
|
|
2
|
+
import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../../utils/schema/schema.mjs";import{HOME_RECOMMEND_DEFAULT_ENABLE_INFINITE as n,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as r,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as i,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as a,HOME_RECOMMEND_DEFAULT_SMART_TAG_ENABLED as o,HOME_RECOMMEND_DEFAULT_TITLE as s}from"../shared/home-recommend-default-config.mjs";import c from"zod";const l=e(e=>({smartTagEnabled:e.boolean(o,{fieldType:`switch`,label:`智能铺设`}),title:e.string(s,{label:`推荐位名称`}),showPlayCount:e.boolean(a,{fieldType:`switch`,label:`显示播放量`}),playCountDelta:e.number(r,{label:`播放量浮动`}),showEpisode:e.boolean(i,{fieldType:`switch`,label:`显示集数`}),enableInfinite:e.boolean(n,{fieldType:`switch`,label:`无限下拉`}),moreLink:e.string(``,{label:`更多`,description:``,required:!1}),smartTagIds:c.array(c.string()).optional(),catId:e.string(``,{label:`分类 ID`,description:`透传热门接口 cat_id`,required:!1}),items:c.array(c.object({contentId:c.string(),coverMode:c.enum([`upload`,`content`]).optional(),coverUrl:c.string().optional(),is_ad:c.boolean().optional(),ad:c.object({ad_code:c.string().optional(),ad_advertise_url:c.string().optional(),ad_advertise_icon:c.string().optional(),ad_advertise_type:c.number().optional(),ad_advertise_desc:c.string().optional(),ad_ext_data:c.string().optional()}).optional(),ad_advertise_url:c.string().optional(),ad_advertise_icon:c.string().optional(),badge_url:c.string().optional(),titleMode:c.enum([`custom`,`content`]).optional(),title:c.string().optional(),showPlayCount:c.boolean().optional(),playCountDelta:c.number().optional(),showEpisode:c.boolean().optional()})).optional()})),u={...t(l),smartTagIds:[],items:[]},d={smartTagEnabled:{type:`boolean`,title:`智能铺设`,default:u.smartTagEnabled},title:{type:`string`,title:`推荐位名称`,default:u.title},showPlayCount:{type:`boolean`,title:`显示播放量`,default:u.showPlayCount},playCountDelta:{type:`number`,title:`播放量浮动`,default:u.playCountDelta},showEpisode:{type:`boolean`,title:`显示集数`,default:u.showEpisode},enableInfinite:{type:`boolean`,title:`无限下拉`,default:u.enableInfinite},moreLink:{type:`string`,title:`更多`,description:``,default:u.moreLink},smartTagIds:{type:`array`,title:`智能铺设标签`,default:u.smartTagIds,items:{type:`string`,title:`标签 ID`}},catId:{type:`string`,title:`分类 ID`,description:`透传热门接口 cat_id`,default:u.catId},items:{type:`array`,title:`推荐项`,default:u.items,items:{type:`object`,title:`推荐项`,properties:{contentId:{type:`string`,title:`内容 ID`},coverMode:{type:`string`,title:`封面模式`},coverUrl:{type:`string`,title:`封面地址`},is_ad:{type:`boolean`,title:`是否广告`},ad:{type:`object`,title:`广告对象`,properties:{ad_code:{type:`string`,title:`广告业务编码`},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},ad_advertise_type:{type:`number`,title:`广告类型`},ad_advertise_desc:{type:`string`,title:`广告文案描述`},ad_ext_data:{type:`string`,title:`广告扩展信息`}}},ad_advertise_url:{type:`string`,title:`广告跳转地址`},ad_advertise_icon:{type:`string`,title:`广告素材地址`},badge_url:{type:`string`,title:`角标地址`},titleMode:{type:`string`,title:`标题模式`},title:{type:`string`,title:`标题`},showPlayCount:{type:`boolean`,title:`显示播放量`},playCountDelta:{type:`number`,title:`播放量浮动`},showEpisode:{type:`boolean`,title:`显示集数`}}}}};export{u as homeRecommendWaterfallInspectorDefaultProps,l as homeRecommendWaterfallInspectorPropsSchema,d as homeRecommendWaterfallPropsSchema};
|
|
@@ -26,6 +26,14 @@ declare const homeRecommendWaterfallMaterial: DefineMaterialOption<typeof HomeRe
|
|
|
26
26
|
}>>;
|
|
27
27
|
coverUrl: zod.ZodOptional<zod.ZodString>;
|
|
28
28
|
is_ad: zod.ZodOptional<zod.ZodBoolean>;
|
|
29
|
+
ad: zod.ZodOptional<zod.ZodObject<{
|
|
30
|
+
ad_code: zod.ZodOptional<zod.ZodString>;
|
|
31
|
+
ad_advertise_url: zod.ZodOptional<zod.ZodString>;
|
|
32
|
+
ad_advertise_icon: zod.ZodOptional<zod.ZodString>;
|
|
33
|
+
ad_advertise_type: zod.ZodOptional<zod.ZodNumber>;
|
|
34
|
+
ad_advertise_desc: zod.ZodOptional<zod.ZodString>;
|
|
35
|
+
ad_ext_data: zod.ZodOptional<zod.ZodString>;
|
|
36
|
+
}, zod_v4_core0.$strip>>;
|
|
29
37
|
ad_advertise_url: zod.ZodOptional<zod.ZodString>;
|
|
30
38
|
ad_advertise_icon: zod.ZodOptional<zod.ZodString>;
|
|
31
39
|
badge_url: zod.ZodOptional<zod.ZodString>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{pContentGetPopularVideoList as e}from"../../../../../service/generated/client.mjs";import{Image as t}from"../../../../ui/image.mjs";import{Box as n}from"../../../../ui/box.mjs";import{Text as r}from"../../../../ui/text.mjs";import i from"../../../../ui/loading.mjs";import a from"../../../../ui/link.mjs";import{useGridFirstRowHeight as o,useWaterfallFirstRowHeight as s}from"../../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as c}from"../../../../../hooks/use-min-duration-loading.mjs";import l from"../../../../../assets/icons/common/right_arrow.mjs";import u from"../../../../../assets/icons/common/right_arrow_thin.mjs";import{WaterfallRecommend as d}from"../../../../common/list/waterfall-recommend/waterfall-recommend.mjs";import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as f,HOME_RECOMMEND_DEFAULT_GRID_ROWS as ee,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as te,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as ne,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as re,HOME_RECOMMEND_DEFAULT_TITLE as ie,HOME_RECOMMEND_MAX_GRID_COLUMNS as ae,HOME_RECOMMEND_MAX_GRID_ROWS as oe}from"./home-recommend-default-config.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as se}from"./home-recommend-preview.mjs";import{enrichHomeRecommendItemsWithVideoDetails as ce}from"./home-recommend-video-detail.mjs";import{useCallback as le,useEffect as p,useId as m,useLayoutEffect as ue,useMemo as h,useRef as g,useState as _}from"react";import{Fragment as de,jsx as v,jsxs as y}from"react/jsx-runtime";const fe={backgroundImage:`var(--gradient-card-mask-medium)`},pe={},me={list:[]},b=new Map;function x({variant:t,props:se=pe,data:m=me,mode:fe=`renderer`}){let x=fe===`editor`,{list:S,title:ge,cursor:C}=m,w=h(()=>Array.isArray(S)?S:[],[S]),T=h(()=>Array.isArray(m.icons)?m.icons:[],[m.icons]),{rows:be,columns:xe,moreLink:Se,title:Ce,smartTagEnabled:we,smartTagIds:E,catId:D,showPlayCount:Te,playCountDelta:Ee,showEpisode:De,enableInfinite:O,items:k}=se,A=we===!0,j=O===!0&&A,M=!x&&j&&w.length>=16,N=h(()=>Array.isArray(E)?E.map(e=>String(e||``).trim()).filter(Boolean):[],[E]),P=typeof D==`string`?D.trim():``,F=h(()=>A||!Array.isArray(k)?``:k.map(e=>String(e?.contentId||``).trim()).filter(Boolean).join(`,`),[A,k]),[je,Me]=_(0),[I,L]=_(w),[R,Ne]=_(T),[z,B]=_(()=>typeof C==`string`?C:void 0),[V,Pe]=_(!1),Fe=g(null),Ie=g(null),H=g(null),Le=g([]),U=g({left:null,right:null}),Re=g(!1),W=g(``),{isLoading:ze,show:Be,hide:Ve}=c(600),He=ve(be,ee,oe),G=ve(xe,f,ae),K=j?16:t===`grid`?He*G:16,q=h(()=>[t,A?`smart`:`manual:${F}`,N.join(`,`),P,String(K)].join(`|`),[A,F,P,K,N,t]);p(()=>{let e=b.get(q);if(e){L(e.items),Ne(e.icons),B(e.cursor),W.current=q;return}W.current!==q&&(L(w),Ne(T),B(typeof C==`string`?C:void 0))},[C,T,w,q]),p(()=>{x||b.set(q,{items:I,icons:R,cursor:z})},[x,z,q,R,I]);let Ue=He*G,We=x&&t===`grid`,J=We?I.slice(0,Ue):I,Ge=We?R.slice(0,Ue):R,Ke=t===`waterfall`?6:4,qe=J.length>0?Math.max(0,J.length-Ke):-1,Je=!!z,Ye=Ce&&Ce.trim()||ge||ie,Y=Te??re,X=Number(Ee??te),Z=De??ne,Xe=`flex-1 min-w-0 text-[18px] leading-[24px] font-medium line-clamp-1 ${x?`text-[#1F1F1F]`:`text-text2`}`,Ze=t===`grid`?u:x?l:u,Qe=_e(Se),$e=(t===`waterfall`||!j)&&!!Qe,et=$e?Qe:``,tt=t===`grid`?`flex size-[24px] shrink-0 items-center justify-center ${x?`opacity-100`:`opacity-50`}`:`ml-[8px] flex size-[24px] shrink-0 items-center justify-center ${x?`opacity-100`:`opacity-50`}`,nt=t===`grid`?`size-[16px] ${x?`text-[#1F1F1F]`:`text-text1`}`:x?`h-[12px] w-[12px] text-[#1F1F1F]`:`size-[16px] text-text1`,rt=o({enabled:!x&&t===`grid`,containerRef:Ie,firstRowItemRef:Le,columns:G,itemsCount:J.length,deps:[t]}),it=s({enabled:!x&&t===`waterfall`,containerRef:Fe,firstRowRef:U,deps:[t,J.length]}),at=t===`grid`?rt:it,ot=le(async()=>{if(x)return;if(W.current===q){W.current=q;return}if(b.has(q)){W.current=q;return}let t=A||!!F;if(W.current=q,t)try{if(Be(),!A){if(!F)return;L(await ce(I));return}let t=await e({page_size:K,tags:N.length>0?N:void 0,cat_id:P||void 0},{cache:`no-store`}),n=Array.isArray(t.data?.videos)?t.data.videos:[],r=t.data?.cursor;L(n),B(r)}catch(e){console.error(`推荐位刷新首屏失败(client)`,e)}finally{Ve()}},[Ve,x,A,F,q,P,K,N,I,Be]);p(()=>{ot()},[ot]);let st=le(async()=>{let t=z;if(!(!M||!t||Re.current)){Re.current=!0,Pe(!0);try{let n=await e({cursor:t,page_size:K,tags:N.length>0?N:void 0,cat_id:P||void 0}),r=Array.isArray(n.data?.videos)?n.data.videos:[],i=n.data?.cursor;r.length>0&&L(e=>e.concat(r)),B(e=>{if(!(!r.length||!i))return i===e?void 0:i})}catch(e){console.error(`推荐位加载下一页失败(client)`,e),B(void 0)}finally{Re.current=!1,Pe(!1)}}},[z,P,K,N,M]);p(()=>{let e=H.current;if(!e||!M||!Je)return;let t=new IntersectionObserver(e=>{!e[0]?.isIntersecting||V||st()},{root:null,threshold:0});return t.observe(e),()=>{t.disconnect()}},[st,Je,V,J.length,K,M,qe]),ue(()=>{let e=Fe.current;if(!e||t!==`waterfall`)return;let n=()=>{let t=e.clientWidth||0;Me(t>0?(t-15)/2:0)};n();let r=new ResizeObserver(n);return r.observe(e),()=>{r.disconnect()}},[t]);let Q=h(()=>t===`waterfall`?ke(J,Ge,je):{left:[],right:[]},[je,Ge,J,t]),ct=h(()=>t===`waterfall`?{left:Q.left.map(e=>Oe(e,Y,X,Z)),right:Q.right.map(e=>Oe(e,Y,X,Z))}:{left:[],right:[]},[X,Z,Y,t,Q.left,Q.right]);if(p(()=>{t===`waterfall`&&(Q.left.length||(U.current.left=null),Q.right.length||(U.current.right=null))},[t,Q.left.length,Q.right.length]),!J.length)return null;let $=!x&&ze,lt=!x&&V,ut=at>0?at/2:160;return y(n,{className:`w-full mt-[16px]`,children:[t===`grid`&&y(n,{className:`flex items-center justify-between pl-[16px] pr-0 mb-[16px]`,children:[v(r,{className:Xe,children:Ye}),$e&&v(a,{href:et,"aria-label":`更多`,className:tt,children:v(Ze,{className:nt})})]}),t===`grid`&&y(n,{ref:Ie,className:`relative flex w-full items-start gap-[16px] overflow-x-auto pl-[16px] pr-0`,children:[J.map((e,t)=>{let n=Ge[t],r=ye(e);return v(`div`,{ref:e=>{t===qe&&(H.current=e),t<G&&(Le.current[t]=e)},className:`shrink-0 w-[109px]`,children:v(he,{item:e,icon:n,index:t,showPlayCount:Y&&(r?.showPlayCount??!0),playCountDelta:r?.playCountDelta??X,showEpisode:r?.showEpisode??Z,widthStyle:{width:`100%`}})},Ae(e,t))}),$&&v(n,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),$&&v(n,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:ut},"aria-hidden":!0,children:v(i,{size:`large`,showLabel:!1,className:`text-theme5`})})]}),t===`waterfall`&&v(d,{title:Ye,moreHref:et||void 0,moreIcon:$e?v(Ze,{className:nt}):void 0,titleClassName:Xe,moreLinkClassName:tt,columns:ct,containerClassName:`relative flex w-full gap-[15px] px-[16px]`,getItemRef:({item:e,column:t,columnIndex:n})=>r=>{e.sourceIndex===qe&&(H.current=r),n===0&&(U.current[t]=r)},overlay:$?y(de,{children:[v(n,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),v(n,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:ut},"aria-hidden":!0,children:v(i,{size:`large`,showLabel:!1,className:`text-theme5`})})]}):void 0}),lt&&v(n,{className:`w-full flex justify-center py-[12px]`,children:v(i,{size:`medium`,showLabel:!1,className:`text-theme5`})})]})}function he({item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o}){return v(S,{item:e,icon:t,index:n,showPlayCount:r,playCountDelta:i,showEpisode:a,widthStyle:o})}function S({item:e,icon:i,index:o,showPlayCount:s,playCountDelta:c,showEpisode:l,widthStyle:u}){let d=T(e),f=e.name||e?.title||``,ee=e.id?w(e):`#`,te=M(e,i,o),ne=De(e,l),re=s?E(e.static?.browse_cnt??0,c):``;return v(a,{href:ee,className:`block w-full`,style:u,children:y(n,{className:`relative w-full overflow-hidden rounded-[8px] bg-bg3`,style:{aspectRatio:`109 / 150`},children:[d&&v(t,{src:d,alt:f||`推荐封面`,fill:!0,objectFit:`cover`,className:`object-cover object-top`}),v(n,{className:`pointer-events-none absolute inset-0 rounded-[8px]`,style:fe,"aria-hidden":!0}),te&&v(n,{className:`absolute left-[8px] top-[8px] z-10`,children:v(ge,{url:te})}),ne&&v(n,{className:`absolute right-[8px] top-[10px] z-10 max-w-[56px]`,children:v(r,{as:`span`,className:`block text-right text-[10px] leading-[14px] font-medium not-italic text-text1 line-clamp-1 font-['PingFang_SC']`,children:ne})}),y(n,{className:`absolute left-[8px] right-[8px] bottom-[8px] top-[78px] z-10 flex flex-col justify-end`,children:[v(n,{className:`flex min-h-[40px] w-full items-end`,children:v(r,{as:`h3`,className:`w-full line-clamp-2 text-[14px] font-medium not-italic leading-normal text-white font-['PingFang_SC']`,children:f})}),re&&y(n,{className:`flex h-[20px] items-center gap-[6px]`,children:[v(C,{className:`h-[15px] w-[12px] shrink-0`}),v(r,{as:`span`,className:`shrink-0 whitespace-nowrap text-[14px] font-normal not-italic leading-normal text-text3 font-['PingFang_SC']`,children:re})]})]})]})})}function ge({url:e}){return v(t,{src:e,alt:`角标`,width:96,height:18,className:`h-[18px] w-auto max-w-[96px] object-contain`})}function C({className:e}){let t=m().replace(/:/g,``),n=`grid-heat-outer-${t}`,r=`grid-heat-highlight-left-${t}`,i=`grid-heat-highlight-right-${t}`;return y(`svg`,{viewBox:`0 0 11.9811 15`,fill:`none`,"aria-hidden":!0,className:e,children:[v(`path`,{d:`M2.94686 4.47572C4.52521 4.03871 4.39118 0.994604 4.39118 0C7.76131 0.497302 8.72372 3.31535 9.20563 4.97302C14.02 7.45953 12.568 15.9138 4.87263 14.9191C-2.42073 13.9763 -0.183446 5.34241 2.94686 4.47572Z`,fill:`url(#${n})`}),v(`path`,{d:`M5.66995 6.45327C6.82541 4.06622 5.16406 1.16037 4.20118 0C4.13684 1.21533 4.37554 3.91735 2.75432 4.45159C1.0513 5.01279 0.16048 7.16814 0 8.16274L3.26275 9.93438C3.58371 9.76861 4.51449 8.84032 5.66995 6.45327Z`,fill:`url(#${r})`,transform:`translate(0.19 0.01)`}),v(`path`,{d:`M3.55359 3.57102C2.65587 2.53581 3.298 0.846416 3.48828 0C0.514078 0.39887 -0.0720454 5.22416 0.0066677 7.58695L4.28508 8.57876C4.99512 7.12607 4.45131 4.60622 3.55359 3.57102Z`,fill:`url(#${i})`,transform:`translate(7.39 2.85)`}),y(`defs`,{children:[y(`linearGradient`,{id:n,x1:`7.35676`,y1:`1.93157`,x2:`3.49864`,y2:`15.4663`,gradientUnits:`userSpaceOnUse`,children:[v(`stop`,{offset:`0.0817308`,stopColor:`#FF3F49`}),v(`stop`,{offset:`0.6`,stopColor:`#FF4D56`}),v(`stop`,{offset:`1`,stopColor:`#FFA060`})]}),y(`linearGradient`,{id:r,x1:`4.39349`,y1:`0`,x2:`0.834125`,y2:`10.4383`,gradientUnits:`userSpaceOnUse`,children:[v(`stop`,{stopColor:`#FFBCB5`}),v(`stop`,{offset:`0.834055`,stopColor:`#FE676F`,stopOpacity:`0`})]}),y(`linearGradient`,{id:i,x1:`2.30551`,y1:`2.82163`,x2:`0.860506`,y2:`6.96924`,gradientUnits:`userSpaceOnUse`,children:[v(`stop`,{stopColor:`#FFA49B`}),v(`stop`,{offset:`1`,stopColor:`#FE676F`,stopOpacity:`0`})]})]})]})}function w(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id||``}/${t}/episode/1`}function _e(e){return e?e.trim():``}function ve(e,t,n){let r=Number(e);return!Number.isFinite(r)||r<=0?t:Math.min(n,Math.floor(r))}function ye(e){return e[se]}function T(e){return e.img_y||e.img_x||e?.coverUrl}function be(e){return typeof e==`string`?e:``}function xe(e){return typeof e==`string`?e.trim():``}function Se(e){return xe(e.img_type).toLowerCase()===`long`?`short`:`tall`}function Ce(e,t){return t===`short`?e.img_x||e.img_y||e?.coverUrl:e.img_y||e.img_x||e?.coverUrl}function we(e,t){return xe(e.cat_name)||(t?Ee(e,!0):``)}function E(e,t){let n=A(e,t);return n<=0?``:`${D(n)}热度`}function D(e){return!Number.isFinite(e)||e<=0?`0`:e>=1e4?`${Math.floor(e/1e4)}万`:Math.floor(e).toString()}function Te(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t>10&&t<=100?t/10:Math.min(t,10)}function Ee(e,t){return t?O(e)||j(Number(e.duration||0)):``}function De(e,t){return t?O(e):``}function O(e){if(!k(e))return``;let t=e.update_status===`0`,n=Number(e.episode_cnt||e.links?.length||0);return n>0?`${t?`更新至`:`全`}${n}集`:``}function k(e){if(Number(e.type??0)===2)return!0;let t=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(t)&&t>1}function A(e,t){let n=Number(e||0),r=Number(t||0);return!Number.isFinite(n)||!Number.isFinite(r)?0:Math.max(0,n+r)}function j(e){if(!Number.isFinite(e)||e<=0)return``;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`}function M(e,t,n){return be(e.badge_url)||be(t?.material_url)||``}function Oe(e,t,n,r){let i=Se(e.item),a=Ce(e.item,i),o=e.item.name||e.item?.title||``,s=e.item.id?w(e.item):`#`,c=M(e.item,e.icon,e.index),l=we(e.item,r),u=t?E(e.item.static?.browse_cnt??0,n):``,d=Te(e.item.score);return{key:Ae(e.item,e.index),sourceIndex:e.index,href:s,cardKind:i,coverUrl:a,title:o,badgeImageUrl:c,metaPrimaryText:l,heatText:u,score:d}}function ke(e,t,n){let r=[],i=[],a=n<=0,o=0,s=0;return e.forEach((e,c)=>{let l=t[c];if(a){c%2==0?r.push({item:e,icon:l,index:c}):i.push({item:e,icon:l,index:c});return}let u=N(n,e);o<=s?(r.push({item:e,icon:l,index:c}),o+=u):(i.push({item:e,icon:l,index:c}),s+=u)}),{left:r,right:i}}function N(e,t){return e?(Se(t)===`tall`?218:120)+16:0}function Ae(e,t){return e.id?`home-recommend-${e.id}`:`home-recommend-${t}`}export{x as default};
|
|
2
|
+
"use client";import{pContentGetPopularVideoList as e}from"../../../../../service/generated/client.mjs";import{useRouter as t}from"../../../../../utils/use-compatible-router.mjs";import{Image as n}from"../../../../ui/image.mjs";import{Box as r}from"../../../../ui/box.mjs";import{Text as i}from"../../../../ui/text.mjs";import a from"../../../../ui/loading.mjs";import o from"../../../../ui/link.mjs";import{useGridFirstRowHeight as s,useWaterfallFirstRowHeight as c}from"../../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as l}from"../../../../../hooks/use-min-duration-loading.mjs";import u from"../../../../../assets/icons/detail/video_flag.mjs";import{getFeedAdIcon as ee,getFeedAdJumpUrl as d,isFeedAdItem as f}from"../../advertisement/feed-ad/index.mjs";import{MiniThreeCard as p}from"../../../../common/cards/mini-three-card.mjs";import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as m,HOME_RECOMMEND_DEFAULT_GRID_ROWS as te,HOME_RECOMMEND_DEFAULT_PLAY_COUNT_DELTA as h,HOME_RECOMMEND_DEFAULT_SHOW_EPISODE as ne,HOME_RECOMMEND_DEFAULT_SHOW_PLAY_COUNT as g,HOME_RECOMMEND_MAX_GRID_COLUMNS as re,HOME_RECOMMEND_MAX_GRID_ROWS as ie}from"./home-recommend-default-config.mjs";import{HOME_RECOMMEND_CARD_CONFIG_FIELD as _}from"./home-recommend-preview.mjs";import{enrichHomeRecommendItemsWithVideoDetails as v}from"./home-recommend-video-detail.mjs";import{useCallback as y,useEffect as b,useLayoutEffect as ae,useMemo as x,useRef as S,useState as C}from"react";import{jsx as w,jsxs as T}from"react/jsx-runtime";const oe={},se={list:[]},ce=new Map;function E({variant:n,props:o=oe,data:u=se,mode:ee=`renderer`}){let d=ee===`editor`,f=t(),{list:p,title:_,cursor:E}=u,D=x(()=>Array.isArray(p)?p:[],[p]),O=x(()=>Array.isArray(u.icons)?u.icons:[],[u.icons]),{rows:pe,columns:me,moreLink:he,title:ge,smartTagEnabled:_e,smartTagIds:k,catId:A,showPlayCount:ve,playCountDelta:ye,showEpisode:xe,enableInfinite:Se,items:M}=o,N=_e===!0,Ce=Se===!0&&N,P=!d&&Ce&&D.length>=16,F=x(()=>Array.isArray(k)?k.map(e=>String(e||``).trim()).filter(Boolean):[],[k]),I=typeof A==`string`?A.trim():``,L=x(()=>N||!Array.isArray(M)?``:M.map(e=>String(e?.contentId||``).trim()).filter(Boolean).join(`,`),[N,M]),[we,Te]=C(0),[R,z]=C(D),[B,Ee]=C(O),[V,H]=C(()=>typeof E==`string`?E:void 0),[De,Oe]=C(!1),ke=S(null),Ae=S(null),U=S(null),je=S([]),W=S({left:null,right:null}),Me=S(!1),G=S(``),{isLoading:Ne,show:Pe,hide:Fe}=l(600),Ie=de(pe,te,ie),K=de(me,m,re),q=Ce?16:n===`grid`?Ie*K:16,J=x(()=>[n,N?`smart`:`manual:${L}`,F.join(`,`),I,String(q)].join(`|`),[N,L,I,q,F,n]);b(()=>{let e=ce.get(J);if(e){z(e.items),Ee(e.icons),H(e.cursor),G.current=J;return}G.current!==J&&(z(D),Ee(O),H(typeof E==`string`?E:void 0))},[E,O,D,J]),b(()=>{d||ce.set(J,{items:R,icons:B,cursor:V})},[d,V,J,B,R]);let Le=Ie*K,Re=d&&n===`grid`,Y=Re?R.slice(0,Le):R,ze=Re?B.slice(0,Le):B,Be=n===`waterfall`?6:4,X=Y.length>0?Math.max(0,Y.length-Be):-1,Ve=!!V,He=ge&&ge.trim()||_||``,Ue=ve??g,We=Number(ye??h),Ge=xe??ne,Ke=!Ce,Z=Ke?ue(he):``,qe=Ke&&!!Z,Je=s({enabled:!d&&n===`grid`,containerRef:Ae,firstRowItemRef:je,columns:K,itemsCount:Y.length,deps:[n]}),Ye=c({enabled:!d&&n===`waterfall`,containerRef:ke,firstRowRef:W,deps:[n,Y.length]}),Xe=n===`grid`?Je:Ye,Ze=y(async()=>{if(d)return;if(G.current===J){G.current=J;return}let t=N||!!L;if(G.current=J,t)try{if(Pe(),!N){if(!L)return;z(await v(R));return}let t=await e({page_size:q,tags:F.length>0?F:void 0,cat_id:I||void 0},{cache:`no-store`}),n=Array.isArray(t.data?.videos)?t.data.videos:[],r=t.data?.cursor;z(n),H(r)}catch(e){console.error(`推荐位刷新首屏失败(client)`,e)}finally{Fe()}},[Fe,d,N,L,J,I,q,F,R,Pe]);b(()=>{Ze()},[Ze]);let Qe=y(async()=>{let t=V;if(!(!P||!t||Me.current)){Me.current=!0,Oe(!0);try{let n=await e({cursor:t,page_size:q,tags:F.length>0?F:void 0,cat_id:I||void 0}),r=Array.isArray(n.data?.videos)?n.data.videos:[],i=n.data?.cursor;r.length>0&&z(e=>e.concat(r)),H(e=>{if(!(!r.length||!i))return i===e?void 0:i})}catch(e){console.error(`推荐位加载下一页失败(client)`,e),H(void 0)}finally{Me.current=!1,Oe(!1)}}},[V,I,q,F,P]),$e=y(()=>{if(Z){if(Z.startsWith(`http`)){window.location.href=Z;return}f.push(Z)}},[Z,f]);b(()=>{let e=U.current;if(!e||!P||!Ve)return;let t=new IntersectionObserver(e=>{!e[0]?.isIntersecting||De||Qe()},{root:null,threshold:0});return t.observe(e),()=>{t.disconnect()}},[Qe,Ve,De,Y.length,q,P,X]),ae(()=>{let e=ke.current;if(!e||n!==`waterfall`)return;let t=()=>{let t=e.clientWidth||0;Te(t>0?(t-12)/2:0)};t();let r=new ResizeObserver(t);return r.observe(e),()=>{r.disconnect()}},[n]);let Q=x(()=>n===`waterfall`?be(Y,ze,we):{left:[],right:[]},[we,ze,Y,n]);if(b(()=>{n===`waterfall`&&(Q.left.length||(W.current.left=null),Q.right.length||(W.current.right=null))},[n,Q.left.length,Q.right.length]),!Y.length)return null;let $=!d&&Ne,et=!d&&De,tt=Xe>0?Xe/2:160;return T(r,{className:`w-full mt-[16px]`,children:[T(r,{className:`flex items-center justify-between px-[12px] mb-[8px]`,children:[w(i,{className:`flex-1 min-w-0 text-text1 text-[18px] leading-[26px] font-bold line-clamp-1`,children:He}),qe&&w(i,{className:`text-text3 text-[12px] leading-[18px] cursor-pointer`,onClick:$e,children:`更多`})]}),n===`grid`&&T(r,{ref:Ae,className:`w-full flex flex-wrap px-[12px] relative`,children:[Y.map((e,t)=>{let r=ze[t],i=fe(e),a=Ue&&(i?.showPlayCount??!0),o=i?.playCountDelta??We,s=i?.showEpisode??Ge,c=t%K,l=K>1?{paddingLeft:12*c/K,paddingRight:12*(K-c-1)/K}:void 0;return w(`div`,{ref:e=>{t===X&&(U.current=e),t<K&&(je.current[t]=e)},className:`min-w-0`,style:{width:`${100/K}%`,...l||{}},children:w(le,{variant:n,item:e,icon:r,index:t,showPlayCount:a,playCountDelta:o,showEpisode:s,widthStyle:{width:`100%`}})},j(e,t))}),$&&w(r,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),$&&w(r,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:tt},"aria-hidden":!0,children:w(a,{size:`large`,showLabel:!1,className:`text-theme5`})})]}),n===`waterfall`&&T(r,{ref:ke,className:`w-full px-[12px] flex gap-[12px] relative`,children:[w(r,{className:`flex-1 min-w-0 flex flex-col`,children:Q.left.map((e,t)=>{let r=fe(e.item),i=Ue&&(r?.showPlayCount??!0),a=r?.playCountDelta??We,o=r?.showEpisode??Ge;return w(`div`,{ref:n=>{e.index===X&&(U.current=n),t===0&&(W.current.left=n)},children:w(le,{variant:n,item:e.item,icon:e.icon,index:e.index,showPlayCount:i,playCountDelta:a,showEpisode:o,widthStyle:{width:`100%`}})},j(e.item,e.index))})}),w(r,{className:`flex-1 min-w-0 flex flex-col`,children:Q.right.map((e,t)=>{let r=fe(e.item),i=Ue&&(r?.showPlayCount??!0),a=r?.playCountDelta??We,o=r?.showEpisode??Ge;return w(`div`,{ref:n=>{e.index===X&&(U.current=n),t===0&&(W.current.right=n)},children:w(le,{variant:n,item:e.item,icon:e.icon,index:e.index,showPlayCount:i,playCountDelta:a,showEpisode:o,widthStyle:{width:`100%`}})},j(e.item,e.index))})}),$&&w(r,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),$&&w(r,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:tt},"aria-hidden":!0,children:w(a,{size:`large`,showLabel:!1,className:`text-theme5`})})]}),et&&w(r,{className:`w-full flex justify-center py-[12px]`,children:w(a,{size:`medium`,showLabel:!1,className:`text-theme5`})})]})}function le({variant:e,item:t,icon:a,index:s,showPlayCount:c,playCountDelta:l,showEpisode:m,widthStyle:te}){let h=f(t),ne=pe(t),g=t.name||t?.title||``,re=_e(k(t.static?.browse_cnt??0,l)),ie=he(t,m),_=ye(t,a,s),v=h?d(t):O(t),y=c&&!h,b=m&&!h;if(h){let e=ee(t)||ne;return w(r,{className:`w-full`,style:te,children:T(o,{href:v,className:`block w-full`,children:[T(r,{className:`relative w-full overflow-hidden rounded-[8px] bg-white`,style:{aspectRatio:`175 / 280`},children:[e&&w(r,{className:`absolute top-0`,style:{left:`-44.57%`,width:`321.14%`,height:`100%`},children:w(n,{src:e,alt:g||`广告封面`,fill:!0,objectFit:`cover`})}),w(r,{className:`absolute right-0 top-0 flex items-center justify-center`,style:{width:`32%`,height:`8.93%`,minWidth:`56px`,minHeight:`25px`,borderBottomLeftRadius:`8px`,backgroundColor:`rgba(0, 0, 0, 0.33)`},children:w(i,{className:`text-white`,style:{fontSize:`12px`,lineHeight:`normal`},children:`广告`})})]}),w(r,{className:`pt-[8px]`,children:w(i,{as:`h3`,className:`line-clamp-1 text-[14px] leading-[20px] text-white`,children:g})})]})})}return w(p,{url:ne,text:g,className:`w-full`,style:te,topRightChild:_?w(D,{url:_}):void 0,bottomLeftChild:y?T(r,{className:`h-[20px] leading-[20px] text-[#fff] text-[12px] px-[4px] py-0 rounded-[4px] bg-[rgba(255,255,255,0.1)] ml-[4px] flex items-center gap-[4px]`,children:[w(u,{className:`w-[12px] h-[12px] text-[#fff] shrink-0`}),re]}):null,bottomRightChild:b?ie&&w(i,{className:`text-[#fff] text-[12px] leading-[18px] pr-2`,children:ie}):null,textChild:w(r,{className:`py-[4px]`,children:w(i,{as:`h3`,className:`text-text1 text-[16px] leading-[24px] ${e===`waterfall`?`break-words line-clamp-3`:`line-clamp-1`}`,children:g})}),linkPath:v})}function D({url:e}){return w(r,{className:`relative w-[40px] h-[20px]`,children:w(n,{src:e,alt:`corner`,width:40,height:20,className:`w-full h-auto`})})}function O(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id||``}/${t}/episode/1`}function ue(e){return e?e.trim():``}function de(e,t,n){let r=Number(e);return!Number.isFinite(r)||r<=0?t:Math.min(n,Math.floor(r))}function fe(e){return e[_]}function pe(e){return e.img_y||e.img_x||e?.coverUrl}function me(e){return typeof e==`string`?e:``}function he(e,t){if(!t)return``;if(ge(e)){let t=e.update_status===`0`,n=Number(e.episode_cnt||e.links?.length||0);return n>0?`${t?`更新至`:`全`}${n}集`:``}return ve(Number(e.duration||0))}function ge(e){if(Number(e.type??0)===2)return!0;let t=Number(e.episode_cnt||e.links?.length||0);return Number.isFinite(t)&&t>1}function _e(e){return!Number.isFinite(e)||e<=0?`0`:e>=1e6?`${A(e/1e6)}M`:e>=1e3?`${A(e/1e3)}k`:Math.floor(e).toString()}function k(e,t){let n=Number(e||0),r=Number(t||0);return!Number.isFinite(n)||!Number.isFinite(r)?0:Math.max(0,n+r)}function A(e){let t=e.toFixed(1);return t.endsWith(`.0`)?t.slice(0,-2):t}function ve(e){if(!Number.isFinite(e)||e<=0)return``;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`}function ye(e,t,n){return me(e.badge_url)||me(t?.material_url)||``}function be(e,t,n){let r=[],i=[],a=n<=0,o=0,s=0;return e.forEach((e,c)=>{let l=t[c];if(a){c%2==0?r.push({item:e,icon:l,index:c}):i.push({item:e,icon:l,index:c});return}let u=xe(n,e);o<=s?(r.push({item:e,icon:l,index:c}),o+=u):(i.push({item:e,icon:l,index:c}),s+=u)}),{left:r,right:i}}function xe(e,t){if(!e)return 0;let n=e*1.3461538461538463,r=he(t,!0)?18:0;return n+20+r+6+16}function j(e,t){return e.id?`home-recommend-${e.id}`:`home-recommend-${t}`}export{E as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as e,HOME_RECOMMEND_DEFAULT_GRID_ROWS as t,HOME_RECOMMEND_DEFAULT_TITLE as n,HOME_RECOMMEND_MAX_GRID_COLUMNS as r,HOME_RECOMMEND_MAX_GRID_ROWS as i}from"./home-recommend-default-config.mjs";const a=`/static/components-thumb/video_player.png`,o=`__homeRecommendCardConfig`,s=
|
|
2
|
+
import{HOME_RECOMMEND_DEFAULT_GRID_COLUMNS as e,HOME_RECOMMEND_DEFAULT_GRID_ROWS as t,HOME_RECOMMEND_DEFAULT_TITLE as n,HOME_RECOMMEND_MAX_GRID_COLUMNS as r,HOME_RECOMMEND_MAX_GRID_ROWS as i}from"./home-recommend-default-config.mjs";const a=`/static/components-thumb/video_player.png`,o=`__homeRecommendCardConfig`,s=Array.from({length:60},(e,t)=>{let n=t%2==1,r={browse_cnt:12345+t*731};return{id:`preview-recommend-${t+1}`,name:`${`媒资标题`.repeat((t+1)*2)}`,img_y:a,img_x:a,type:n?2:1,duration:n?0:60*(18+t),episode_cnt:n?12+t%3*6:0,static:r}});function c({variant:e,enableInfinite:t,rows:n,columns:r,items:i}){let a=Array.isArray(i)?i.length:0;return e===`grid`?a>0?a:Math.max(f(n,r),2,a):t?Math.max(8,a):e===`waterfall`?Math.max(4,a):Math.max(2,a)}function l(e){let t=Math.max(1,Math.floor(e));return Array.from({length:t},(e,t)=>{let n=s[t%s.length];return{...n,id:`preview-recommend-${t+1}`,name:n.name}})}function u(e,t,n){return t.length?e.map((e,r)=>{let i=t[r];if(!i)return e;let a=(i.contentId?n.get(i.contentId):void 0)||e,s=i.titleMode===`custom`?i.title?.trim()||a.name||e.name||``:a.name||e.name||``,c=i.coverUrl?.trim()||``,l=i.coverMode===`content`,u=l?a.img_y||a.img_x||e.img_y||e.img_x||c||``:c||a.img_y||a.img_x||e.img_y||e.img_x||``,f=l?a.img_x||a.img_y||e.img_x||e.img_y||c||``:c||a.img_x||a.img_y||e.img_x||e.img_y||``,p=a.badge_url||e.badge_url||``,m=i.badge_url??p,h=d(i,a),g=i.is_ad===!0;return{...e,...a,id:a.id||e.id||`preview-recommend-${r+1}`,name:s,img_y:u,img_x:f,is_ad:g,ad_advertise_url:g?i.ad_advertise_url?.trim()||``:void 0,ad_advertise_icon:g?i.ad_advertise_icon?.trim()||u||f||``:void 0,badge_url:m||void 0,[o]:h}}):e}function d(e,t){let n=t[o],r={showPlayCount:e.showPlayCount??n?.showPlayCount,playCountDelta:e.playCountDelta??n?.playCountDelta,showEpisode:e.showEpisode??n?.showEpisode};if(!(r.showPlayCount===void 0&&r.playCountDelta===void 0&&r.showEpisode===void 0))return r}function f(n,a){return p(n,t,1,i)*p(a,e,1,r)}function p(e,t,n,r){let i=Number(e);return Number.isFinite(i)?Math.min(r,Math.max(n,Math.floor(i))):t}function m({variant:e,schemaTitle:t,enableInfinite:r,smartTagEnabled:i,rows:a,columns:o,items:s}){let d=new Map,f=i?[]:Array.isArray(s)?s.filter(Boolean):[],p=u(l(c({variant:e,enableInfinite:r,rows:a,columns:o,items:f})),f,d);return{title:t&&t.trim()||n,list:p,icons:[],cursor:``,show_style:void 0}}export{o as HOME_RECOMMEND_CARD_CONFIG_FIELD,m as buildHomeRecommendEditorPreviewData};
|
|
@@ -13,14 +13,14 @@ import { AdRuntimeProvider, AdRuntimeProviderProps } from "./advertisement/ad-ru
|
|
|
13
13
|
import { BannerAd } from "./advertisement/banner-ad/client.mjs";
|
|
14
14
|
import { BannerAdServer } from "./advertisement/banner-ad/server.mjs";
|
|
15
15
|
import { bannerAdMaterial } from "./advertisement/banner-ad/material.mjs";
|
|
16
|
-
import { FeedAdBadge, FeedAdItemLike, getFeedAdIcon, getFeedAdJumpUrl, isFeedAdItem } from "./advertisement/feed-ad/index.mjs";
|
|
16
|
+
import { FeedAdBadge, FeedAdItemLike, FeedAdPayloadLike, getFeedAdIcon, getFeedAdJumpUrl, isFeedAdItem } from "./advertisement/feed-ad/index.mjs";
|
|
17
17
|
import { FloatingAd } from "./advertisement/floating-ad/client.mjs";
|
|
18
18
|
import { FloatingAdServer } from "./advertisement/floating-ad/server.mjs";
|
|
19
19
|
import { floatingAdMaterial } from "./advertisement/floating-ad/material.mjs";
|
|
20
20
|
import { IconAd } from "./advertisement/icon-ad/client.mjs";
|
|
21
21
|
import { IconAdServer } from "./advertisement/icon-ad/server.mjs";
|
|
22
22
|
import { iconAdMaterial } from "./advertisement/icon-ad/material.mjs";
|
|
23
|
-
import { PopupAdInspectorProps, PopupAdItem, PopupAdProps, popupAdInspectorDefaultProps, popupAdInspectorPropsSchema } from "./advertisement/popup-ad/schema.mjs";
|
|
23
|
+
import { PopupAdBaseProps, PopupAdInspectorProps, PopupAdItem, PopupAdProps, popupAdInspectorDefaultProps, popupAdInspectorPropsSchema } from "./advertisement/popup-ad/schema.mjs";
|
|
24
24
|
import { PopupAd } from "./advertisement/popup-ad/client.mjs";
|
|
25
25
|
import { PopupAdServer } from "./advertisement/popup-ad/server.mjs";
|
|
26
26
|
import { popupAdMaterial } from "./advertisement/popup-ad/material.mjs";
|
|
@@ -78,11 +78,6 @@ import { schema as schema$11 } from "./home-recommend/home-recommend-waterfall/s
|
|
|
78
78
|
import { HomeRecommendWaterfall } from "./home-recommend/home-recommend-waterfall/server.mjs";
|
|
79
79
|
import { homeRecommendWaterfallMaterial } from "./home-recommend/home-recommend-waterfall/material.mjs";
|
|
80
80
|
import "./home-recommend/index.mjs";
|
|
81
|
-
import { hotRecommendInspectorPropsSchema } from "./hot-recommend/schema.mjs";
|
|
82
|
-
import { HotRecommendClient, HotRecommendProps } from "./hot-recommend/client.mjs";
|
|
83
|
-
import { HotRecommendServer } from "./hot-recommend/server.mjs";
|
|
84
|
-
import { hotRecommendMaterial } from "./hot-recommend/material.mjs";
|
|
85
|
-
import "./hot-recommend/index.mjs";
|
|
86
81
|
import { imageTextRecommendInspectorPropsSchema } from "./image-text-recommend/schema.mjs";
|
|
87
82
|
import { ImageTextRecommendClient, ImageTextRecommendProps } from "./image-text-recommend/client.mjs";
|
|
88
83
|
import { ImageTextRecommendServer } from "./image-text-recommend/server.mjs";
|
|
@@ -102,7 +97,7 @@ import { BasicPostCardClient } from "./post-card/variants/basic-post-card/runtim
|
|
|
102
97
|
import { schema as schema$13 } from "./post-card/variants/basic-post-card/schema/index.mjs";
|
|
103
98
|
import "./post-card/index.mjs";
|
|
104
99
|
import { ProfileHeaderInspectorProps, UserProfileHeaderAuthConfig, UserProfileHeaderClientProps, profileHeaderInspectorDefaultProps, profileHeaderInspectorPropsSchema } from "./profile/profile-header/schema.mjs";
|
|
105
|
-
import { UserProfileHeaderClient
|
|
100
|
+
import { UserProfileHeaderClient } from "./profile/profile-header/client.mjs";
|
|
106
101
|
import { profileHeaderMaterial, profileHeaderMaterialWithDisabledBackground } from "./profile/profile-header/material.mjs";
|
|
107
102
|
import { ProfileMainInspectorProps, UserProfileMainProps, profileMainInspectorDefaultProps, profileMainInspectorPropsSchema } from "./profile/profile-main/schema.mjs";
|
|
108
103
|
import { UserProfileMainClient } from "./profile/profile-main/client.mjs";
|
|
@@ -146,10 +141,6 @@ import { SearchInputClient, SearchInputProps } from "./search-input/client.mjs";
|
|
|
146
141
|
import { SearchInputServer } from "./search-input/server.mjs";
|
|
147
142
|
import { searchInputMaterial } from "./search-input/material.mjs";
|
|
148
143
|
import "./search-input/index.mjs";
|
|
149
|
-
import { SearchWaterfallRecommendClient, SearchWaterfallRecommendProps } from "./search-waterfall-recommend/client.mjs";
|
|
150
|
-
import { SearchWaterfallRecommendServer } from "./search-waterfall-recommend/server.mjs";
|
|
151
|
-
import { searchWaterfallRecommendMaterial } from "./search-waterfall-recommend/material.mjs";
|
|
152
|
-
import "./search-waterfall-recommend/index.mjs";
|
|
153
144
|
import { TabBarInspectorProps, tabBarInspectorDefaultProps, tabBarInspectorPropsSchema } from "./tab-bar/schema.mjs";
|
|
154
145
|
import { TabBarClient, TabBarItem, TabBarItemConfigType, TabBarProps } from "./tab-bar/client.mjs";
|
|
155
146
|
import { TabBarServer } from "./tab-bar/server.mjs";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
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/view.mjs";import{
|
|
2
|
+
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{getFeedAdIcon as i,getFeedAdJumpUrl as a,isFeedAdItem as o}from"../advertisement/feed-ad/index.mjs";import s from"../../../../assets/icons/view.mjs";import{jsx as c,jsxs as l}from"react/jsx-runtime";function u(e){let t=Number(e||0);return Number.isNaN(t)||t<=0?`0`:t>=1e4?`${(t/1e4).toFixed(1)}w`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function d({data:d}){return d?c(t,{children:(Array.isArray(d)?d:[d]).map((d,f)=>{if(!d||typeof d!=`object`)return null;let{id:p,title:m,desc:h,cover:g,tagImageUrl:_,showEpisode:v,episodeText:y,showPlayCount:b,play_count:x}=d,S=o(d),C=m||``,w=(S?i(d):``)||g,T=S?a(d):p?`/video/${p}/${C?encodeURIComponent(C):``}`:`#`,E=_?String(_):null,D=y==null?``:String(y).trim(),O=!S&&(v??!0)&&D!==``,k=!S&&(b??!0),A=u(x);return S?c(t,{children:c(r,{href:T,children:l(t,{className:`relative w-full overflow-hidden rounded-[8px] bg-[rgba(90,90,90,0.48)]`,style:{aspectRatio:`358 / 263`},children:[l(t,{className:`absolute inset-x-0 top-0 overflow-hidden`,style:{height:`83.65%`},children:[w&&c(t,{className:`absolute top-0`,style:{left:`-6.42%`,width:`202.24%`,height:`163.64%`},children:c(e,{src:w,alt:C||`广告封面`,fill:!0,objectFit:`cover`})}),c(t,{className:`absolute right-0 top-0 flex items-center justify-center`,style:{width:`15.64%`,height:`9.51%`,minWidth:`56px`,minHeight:`25px`,borderBottomLeftRadius:`16px`,backgroundColor:`rgba(0, 0, 0, 0.33)`},children:c(n,{className:`text-white`,style:{fontSize:`clamp(12px, 3.35vw, 16px)`,lineHeight:`normal`},children:`广告`})})]}),l(t,{className:`absolute inset-x-0 bottom-0 flex items-center justify-between bg-white`,style:{height:`16.35%`,minHeight:`43px`,padding:`0 3.35%`},children:[c(t,{className:`min-w-0 flex-1`,style:{paddingRight:`3.35%`},children:c(n,{as:`h3`,className:`line-clamp-1 text-[#161616]`,style:{fontSize:`clamp(14px, 3.9vw, 18px)`,lineHeight:`normal`},children:C})}),c(t,{className:`flex shrink-0 items-center justify-center rounded-[16px] border border-[#FD4C5E]`,style:{width:`14.53%`,height:`10.27%`,minWidth:`52px`,minHeight:`27px`},children:c(n,{className:`text-[#FD4C5E]`,style:{fontSize:`clamp(14px, 3.9vw, 18px)`,lineHeight:`normal`},children:`前往`})})]})]})})},p||C||`large-grid-item-${f}`):c(t,{children:l(r,{href:T,children:[l(t,{className:`relative w-full overflow-hidden rounded-[12px] bg-neutral-800`,style:{aspectRatio:`16/9`},children:[w&&c(e,{src:w,alt:C||`封面`,fill:!0,objectFit:`cover`}),E&&c(t,{className:`absolute top-0 right-0 z-10 w-[37px] h-[20px]`,children:c(e,{src:E,alt:C||`角标`,fill:!0,sizes:`37px`,className:`object-contain`})}),c(t,{className:`absolute inset-x-0 bottom-0 h-[40px] bg-gradient-to-t from-black/80 to-transparent z-0 pointer-events-none`}),k&&l(t,{className:`absolute bottom-0 left-[8px] mb-[6px] z-10 flex items-center gap-[4px]`,children:[c(s,{className:`h-[14px] w-[14px] text-white`}),c(n,{as:`span`,className:`text-[12px] font-medium text-white drop-shadow-md`,children:A})]}),O&&c(t,{className:`absolute bottom-0 right-[8px] mb-[6px] z-10 flex items-center`,children:c(n,{as:`span`,className:`text-[12px] font-medium text-white drop-shadow-md`,children:D})})]}),l(t,{className:`flex items-center justify-between gap-[12px] pt-[10px] px-2`,children:[l(t,{className:`flex-1 min-w-0`,children:[c(n,{as:`h3`,className:`text-[16px] font-semibold leading-[24px] text-text1 line-clamp-1`,children:C}),h&&c(n,{as:`p`,className:`mt-[4px] text-[13px] leading-[20px] text-text2 line-clamp-1`,children:h})]}),c(n,{className:`shrink-0 rounded-[20px] border border-[#FD4C5E] px-[24px] py-[8px] text-[14px] font-normal text-[#FD4C5E]`,children:`观看`})]})]})},p||C||`large-grid-item-${f}`)})}):null}export{d as LargeGridItemClient};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{isClient as e}from"../../../../utils/common.mjs";import{pContentBatchGetVideoDetail as t}from"../../../../service/generated/client.mjs";import{Box as n}from"../../../ui/box.mjs";import{Text as r}from"../../../ui/text.mjs";import i from"../../../ui/loading.mjs";import a from"../../../ui/link.mjs";import{useSingleFirstRowHeight as o}from"../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as s}from"../../../../hooks/use-min-duration-loading.mjs";import c from"../../../../assets/icons/common/right_arrow.mjs";import{isFeedAdItem as l}from"../advertisement/feed-ad/index.mjs";import{LargeGridItemClient as u}from"./card-item.mjs";import{largeFeatureGridInspectorDefaultProps as d}from"./schema.mjs";import{useEffect as f,useMemo as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v=[],y=d.data??[];function b(e){return e==null}function x(e,t){return b(e)?t:e}function S(e){return typeof e==`string`?e.trim():``}function C(e){return S(e)}function w(e){let t=Number(e);if(!(!Number.isFinite(t)||t<0))return t}function T(e){let t=e,n=S(e.update_status)===`0`,r=(Array.isArray(t.episodes)?t.episodes.length:0)||(Array.isArray(e.video_episodes)?e.video_episodes.length:0)||(Array.isArray(e.links)?e.links.length:0)||(w(e.episode_cnt)??0);return!Number.isFinite(r)||r<=0?``:`${n?`更新至`:`全`}${Math.floor(r)}集`}function E(e,t){return t?{...e,...t,id:x(t.id,e.id),cover:x(t.cover,e.cover),title:x(t.title,e.title),desc:x(t.desc,e.desc),play_count:x(t.play_count,e.play_count),showPlayCount:t.showPlayCount??e.showPlayCount,episodeText:x(t.episodeText,e.episodeText),showEpisode:t.showEpisode??e.showEpisode,useContentCover:t.useContentCover??e.useContentCover,tagImageUrl:x(t.tagImageUrl,e.tagImageUrl)}:e}function D(e,t){if(!t)return e;let n=e.items;return{...e,...t,title:x(t.title,e.title),moreUrl:x(t.moreUrl,e.moreUrl),moreLinkType:t.moreLinkType??e.moreLinkType,items:n?E(n,t.items):t.items}}function O({mode:d=`renderer`,data:b=v}){let x=d===`editor`,S=b??v,E=Array.isArray(S)&&S.length>0,O=p(()=>E?[D(y[0],S[0])]:y,[E,S]),[k,A]=h(O),j=m(``),M=m(null),{isLoading:N,show:P,hide:F,cancel:I}=s(500);f(()=>{A(O)},[O]);let L=o({enabled:!x,containerRef:M,itemRef:M,deps:[k.length]}),R=p(()=>{if(x||!E)return``;let e=O.map(e=>C(e?.items?.id)).filter(Boolean);return Array.from(new Set(e)).join(`,`)},[E,x,O]);if(f(()=>{if(x||!e()||!R||j.current===R)return;j.current=R;let n=!1;async function r(){try{P();let e=await t({ids:R.split(`,`).filter(Boolean)},{cache:`no-store`}),r=Array.isArray(e.data?.videos)?e.data.videos:[],i=new Map;if(r.forEach(e=>{let t=C(e.video_id||e.id||e.mid);t&&i.set(t,e)}),n)return;A(e=>e.map(e=>{let t=e.items;if(!t||l(t))return e;let n=C(t.id),r=n?i.get(n):void 0;if(!r)return e;let a=w(r.play_count)??w(r.browse_count)
|
|
2
|
+
"use client";import{isClient as e}from"../../../../utils/common.mjs";import{pContentBatchGetVideoDetail as t}from"../../../../service/generated/client.mjs";import{Box as n}from"../../../ui/box.mjs";import{Text as r}from"../../../ui/text.mjs";import i from"../../../ui/loading.mjs";import a from"../../../ui/link.mjs";import{useSingleFirstRowHeight as o}from"../../../../hooks/use-first-row-height.mjs";import{useMinDurationLoading as s}from"../../../../hooks/use-min-duration-loading.mjs";import c from"../../../../assets/icons/common/right_arrow.mjs";import{isFeedAdItem as l}from"../advertisement/feed-ad/index.mjs";import{LargeGridItemClient as u}from"./card-item.mjs";import{largeFeatureGridInspectorDefaultProps as d}from"./schema.mjs";import{useEffect as f,useMemo as p,useRef as m,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v=[],y=d.data??[];function b(e){return e==null}function x(e,t){return b(e)?t:e}function S(e){return typeof e==`string`?e.trim():``}function C(e){return S(e)}function w(e){let t=Number(e);if(!(!Number.isFinite(t)||t<0))return t}function T(e){let t=e,n=S(e.update_status)===`0`,r=(Array.isArray(t.episodes)?t.episodes.length:0)||(Array.isArray(e.video_episodes)?e.video_episodes.length:0)||(Array.isArray(e.links)?e.links.length:0)||(w(e.episode_cnt)??0);return!Number.isFinite(r)||r<=0?``:`${n?`更新至`:`全`}${Math.floor(r)}集`}function E(e,t){return t?{...e,...t,id:x(t.id,e.id),cover:x(t.cover,e.cover),title:x(t.title,e.title),desc:x(t.desc,e.desc),play_count:x(t.play_count,e.play_count),showPlayCount:t.showPlayCount??e.showPlayCount,episodeText:x(t.episodeText,e.episodeText),showEpisode:t.showEpisode??e.showEpisode,useContentCover:t.useContentCover??e.useContentCover,tagImageUrl:x(t.tagImageUrl,e.tagImageUrl)}:e}function D(e,t){if(!t)return e;let n=e.items;return{...e,...t,title:x(t.title,e.title),moreUrl:x(t.moreUrl,e.moreUrl),moreLinkType:t.moreLinkType??e.moreLinkType,items:n?E(n,t.items):t.items}}function O({mode:d=`renderer`,data:b=v}){let x=d===`editor`,S=b??v,E=Array.isArray(S)&&S.length>0,O=p(()=>E?[D(y[0],S[0])]:y,[E,S]),[k,A]=h(O),j=m(``),M=m(null),{isLoading:N,show:P,hide:F,cancel:I}=s(500);f(()=>{A(O)},[O]);let L=o({enabled:!x,containerRef:M,itemRef:M,deps:[k.length]}),R=p(()=>{if(x||!E)return``;let e=O.map(e=>C(e?.items?.id)).filter(Boolean);return Array.from(new Set(e)).join(`,`)},[E,x,O]);if(f(()=>{if(x||!e()||!R||j.current===R)return;j.current=R;let n=!1;async function r(){try{P();let e=await t({ids:R.split(`,`).filter(Boolean)},{cache:`no-store`}),r=Array.isArray(e.data?.videos)?e.data.videos:[],i=new Map;if(r.forEach(e=>{let t=C(e.video_id||e.id||e.mid);t&&i.set(t,e)}),n)return;A(e=>e.map(e=>{let t=e.items;if(!t||l(t))return e;let n=C(t.id),r=n?i.get(n):void 0;if(!r)return e;let a=w(r.play_count)??w(r.browse_count),o=T(r);return{...e,items:{...t,play_count:a??t.play_count,episodeText:o||t.episodeText}}}))}catch(e){console.error(`大图推荐刷新首屏失败(client)`,e)}finally{n||F()}}return r(),()=>{n=!0,I()}},[I,R,F,x,P]),!k||k.length===0)return null;let z=k[0],B=z?.title,V=z?.moreUrl,H=L>0?L/2:160,U=!x&&N;return _(n,{className:x?`p-3 pointer-events-none`:`p-3`,children:[_(n,{className:`flex items-center justify-between mb-[10px] h-[24px]`,children:[B&&g(r,{as:`h2`,className:`text-[18px] font-bold text-text1 line-clamp-1 flex-1 min-w-0 mr-[12px]`,children:B}),V&&_(a,{href:V,className:`flex items-center text-[14px] text-text2 ml-auto`,children:[`更多`,g(c,{className:`ml-[2px] h-[12px] w-[12px] text-text2`})]})]}),_(n,{className:`relative`,children:[k.map((e,t)=>{let{items:r}=e;return r?g(n,{ref:t===0?M:void 0,className:t>0?`mt-3`:``,children:g(u,{data:r})},`large-feature-grid-items-${t}`):null}),U&&g(n,{className:`absolute inset-0 z-10 bg-black/15 backdrop-blur-[1px] dark:bg-white/10`,"aria-hidden":!0}),U&&g(n,{className:`absolute left-1/2 -translate-x-1/2 -translate-y-1/2 z-20 pointer-events-none`,style:{top:H},"aria-hidden":!0,children:g(i,{size:`large`,showLabel:!1,className:`text-theme5`})})]})]})}export{O as LargeFeatureGridClient};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../utils/schema/schema.mjs";import n from"zod";const r=e(e=>({data:e.array(n.object({title:e.string(void 0,{label:`推荐位名称`,required:!1}),moreUrl:e.string(void 0,{label:`更多链接`,required:!1}),moreLinkType:e.string(`content-list`,{label:`更多链接类型`,required:!1}),items:e.object({id:e.string(void 0,{label:`内容ID`}),is_ad:e.boolean(!1,{fieldType:`switch`,label:`是否广告`,required:!1}),ad_advertise_url:e.string(void 0,{label:`广告跳转链接`,required:!1}),ad_advertise_icon:e.string(void 0,{label:`广告素材地址`,required:!1}),cover:e.string(void 0,{label:`封面`}),play_count:e.string(void 0,{label:`播放量`,required:!1}),showPlayCount:e.boolean(!0,{fieldType:`switch`,label:`展示播放量`,required:!1}),episodeText:e.string(void 0,{label:`集数文案`,required:!1}),showEpisode:e.boolean(!0,{fieldType:`switch`,label:`展示集数`,required:!1}),useContentCover:e.boolean(!0,{fieldType:`switch`,label:`沿用内容海报`,required:!1}),title:e.string(void 0,{label:`内容标题`}),desc:e.string(void 0,{label:`内容简介`,required:!1}),tagImageUrl:e.string(void 0,{label:`角标图`,required:!1})})}),{label:`大图推荐数据`,required:!1,defaultValue:[{title:`推荐位名称`,moreUrl:`/channel`,moreLinkType:`content-list`,items:{id:`22edc8693ebbdaf1`,cover:`https://base-resources.guadd.fun/md-204/dcc-file/f7/f70a9f9f0c17aa9aff6c3a3e03a822db-small.jpg`,play_count:`11111`,showPlayCount:!0,episodeText:`连载中`,showEpisode:!0,useContentCover:!0,title:`穷小伙一睁眼穿越古代,娶个老婆就能得到奖励,后宫3000宠都宠不过来!谁料女帝主动送上门来,征服女帝可以直接开终极宝箱,不用选择全都可以!`,desc:`穷小伙一睁眼穿越古代,娶个老婆就能得到奖励,后宫3000宠都宠不过来!谁料女帝主动送上门来,征服女帝可以直接开终极宝箱,不用选择全都可以!`}}]})})),i=t(r);export{i as largeFeatureGridInspectorDefaultProps,r as largeFeatureGridInspectorPropsSchema};
|
|
2
|
+
import{defineComponentPropsSchema as e,getSchemaDefaultProps as t}from"../../../../utils/schema/schema.mjs";import n from"zod";const r=e(e=>({data:e.array(n.object({title:e.string(void 0,{label:`推荐位名称`,required:!1}),moreUrl:e.string(void 0,{label:`更多链接`,required:!1}),moreLinkType:e.string(`content-list`,{label:`更多链接类型`,required:!1}),items:e.object({id:e.string(void 0,{label:`内容ID`}),is_ad:e.boolean(!1,{fieldType:`switch`,label:`是否广告`,required:!1}),ad:e.object({ad_code:e.string(void 0,{label:`广告业务编码`,required:!1}),ad_advertise_url:e.string(void 0,{label:`广告跳转链接`,required:!1}),ad_advertise_icon:e.string(void 0,{label:`广告素材地址`,required:!1}),ad_advertise_type:e.number(void 0,{label:`广告类型`,required:!1}),ad_advertise_desc:e.string(void 0,{label:`广告文案描述`,required:!1}),ad_ext_data:e.string(void 0,{label:`广告扩展信息`,required:!1})},{label:`广告对象`,required:!1}),ad_advertise_url:e.string(void 0,{label:`广告跳转链接`,required:!1}),ad_advertise_icon:e.string(void 0,{label:`广告素材地址`,required:!1}),cover:e.string(void 0,{label:`封面`}),play_count:e.string(void 0,{label:`播放量`,required:!1}),showPlayCount:e.boolean(!0,{fieldType:`switch`,label:`展示播放量`,required:!1}),episodeText:e.string(void 0,{label:`集数文案`,required:!1}),showEpisode:e.boolean(!0,{fieldType:`switch`,label:`展示集数`,required:!1}),useContentCover:e.boolean(!0,{fieldType:`switch`,label:`沿用内容海报`,required:!1}),title:e.string(void 0,{label:`内容标题`}),desc:e.string(void 0,{label:`内容简介`,required:!1}),tagImageUrl:e.string(void 0,{label:`角标图`,required:!1})})}),{label:`大图推荐数据`,required:!1,defaultValue:[{title:`推荐位名称`,moreUrl:`/channel`,moreLinkType:`content-list`,items:{id:`22edc8693ebbdaf1`,cover:`https://base-resources.guadd.fun/md-204/dcc-file/f7/f70a9f9f0c17aa9aff6c3a3e03a822db-small.jpg`,play_count:`11111`,showPlayCount:!0,episodeText:`连载中`,showEpisode:!0,useContentCover:!0,title:`穷小伙一睁眼穿越古代,娶个老婆就能得到奖励,后宫3000宠都宠不过来!谁料女帝主动送上门来,征服女帝可以直接开终极宝箱,不用选择全都可以!`,desc:`穷小伙一睁眼穿越古代,娶个老婆就能得到奖励,后宫3000宠都宠不过来!谁料女帝主动送上门来,征服女帝可以直接开终极宝箱,不用选择全都可以!`}}]})})),i=t(r);export{i as largeFeatureGridInspectorDefaultProps,r as largeFeatureGridInspectorPropsSchema};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{useRouter as e}from"../../../../utils/use-compatible-router.mjs";import{
|
|
2
|
+
"use client";import{useRouter as e}from"../../../../utils/use-compatible-router.mjs";import{Image as t}from"../../../ui/image.mjs";import{Box as n}from"../../../ui/box.mjs";import{Text as r}from"../../../ui/text.mjs";import i from"../../../../assets/icons/marquee-enter.mjs";import a from"../../../../assets/images/marquee.mjs";import o from"./marquee.module.mjs";import{defaultMarqueePeriod as s}from"./schema.mjs";import{useEffect as c,useMemo as l,useRef as u,useState as d}from"react";import{X as f}from"lucide-react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{useTranslations as h}from"next-intl";const g=[],_=`marquee_list`;let v=null;function y(e,t=20){let n=Array.from(e);return n.length<=t?e:`${n.slice(0,t).join(``)}...`}function b(e,t){if(!e)return!1;if(t===`once`)return!0;let n=new Date(e),r=new Date;return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function x(){if(v)return v;let e=localStorage.getItem(_);if(!e)return v={},{};try{let t=JSON.parse(e);if(!t||typeof t!=`object`)return{};let n={};return Object.entries(t).forEach(([e,t])=>{if(!t||typeof t!=`object`)return;let r=t.closedAt;typeof r!=`number`||Number.isNaN(r)||(n[e]={closedAt:r})}),v=n,n}catch{return v={},{}}}function S(e){v=e,localStorage.setItem(_,JSON.stringify(e))}function C(e){return x()[e]??{}}function w(e,t){S({...x(),[e]:t})}function T(e,t){return b(e.closedAt,t)}function E(_){let v=h(`components.biz.business.marquee`),{marqueeKey:b,contents:x=g,click:S,close:E,displayStrategy:D,mode:O=`renderer`}=_,k=O===`editor`,A=e(),j=u(!1),[M,N]=d(k),[P,F]=d(k),[I,L]=d(!1),[R,z]=d(0);c(()=>{L(!0)},[]);let B=l(()=>{let e=D?.period??s,t=e.start,n=e.end;if(!t&&!n)return!0;let r=Date.now(),i=t?new Date(t).getTime():0,a=n?new Date(n).getTime():2**53-1;return r>=i&&r<=a},[D?.period]),V=l(()=>(x??[]).map(e=>({...e,text:y(String(e?.text??``))})).filter(e=>!!e.text),[x]),H=b?.trim()??``;if(c(()=>{z(0)},[l(()=>V.map(e=>`${e.text??``}::${e.link??``}`).join(`|`),[V]),H]),c(()=>{k||H||j.current||process.env.NODE_ENV===`production`||(j.current=!0,console.warn(`[MarqueeClient] marqueeKey is required in renderer mode.`))},[k,H]),c(()=>{if(I){if(k){N(!0),F(!0);return}if(!D?.rule||!B||V.length===0){N(!1),F(!0);return}if(!H){N(!1),F(!0);return}N(!T(C(H),D.rule)),F(!0)}},[D?.rule,k,I,B,V.length,H]),!k&&(!I||!P||!M||!B)||V.length===0)return null;let U=V[R%V.length],W=S?.enabled===!0,G=S?.link||U.link,K=W&&!!G,q=E?.enabled===!0;function J(){!H||!D?.rule||V.length===0||w(H,{...C(H),closedAt:Date.now()})}let Y=e=>{e.stopPropagation(),N(!1),J()};function X(e){if(typeof window>`u`){A.push(e);return}if(window.isWebView===!0)try{let t=new URL(e,window.location.href);if(t.origin===window.location.origin){let e=t.pathname.split(`/`).filter(Boolean),n=e.findIndex(e=>e===`video`);n>=0&&(e[n]=`webview`,t.pathname=`/${e.join(`/`)}`)}window.location.href=t.toString();return}catch{window.location.href=e;return}A.push(e)}function Z(){k||K&&G&&(N(!1),J(),X(G))}let Q=()=>{k||!M||V.length<=1||z(e=>(e+1)%V.length)},$=k?o[`marquee-item-paused`]:V.length>1?o[`marquee-item-once`]:o[`marquee-item-loop`];return p(n,{className:k?`px-3 py-2 w-full bg-bg1 pointer-events-none`:`px-3 py-2 w-full bg-bg1`,children:m(n,{className:`pl-[2px] pr-[12px] py-[2px] flex items-center w-full cursor-pointer relative rounded-[8px] overflow-hidden ${o[`marquee-shell`]}`,onClick:Z,children:[p(n,{className:`relative shrink-0 w-[36px] h-[36px] mr-[4px]`,children:p(t,{src:typeof a==`string`?a:a.src,alt:v(`noticeAlt`),fill:!0,className:`object-cover`,unoptimized:!0})}),p(n,{className:`flex-1 overflow-hidden relative h-[22px] ml-1`,children:p(n,{className:`absolute inset-y-0 left-0 flex items-center whitespace-nowrap ${$}`,onAnimationEnd:Q,children:p(r,{className:`inline-block text-[14px] text-[#f59e0b] leading-[22px] font-medium`,children:U.text})},`marquee-item-${R}`)}),m(n,{className:`flex items-center gap-[12px] shrink-0 ml-[4px]`,children:[K&&p(i,{className:`h-[16px] w-[16px] shrink-0`}),q&&p(n,{className:`opacity-30 hover:opacity-100 transition-opacity`,onClick:Y,children:p(f,{className:`w-[12px] h-[12px] text-[#F59E0B]`})})]})]})})}export{E as MarqueeClient};
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t=`.marquee-module_marquee-
|
|
2
|
+
import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs";var t=`.marquee-module_marquee-shell__UrSDr {
|
|
3
|
+
background-image: linear-gradient(154deg, rgba(255, 228, 133, 0.2) 9.14%, rgba(207, 129, 37, 0.05) 90.86%);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.marquee-module_marquee-item-loop__xI-aW {
|
|
3
7
|
animation: marquee-module_funhub-marquee-run__evIQh 12s linear infinite;
|
|
4
8
|
}
|
|
5
9
|
|
|
@@ -21,4 +25,4 @@ import e from"../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/sty
|
|
|
21
25
|
transform: translateX(-100%);
|
|
22
26
|
}
|
|
23
27
|
}
|
|
24
|
-
`,n={"marquee-item-loop":`marquee-module_marquee-item-loop__xI-aW`,"funhub-marquee-run":`marquee-module_funhub-marquee-run__evIQh`,"marquee-item-once":`marquee-module_marquee-item-once__KFzcv`,"marquee-item-paused":`marquee-module_marquee-item-paused__edGch`};e(t);export{n as default};
|
|
28
|
+
`,n={"marquee-shell":`marquee-module_marquee-shell__UrSDr`,"marquee-item-loop":`marquee-module_marquee-item-loop__xI-aW`,"funhub-marquee-run":`marquee-module_funhub-marquee-run__evIQh`,"marquee-item-once":`marquee-module_marquee-item-once__KFzcv`,"marquee-item-paused":`marquee-module_marquee-item-paused__edGch`};e(t);export{n as default};
|
|
@@ -19,7 +19,7 @@ declare const marqueeMaterial: DefineMaterialOption<typeof MarqueeServer, typeof
|
|
|
19
19
|
}, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
|
|
20
20
|
readonly click: zod.ZodObject<{
|
|
21
21
|
readonly enabled: zod.ZodBoolean & SchemaHasDefaultValue;
|
|
22
|
-
readonly redirectType: zod.ZodOptional<zod.ZodType<"
|
|
22
|
+
readonly redirectType: zod.ZodOptional<zod.ZodType<"link" | "content" | "content_list", unknown, zod_v4_core0.$ZodTypeInternals<"link" | "content" | "content_list", unknown>>> & SchemaHasDefaultValue;
|
|
23
23
|
readonly link: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
|
|
24
24
|
}, zod_v4_core0.$strip> & SchemaHasDefaultValue;
|
|
25
25
|
readonly close: zod.ZodObject<{
|
|
@@ -24,7 +24,7 @@ declare const marqueeInspectorPropsSchema: zod.ZodObject<{
|
|
|
24
24
|
}, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
|
|
25
25
|
readonly click: zod.ZodObject<{
|
|
26
26
|
readonly enabled: zod.ZodBoolean & SchemaHasDefaultValue;
|
|
27
|
-
readonly redirectType: zod.ZodOptional<zod.ZodType<"
|
|
27
|
+
readonly redirectType: zod.ZodOptional<zod.ZodType<"link" | "content" | "content_list", unknown, zod_v4_core0.$ZodTypeInternals<"link" | "content" | "content_list", unknown>>> & SchemaHasDefaultValue;
|
|
28
28
|
readonly link: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
|
|
29
29
|
}, zod_v4_core0.$strip> & SchemaHasDefaultValue;
|
|
30
30
|
readonly close: zod.ZodObject<{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { ProfileHeaderInspectorProps, UserProfileHeaderAuthConfig, UserProfileHeaderClientProps, profileHeaderInspectorDefaultProps, profileHeaderInspectorPropsSchema } from "./profile-header/schema.mjs";
|
|
3
|
-
import { UserProfileHeaderClient
|
|
3
|
+
import { UserProfileHeaderClient } from "./profile-header/client.mjs";
|
|
4
4
|
import { profileHeaderMaterial, profileHeaderMaterialWithDisabledBackground } from "./profile-header/material.mjs";
|
|
5
5
|
import "./profile-header/index.mjs";
|
|
6
6
|
import { ProfileMainInspectorProps, UserProfileMainProps, profileMainInspectorDefaultProps, profileMainInspectorPropsSchema } from "./profile-main/schema.mjs";
|
|
@@ -3,7 +3,6 @@ import { UserProfileHeaderClientProps } from "./schema.mjs";
|
|
|
3
3
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
|
|
5
5
|
//#region components/biz/business/profile/profile-header/client.d.ts
|
|
6
|
-
declare const defaultBackground = "/images/mine/img_mine_head_bg.png";
|
|
7
6
|
/**
|
|
8
7
|
* 用户资料头部组件,包含资料请求与头部交互。
|
|
9
8
|
*/
|
|
@@ -17,4 +16,4 @@ declare function UserProfileHeaderClient({
|
|
|
17
16
|
mode
|
|
18
17
|
}: UserProfileHeaderClientProps): react_jsx_runtime0.JSX.Element;
|
|
19
18
|
//#endregion
|
|
20
|
-
export { UserProfileHeaderClient
|
|
19
|
+
export { UserProfileHeaderClient };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserInfo as r,gUserViewUserInfo as i
|
|
2
|
+
"use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserInfo as r,gUserViewUserInfo as i}from"../../../../../service/generated/client.mjs";import{useRouter as a}from"../../../../../utils/use-compatible-router.mjs";import{Box as o}from"../../../../ui/box.mjs";import{Text as s}from"../../../../ui/text.mjs";import{Skeleton as c}from"../../../../ui/skeleton.mjs";import{useLoginModalStore as l}from"../../../../../store/modules/login-modal-store.mjs";import{useRequest as u}from"../../../../../hooks/query/use-query.mjs";import{LeftArrowIcon as d}from"../../../../common/icons/left-arrow.mjs";import{SettingIcon as f}from"../../../../common/icons/setting.mjs";import{UserProfileAvatar as p}from"./user-profile-avatar.mjs";import{UserProfileCoverBackground as m}from"./user-profile-cover-background.mjs";import{useEffect as ee,useMemo as te,useState as h}from"react";import{jsx as g,jsxs as _}from"react/jsx-runtime";import{useTranslations as v}from"next-intl";import y from"next/link";const b=n.persist,x=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,S=`/images/mine/img_mine_head_bg.png`;function C({showBackButton:n,isMine:r,enableCustomBackground:i,className:a}){return _(o,{className:e(`flex flex-col relative`,a),children:[_(o,{className:`absolute top-0 p-3 z-10 flex items-center justify-between w-full`,children:[g(t,{variant:`ghost`,size:`icon-xs`,className:e(`h-4 w-4 p-0 hover:bg-transparent`,{invisible:!n}),disabled:!0,children:g(d,{className:`w-4 h-4`})}),g(o,{className:e({invisible:!r}),children:g(f,{})})]}),g(o,{className:i?`h-33.75`:`h-24`,children:g(c,{className:`h-full w-full rounded-none`})}),_(o,{className:`flex-1 px-3`,children:[_(o,{className:`relative flex justify-end`,children:[g(c,{className:`absolute bottom-3 left-0 h-22 w-22 rounded-full`}),g(o,{className:`py-4 h-12`})]}),_(o,{className:`flex items-center justify-between gap-1`,children:[g(c,{className:`h-7 w-[132px]`}),g(c,{className:`h-10 w-[104px] rounded-full shrink-0`})]}),_(o,{className:`min-h-11 pt-1 pb-0 flex flex-col gap-2`,children:[g(c,{className:`h-4 w-[76%]`}),g(c,{className:`h-4 w-[58%]`})]})]})]})}function w({id:c,enableCustomBackground:w=!0,showBackButton:T=!0,requireLogin:E=!1,isEditorPreview:D=!1,className:O,mode:k=`renderer`}){let A=v(`components.pages.profile`),j=D||k===`editor`,M=!j,N=a(),{open:ne}=l(),{isLogin:P,userId:F,token:re}=n(),[ie,I]=h(!1);ee(()=>{if(!b){I(!0);return}I(b.hasHydrated());let e=b.onHydrate(()=>{I(!1)}),t=b.onFinishHydration(()=>{I(!0)});return()=>{e(),t()}},[]);let L=j?!1:P&&!!F&&!!re,R=j?``:F,z=R,B=c==null||!!c&&!!z&&c===z,V=B?[`user-profile`,`mine`]:[`user-profile`,`profile`,c],{data:H,isLoading:U}=u(j?[`editor-preview`,...V]:V,()=>c?i({target_user_id:c,user_id:R||c}):r({user_id:c||R||``}),{staleTime:0,enabled:M&&(!!c||!!R)}),W=te(()=>{let e=H?H.data:void 0;return e?{userId:e.user_id,isFollowing:e.is_following||!1,name:e.nick_name||`User${c??``}`,avatar:e.avatar||x,followingCnt:e.following_count??0,followersCnt:e.follower_count??0,likeCnt:e.like_count??0,signature:e.signature||``,background:e.bg_image||S}:{}},[c,H]),G=j||E&&B&&!L,K=B&&L&&!G,q=!L,J=w&&K,Y=w&&q,ae={name:A(`client.welcomeToPlanet`),description:A(`client.exploreAdventures`),avatar:x,followingCnt:0,followersCnt:0,likeCnt:0,background:S};function X(){ne()}function oe(){N.back()}let se=G?g(t,{className:`rounded-full`,size:`lg`,onClick:X,children:A(`client.loginNow`)}):B?g(y,{href:`/edit`,children:g(t,{variant:`outline`,className:`rounded-full`,children:A(`client.editProfile`)})}):null,Z=G?ae:W,Q=Z.name||``,$=Z.description||Z.signature||``,ce=Z.avatar||``;return M&&U&&!H?g(C,{showBackButton:T,isMine:B,enableCustomBackground:w,className:O}):_(o,{className:e(`flex flex-col relative`,O),children:[_(o,{className:`absolute top-0 p-3 z-10 flex items-center justify-between w-full`,children:[g(t,{variant:`ghost`,size:`icon-xs`,onClick:oe,className:e(`h-4 w-4 p-0 hover:bg-transparent`,{invisible:!T}),children:g(d,{className:`w-4 h-4`})}),g(y,{href:`/settings`,className:e({invisible:!B}),children:g(f,{})})]}),g(m,{isMine:J,enableCustomBackground:w,src:Z.background,onUnauthorizedClick:Y?X:void 0}),_(o,{className:`flex-1 px-3`,children:[_(o,{className:`relative flex justify-end`,children:[g(p,{isMine:K,src:ce,alt:Q||`avatar`,onUnauthorizedClick:q?X:void 0}),g(o,{className:`flex divide-x divide-text1/5 py-4 h-12`})]}),_(o,{className:`flex items-center justify-between gap-1`,children:[P&&B?g(y,{href:`/edit`,children:g(s,{as:`p`,className:`text-text1 max-w-[14em] text-xl overflow-hidden whitespace-nowrap text-ellipsis font-bold `,children:Q})}):g(s,{as:`p`,className:`text-text1 max-w-[14em] text-xl overflow-hidden whitespace-nowrap text-ellipsis font-bold `,children:Q}),se]}),$&&g(o,{className:`min-h-11 pt-1 pb-0`,children:g(s,{as:`p`,className:`text-sm line-clamp-2 break-all text-text1/66`,children:$})})]})]})}export{w as UserProfileHeaderClient};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
2
|
import { ProfileHeaderInspectorProps, UserProfileHeaderAuthConfig, UserProfileHeaderClientProps, profileHeaderInspectorDefaultProps, profileHeaderInspectorPropsSchema } from "./schema.mjs";
|
|
3
|
-
import { UserProfileHeaderClient
|
|
3
|
+
import { UserProfileHeaderClient } from "./client.mjs";
|
|
4
4
|
import { profileHeaderMaterial, profileHeaderMaterialWithDisabledBackground } from "./material.mjs";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserEditInfo as r,pUserEditUserInfo as i}from"../../../../../service/generated/client.mjs";import{uploadFile as a}from"../../../../../utils/upload-file.mjs";import{Avatar as o,AvatarFallback as s,AvatarImage as c}from"../../../../ui/avatar.mjs";import{Box as l}from"../../../../ui/box.mjs";import{Input as u}from"../../../../ui/input.mjs";import{Dialog as d,DialogContent as f}from"../../../../ui/dialog.mjs";import{Text as p}from"../../../../ui/text.mjs";import{useDeleteRequest as m}from"../../../../../hooks/query/use-query.mjs";import{ImageCropModal as h}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{useRef as g,useState as _}from"react";import{Fragment as v,jsx as y,jsxs as b}from"react/jsx-runtime";import{toast as x}from"sonner";import{useTranslations as S}from"next-intl";const C=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,w=[`image/jpeg`,`image/png`];function T(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return w.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function E({isMine:w,src:E,alt:D,onUnauthorizedClick:O}){let k=S(`components.pages.profile`),A=g(null),{userId:j,setUserInfo:M,userInfo:N}=n(),P=m(),[F,I]=_(!1),[L,R]=_(!1),[z,B]=_(``),[V,H]=_(!1);function U(){if(!V){if(w){I(!0);return}O?.()}}function W(){z&&(URL.revokeObjectURL(z),B(``))}function G(){I(!1)}function K(){V||A.current?.click()}async function q(e){let t=(await r({user_id:String(j)})).data;return{user_id:String(j),nick_name:t?.nick_name??N?.nick_name??void 0,avatar:e||void 0,signature:t?.signature??N?.signature??void 0,gender:t?.gender??N?.gender??void 0}}function J(e){let t=e.target.files?.[0];if(t){if(!T(t)){x.error(k(`client.imageTypeInvalid`)),e.target&&(e.target.value=``);return}if(t.size>5242880){x.error(k(`client.imageTooLarge`)),e.target&&(e.target.value=``);return}B(URL.createObjectURL(t)),R(!0),e.target&&(e.target.value=``)}}async function Y(e){if(!j){x.error(k(`client.loginRequiredForUpload`));return}try{H(!0);let t=await a(new File([e],`avatar.jpg`,{type:`image/jpeg`}),1),n=await q(t.objectKey);await i(n),M({...N,nick_name:n.nick_name,avatar:t.objectKey,signature:n.signature,gender:n.gender}),P([`user-profile`,`mine`]),P([`user-profile`,`profile`,String(j)]),P([`user-edit-info`,String(j)]),I(!1),R(!1),x.success(k(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传头像失败`,e),x.error(k(`client.uploadFailed`))}finally{W(),H(!1)}}function X(){R(!1),W()}return b(v,{children:[w||O?y(t,{variant:`ghost`,size:`icon`,className
|
|
2
|
+
"use client";import{cn as e}from"../../../../../utils/cn.mjs";import{Button as t}from"../../../../ui/button.mjs";import{useUserStore as n}from"../../../../../store/modules/user-store.mjs";import{gUserGetUserEditInfo as r,pUserEditUserInfo as i}from"../../../../../service/generated/client.mjs";import{uploadFile as a}from"../../../../../utils/upload-file.mjs";import{Avatar as o,AvatarFallback as s,AvatarImage as c}from"../../../../ui/avatar.mjs";import{Box as l}from"../../../../ui/box.mjs";import{Input as u}from"../../../../ui/input.mjs";import{Dialog as d,DialogContent as f}from"../../../../ui/dialog.mjs";import{Text as p}from"../../../../ui/text.mjs";import{useDeleteRequest as m}from"../../../../../hooks/query/use-query.mjs";import{ImageCropModal as h}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{useRef as g,useState as _}from"react";import{Fragment as v,jsx as y,jsxs as b}from"react/jsx-runtime";import{toast as x}from"sonner";import{useTranslations as S}from"next-intl";const C=`https://guadd-sg-ccs-sing-dev.s3.ap-southeast-1.amazonaws.com/default/default_avatar.png`,w=[`image/jpeg`,`image/png`];function T(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return w.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function E({isMine:w,src:E,alt:D,onUnauthorizedClick:O}){let k=S(`components.pages.profile`),A=g(null),{userId:j,setUserInfo:M,userInfo:N}=n(),P=m(),[F,I]=_(!1),[L,R]=_(!1),[z,B]=_(``),[V,H]=_(!1);function U(){if(!V){if(w){I(!0);return}O?.()}}function W(){z&&(URL.revokeObjectURL(z),B(``))}function G(){I(!1)}function K(){V||A.current?.click()}async function q(e){let t=(await r({user_id:String(j)})).data;return{user_id:String(j),nick_name:t?.nick_name??N?.nick_name??void 0,avatar:e||void 0,signature:t?.signature??N?.signature??void 0,gender:t?.gender??N?.gender??void 0}}function J(e){let t=e.target.files?.[0];if(t){if(!T(t)){x.error(k(`client.imageTypeInvalid`)),e.target&&(e.target.value=``);return}if(t.size>5242880){x.error(k(`client.imageTooLarge`)),e.target&&(e.target.value=``);return}B(URL.createObjectURL(t)),R(!0),e.target&&(e.target.value=``)}}async function Y(e){if(!j){x.error(k(`client.loginRequiredForUpload`));return}try{H(!0);let t=await a(new File([e],`avatar.jpg`,{type:`image/jpeg`}),1),n=await q(t.objectKey);await i(n),M({...N,nick_name:n.nick_name,avatar:t.objectKey,signature:n.signature,gender:n.gender}),P([`user-profile`,`mine`]),P([`user-profile`,`profile`,String(j)]),P([`user-edit-info`,String(j)]),I(!1),R(!1),x.success(k(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传头像失败`,e),x.error(k(`client.uploadFailed`))}finally{W(),H(!1)}}function X(){R(!1),W()}return b(v,{children:[w||O?y(t,{variant:`ghost`,size:`icon`,className:`!absolute bottom-3 left-0 h-22 w-22 rounded-full p-0 hover:bg-transparent`,onClick:U,"aria-label":`打开头像预览`,children:b(o,{className:`w-22 h-22`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]})}):b(o,{className:`!absolute bottom-3 left-0 w-22 h-22`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]}),y(d,{open:F,onOpenChange:G,children:y(f,{showCloseButton:!1,className:`bg-black !m-0 !p-0 !fixed !inset-0 !w-screen !h-screen !max-w-none !rounded-none !top-0 !left-0 !translate-x-0 !translate-y-0 !transform-none z-[9999] !pointer-events-auto`,children:b(l,{className:`relative flex h-full w-full flex-col items-center justify-center`,children:[y(t,{variant:`ghost`,size:`icon`,className:`absolute left-0 top-0 h-14 w-14 text-white hover:bg-transparent hover:text-white/80`,onClick:G,"aria-label":`关闭头像预览`,children:y(`svg`,{className:`w-4 h-4`,xmlns:`http://www.w3.org/2000/svg`,fill:`currentColor`,viewBox:`0 0 16 16`,children:y(`path`,{d:`M14.55.2a.889.889 0 0 1 1.25 1.25l-.06.067L9.255 8l6.483 6.482.06.069a.888.888 0 0 1-1.25 1.25l-.067-.062L8 9.256l-6.482 6.483A.888.888 0 1 1 .26 14.482L6.742 8 .26 1.517.2 1.45A.888.888 0 0 1 1.45.2l.067.062 6.482 6.482L14.482.261l.068-.062Z`})})}),b(o,{className:`w-50 h-50`,children:[y(c,{src:E||C,alt:D||`avatar`}),y(s,{})]}),b(t,{variant:`ghost`,className:e(`absolute bottom-8 left-0 right-0 mx-auto flex w-[366px] max-w-[90%] items-center justify-between rounded-3xl bg-white/10 px-3 py-3 transition-colors hover:bg-white/20`,`active:scale-95`),onClick:K,disabled:V,children:[y(p,{as:`span`,className:`text-base font-medium text-white`,children:V?`上传中...`:`更换头像`}),b(`svg`,{className:`w-6 h-6 text-white`,xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:[y(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z`}),y(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15 13a3 3 0 11-6 0 3 3 0 016 0z`})]})]})]})})}),y(u,{ref:A,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:J}),y(h,{open:L,onClose:X,imageSrc:z,onConfirm:Y})]})}export{E as UserProfileAvatar};
|
package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{useUserStore as e}from"../../../../../store/modules/user-store.mjs";import{pUserUploadUserBgImage as t}from"../../../../../service/generated/client.mjs";import{uploadFile as n}from"../../../../../utils/upload-file.mjs";import{Image as r}from"../../../../ui/image.mjs";import{Box as i}from"../../../../ui/box.mjs";import{Input as a}from"../../../../ui/input.mjs";import{useDeleteRequest as o}from"../../../../../hooks/query/use-query.mjs";import{ImageCropModal as s}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{BackgroundPreviewModal as c}from"../../../../common/background-preview-modal/background-preview-modal.mjs";import{
|
|
2
|
+
"use client";import{useUserStore as e}from"../../../../../store/modules/user-store.mjs";import{pUserUploadUserBgImage as t}from"../../../../../service/generated/client.mjs";import{uploadFile as n}from"../../../../../utils/upload-file.mjs";import{Image as r}from"../../../../ui/image.mjs";import{Box as i}from"../../../../ui/box.mjs";import{Input as a}from"../../../../ui/input.mjs";import{useDeleteRequest as o}from"../../../../../hooks/query/use-query.mjs";import{ImageCropModal as s}from"../../../../common/image-crop-modal/image-crop-modal.mjs";import{BackgroundPreviewModal as c}from"../../../../common/background-preview-modal/background-preview-modal.mjs";import{useCallback as l,useEffect as u,useRef as d,useState as f}from"react";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";import{toast as g}from"sonner";import{useTranslations as _}from"next-intl";const v=[`image/jpeg`,`image/png`];function y(e){let t=e.name.toLowerCase(),n=e.type.toLowerCase();return v.includes(n)||/\.(?:jpg|jpeg|png)$/i.test(t)}function b({isMine:v,enableCustomBackground:b=!0,src:x,onUnauthorizedClick:S}){let C=_(`components.pages.profile`),w=`/images/mine/img_mine_head_bg.png`,T=d(null),{userId:E,setUserInfo:D,userInfo:O}=e(),k=o(),[A,j]=f(!1),[M,N]=f(!1),[P,F]=f(!1),[I,L]=f(``),R=b&&(!!v||typeof S==`function`),z=l(()=>{I&&(URL.revokeObjectURL(I),L(``))},[I]),B=()=>{if(b){if(v){A||N(!0);return}S?.()}},V=()=>{N(!1)};function H(){A||T.current?.click()}async function U(e){let t=e.target.files?.[0];if(e.target&&(e.target.value=``),t)try{if(!y(t)){g.error(C(`client.imageTypeInvalid`));return}if(t.size>5242880){g.error(C(`client.imageTooLarge`));return}z(),L(URL.createObjectURL(t)),N(!1),F(!0)}catch(e){console.error(`上传背景图失败`,e),g.error(C(`client.uploadFailed`))}}let W=l(()=>{F(!1),z()},[z]);u(()=>{b||(N(!1),F(!1),z())},[z,b]);async function G(e){if(!E){g.error(C(`client.loginRequiredForUpload`));return}try{j(!0);let r=await n(new File([e],`background.jpg`,{type:`image/jpeg`}),1);await t({user_id:String(E),bg_image:r.objectKey}),D({...O,bg_image:r.objectKey}),k([`user-profile`,`mine`]),N(!1),F(!1),g.success(C(`client.mediaUpdateSuccess`))}catch(e){console.error(`上传背景图失败`,e),g.error(C(`client.uploadFailed`))}finally{z(),j(!1)}}return h(p,{children:[m(i,{className:b?`h-33.75`:`h-24`,children:b?m(i,{className:`relative h-full w-full`,onClick:R?B:void 0,children:m(r,{alt:`cover background`,fill:!0,objectFit:`cover`,className:`pointer-events-none`,src:x||w})}):m(i,{className:`h-full w-full bg-bg1`})}),b&&h(p,{children:[m(c,{open:M,onClose:V,bgUrl:x||w,onUpload:H}),m(a,{ref:T,type:`file`,accept:`.jpg,.jpeg,.png,image/jpeg,image/png`,className:`hidden`,onChange:U}),m(s,{open:P,onClose:W,imageSrc:I,onConfirm:G,cropShape:`rect`,aspectRatio:430/256})]})]})}export{b as UserProfileCoverBackground};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{useUserStore as e}from"../../../../../store/modules/user-store.mjs";import{gUserViewUserInfo as t}from"../../../../../service/generated/client.mjs";import{useRequest as n}from"../../../../../hooks/query/use-query.mjs";import{
|
|
2
|
+
"use client";import{useUserStore as e}from"../../../../../store/modules/user-store.mjs";import{gUserViewUserInfo as t}from"../../../../../service/generated/client.mjs";import{useRequest as n}from"../../../../../hooks/query/use-query.mjs";import{VideoList as r}from"../../../../common/list/video-list/video-list.mjs";import{profileMainMineTabOptions as i,profileMainProfileTabOptions as a}from"./variants.mjs";import{UserProfileMainShell as o}from"./shell.mjs";import{CollectTab as s}from"./tabs/collect-tab/client.mjs";import{HistoryTab as c}from"./tabs/history-tab/client.mjs";import{LikeTab as l}from"./tabs/like-tab/client.mjs";import{useMemo as u}from"react";import{jsx as d}from"react/jsx-runtime";import{parseAsString as f,useQueryState as p}from"nuqs";function m(e){return e*1e3}const h=[{id:`00d21b841126c976`,title:`朝朝暮暮都是你`,coverImage:`/md-204/uploads/default/other/2024-04-15/2750647625e6193940163169b77fb566.jpg`,duration:192,viewCount:237,createTime:1772175066,isMoreLink:!0},{id:`009f2e1820718add`,title:`狗哥的乡村爱情故事`,coverImage:`/md-204/uploads/default/other/2024-04-11/579bc5eb807d29657828945330b0ac47.jpg`,duration:74,viewCount:191,createTime:1770714221,isMoreLink:!0},{id:`02e2a11f78a3ffbf`,title:`唯爱百分之十二`,coverImage:`/md-204/resource/b6/b689e34f40d0e5baccb8f79630b99425.jpg`,duration:3348,viewCount:214,createTime:1770347155,isMoreLink:!0},{id:`2c19073cbd3c5c5a`,title:`疯狂磕学家`,coverImage:`/md-204/uploads/default/other/2024-08-23/5e174eeb8f2009dd7bb797fcabd5a649.jpg`,duration:2359,viewCount:17,createTime:1769757646,isMoreLink:!0},{id:`07e029915c2a9c96`,title:`我和祖宗做交易`,coverImage:`/md-204/uploads/default/other/2024-05-23/b53e50fa75986b41aac766c253a91fea.jpg`,duration:194,viewCount:75,createTime:1769670600,isMoreLink:!0},{id:`0ae1056a620b286f`,title:`识汝不识丁`,coverImage:`/md-204/uploads/default/other/2024-08-24/8958d46da3087a420d1d55e691dcb10a.jpg`,duration:2053,viewCount:13,createTime:1769651310,isMoreLink:!0},{id:`05564bf1aaf5fad6`,title:`我们的天空`,coverImage:`/md-204/resource/1a/1af6ce7117dcda390cf08db26e832684.jpg`,duration:2737,viewCount:180,createTime:1769566315,isMoreLink:!0},{id:`00f61e5be01409bb`,title:`我初初爱你`,coverImage:`/md-204/resource/bd/bd657a65bc6adc202a94acb8aca33f38.jpg`,duration:2898,viewCount:362,createTime:1769410683,isMoreLink:!0},{id:`062cd69d44fcb772`,title:`料理情缘`,coverImage:`/md-204/uploads/default/other/2023-11-27/de0491f07909b05fa012d15552e02cd0.png`,duration:2726,viewCount:33,createTime:1769157580,isMoreLink:!0},{id:`05751871b640b1a7`,title:`穷小伙被碎玻璃割伤眼睛,却因祸得福获得了一只超能神眼,人生直接开挂,之前欺负他的人统统匍匐在他脚下,征服姐妹花,走向人生巅峰!`,coverImage:`/md-204/dcc-file/29/29a0fdc86f0d756ad8f123e81693d233-small.jpgbnc`,duration:9236,viewCount:137,createTime:1769157575,isMoreLink:!1}].map(e=>({id:e.id,title:e.title,coverImage:e.coverImage,duration:e.duration,authorName:``,viewCount:e.viewCount,publishTime:m(e.createTime),is_more_link:e.isMoreLink}));function g({isMine:e,tab:t}){let n=e?i:a;return t&&n.includes(t)?t:n[0]}function _(e,t){return e&&(t===`collect`||t===`like`)}function v({id:i,showCreateAction:a=!1,requireLogin:m=!1,className:v,currentUserId:y,mode:b=`renderer`,tab:x}){let S=b===`renderer`,C=e(e=>e.userId),[w]=p(`tab`,f),T=b===`editor`?``:y||C||``,E=i==null||!!T&&i===T,D=!E&&!!i,O=E?T:i?String(i):void 0,k=E?[`user-profile`,`mine`]:[`user-profile`,`profile`,i],A=u(()=>g({isMine:E,tab:w??x}),[E,x,w]),j=S&&_(D,A)&&!!i,{data:M}=n([`user-profile`,`privacy`,i,T],async()=>await t({target_user_id:String(i),user_id:T||String(i)}),{staleTime:0,enabled:j}),N=`content`;if(b===`editor`)N=`content`;else if(m&&E&&!T)N=`login-required`;else if(j&&M){let e=M.data??{},t=Number(e.collections_open??1)>0,n=Number(e.like_open??1)>0;A===`collect`&&!t&&(N=`privacy-collect`),A===`like`&&!n&&(N=`privacy-like`)}let P=N===`content`&&(!j||!!M),F=null;if(b===`editor`)F=d(r,{list:h,loading:!1,hasMore:!1,showVideoProgress:!1});else if(P)switch(A){case`like`:F=d(l,{mode:b,isMine:E,targetUserId:O,queryKeyPrefix:k});break;case`history`:F=d(c,{mode:b,targetUserId:O,queryKeyPrefix:k});break;default:F=d(s,{mode:b,isMine:E,userId:O,showCreateAction:a&&E,queryKeyPrefix:k});break}return d(o,{profileId:i,currentUserId:T,isMine:E,renderMode:N,className:v,children:F})}export{v as UserProfileMainClient};
|