@funhub/platform 0.1.25 → 0.1.27
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/README.md +5 -0
- package/dist/biz.d.mts +11 -5
- package/dist/biz.mjs +1 -1
- package/dist/common.d.mts +2 -1
- package/dist/common.mjs +1 -1
- package/dist/components/biz/business/comment/comment-list.mjs +1 -1
- package/dist/components/biz/business/comment/reply-detail.mjs +1 -1
- package/dist/components/biz/business/contact/contact-list.mjs +1 -1
- package/dist/components/biz/business/detail/detail-operate.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-actions/material.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info/material.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title/material.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/material.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/material.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-recommend/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-recommend/material.mjs +1 -1
- package/dist/components/biz/business/home-recommend/index.d.mts +6 -0
- package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/index.d.mts +4 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/index.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/inspector-schema.d.mts +18 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/inspector-schema.mjs +2 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/material.d.mts +14 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/material.mjs +2 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/schema/component.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/schema/props.schema.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/server.d.mts +17 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/server.mjs +2 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/index.d.mts +4 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/index.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/inspector-schema.d.mts +18 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/inspector-schema.mjs +2 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/material.d.mts +14 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/material.mjs +2 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/schema/component.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/schema/props.schema.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/server.d.mts +17 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/server.mjs +2 -0
- package/dist/components/biz/business/index.d.mts +11 -5
- package/dist/components/biz/business/index.mjs +1 -1
- package/dist/components/biz/business/marquee/client.d.mts +2 -1
- package/dist/components/biz/business/marquee/client.mjs +1 -1
- package/dist/components/biz/business/marquee/material.d.mts +5 -3
- package/dist/components/biz/business/marquee/material.mjs +1 -1
- package/dist/components/biz/business/marquee/schema.d.mts +10 -6
- package/dist/components/biz/business/marquee/schema.mjs +1 -1
- package/dist/components/biz/business/nav-bar/variants/basic-nav-bar/runtime/client.mjs +1 -1
- package/dist/components/biz/business/{search-history2 → search-history}/client.d.mts +6 -5
- package/dist/components/biz/business/search-history/client.mjs +2 -0
- package/dist/components/biz/business/search-history/index.d.mts +5 -0
- package/dist/components/biz/business/{search-history2 → search-history}/material.d.mts +4 -4
- package/dist/components/biz/business/search-history/material.mjs +2 -0
- package/dist/components/biz/business/{search-history2 → search-history}/schema.d.mts +9 -6
- package/dist/components/biz/business/{search-history2 → search-history}/schema.mjs +1 -1
- package/dist/components/biz/business/{search-history2 → search-history}/server.d.mts +1 -1
- package/dist/components/biz/business/search-input/client.mjs +1 -1
- package/dist/components/biz/business/search-input/material.mjs +1 -1
- package/dist/components/biz/business/tab-bar/material.mjs +1 -1
- package/dist/components/biz/business/text-recommend/material.mjs +1 -1
- package/dist/components/biz/business/video-horizontal-list/material.mjs +1 -1
- package/dist/components/biz/example/button/client.mjs +1 -1
- package/dist/components/common/collection-popup/collection-create-modal.mjs +1 -1
- package/dist/components/common/funhub-provider/funhub-provider.d.mts +4 -0
- package/dist/components/common/funhub-provider/funhub-provider.mjs +1 -1
- package/dist/components/common/intl-provider/index.d.mts +2 -0
- package/dist/components/common/{intl-provider.d.mts → intl-provider/intl-provider.d.mts} +1 -1
- package/dist/components/common/intl-provider/intl-provider.mjs +2 -0
- package/dist/components/common/media-preview/index.mjs +1 -1
- package/dist/components/common/series-episodes/index.mjs +1 -1
- package/dist/components/common/share-popup/share-popup.mjs +1 -1
- package/dist/components/pages/(follow)/fans/page.mjs +1 -1
- package/dist/components/pages/(follow)/followed/page.mjs +1 -1
- package/dist/components/pages/collection-detail/detail.mjs +1 -1
- package/dist/components/pages/feed-series/feed-series-client.mjs +1 -1
- package/dist/components/pages/feed-series/page.mjs +1 -1
- package/dist/components/pages/login/index.mjs +1 -1
- package/dist/components/pages/profile/_components/tabs/collect-tab/client.mjs +1 -1
- package/dist/components/pages/profile/_components/tabs/history-tab/client.mjs +1 -1
- package/dist/components/pages/profile/_components/tabs/like-tab/client.mjs +1 -1
- package/dist/components/pages/profile/_components/tabs/publish-tab/client.mjs +1 -1
- package/dist/components/pages/profile/_components/user-profile-header/client.mjs +1 -1
- package/dist/components/pages/publish/components/collection-popup.mjs +1 -1
- package/dist/components/pages/publish/components/collection.mjs +1 -1
- package/dist/components/pages/publish/page-client.mjs +1 -1
- package/dist/components/pages/search/hot-recommend.mjs +1 -1
- package/dist/components/pages/search/page-client.mjs +1 -1
- package/dist/components/pages/search/search-result/search-video-info.mjs +1 -1
- package/dist/components/pages/search/top-header.mjs +1 -1
- package/dist/components/pages/settings/_components/settings.mjs +1 -1
- package/dist/components/pages/user-follow/_components/follow-no-login.mjs +1 -1
- package/dist/components/pages/user-follow/page.mjs +1 -1
- package/dist/components/ui/badge.d.mts +1 -1
- package/dist/components/ui/button.d.mts +1 -1
- package/dist/components/ui/image.d.mts +4 -4
- package/dist/hooks/use-search-history.d.mts +19 -0
- package/dist/hooks/use-search-history.mjs +2 -0
- package/dist/hooks.d.mts +2 -1
- package/dist/hooks.mjs +1 -1
- package/dist/materials.d.mts +3 -2
- package/dist/materials.mjs +1 -1
- package/dist/utils/share-manager.mjs +1 -1
- package/package.json +1 -1
- package/dist/components/biz/business/search-history/index.mjs +0 -2
- package/dist/components/biz/business/search-history/use-search-history.mjs +0 -2
- package/dist/components/biz/business/search-history2/client.mjs +0 -2
- package/dist/components/biz/business/search-history2/index.d.mts +0 -5
- package/dist/components/biz/business/search-history2/material.mjs +0 -2
- package/dist/components/common/intl-provider.mjs +0 -2
- /package/dist/components/biz/business/{search-history2 → search-history}/server.mjs +0 -0
package/README.md
CHANGED
|
@@ -55,6 +55,11 @@ CommonPlayer PhotoGrid CommonPhotoGrid
|
|
|
55
55
|
photoPreview closePhotoPreview DebugLocaleSwitcher
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
### FunhubProvider(推荐入口)
|
|
59
|
+
|
|
60
|
+
- 接入说明:`components/common/funhub-provider/README.md`
|
|
61
|
+
- 使用要求:必须传入 `intl` 配置(建议通过 `@funhub/platform/i18n` 的 `getMessages` 获取语言包)
|
|
62
|
+
|
|
58
63
|
## 业务组件 (Biz)
|
|
59
64
|
|
|
60
65
|
### Basics (基础业务组件)
|
package/dist/biz.d.mts
CHANGED
|
@@ -42,9 +42,9 @@ import "./components/biz/basics/index.mjs";
|
|
|
42
42
|
import { MarqueeInspectorProps, MarqueeProps, marqueeInspectorDefaultProps, marqueeInspectorPropsSchema } from "./components/biz/business/marquee/schema.mjs";
|
|
43
43
|
import { MarqueeServer } from "./components/biz/business/marquee/server.mjs";
|
|
44
44
|
import { marqueeMaterial } from "./components/biz/business/marquee/material.mjs";
|
|
45
|
-
import { SearchHistory2InspectorProps, SearchHistory2Props,
|
|
46
|
-
import { SearchHistory2Server } from "./components/biz/business/search-
|
|
47
|
-
import {
|
|
45
|
+
import { SearchHistory2InspectorProps, SearchHistory2Props, searchHistoryInspectorDefaultProps, searchHistoryInspectorPropsSchema } from "./components/biz/business/search-history/schema.mjs";
|
|
46
|
+
import { SearchHistory2Server } from "./components/biz/business/search-history/server.mjs";
|
|
47
|
+
import { searchHistoryMaterial } from "./components/biz/business/search-history/material.mjs";
|
|
48
48
|
import { SearchInputInspectorProps, SearchInputProps, searchInputInspectorDefaultProps, searchInputInspectorPropsSchema } from "./components/biz/business/search-input/schema.mjs";
|
|
49
49
|
import { SearchInputServer } from "./components/biz/business/search-input/server.mjs";
|
|
50
50
|
import { searchInputMaterial } from "./components/biz/business/search-input/material.mjs";
|
|
@@ -90,9 +90,15 @@ import { schema as schema$20 } from "./components/biz/business/fullscreen-feed/v
|
|
|
90
90
|
import { defaultProps as defaultProps$21 } from "./components/biz/business/home-recommend/variants/home-recommend-grid/defaults/default-props.mjs";
|
|
91
91
|
import { HomeRecommendGridClient } from "./components/biz/business/home-recommend/variants/home-recommend-grid/runtime/client.mjs";
|
|
92
92
|
import { schema as schema$21 } from "./components/biz/business/home-recommend/variants/home-recommend-grid/schema/index.mjs";
|
|
93
|
+
import { homeRecommendGridInspectorDefaultProps, homeRecommendGridInspectorPropsSchema } from "./components/biz/business/home-recommend/variants/home-recommend-grid/inspector-schema.mjs";
|
|
94
|
+
import { HomeRecommendGrid } from "./components/biz/business/home-recommend/variants/home-recommend-grid/server.mjs";
|
|
95
|
+
import { homeRecommendGridMaterial } from "./components/biz/business/home-recommend/variants/home-recommend-grid/material.mjs";
|
|
93
96
|
import { defaultProps as defaultProps$22 } from "./components/biz/business/home-recommend/variants/home-recommend-waterfall/defaults/default-props.mjs";
|
|
94
97
|
import { HomeRecommendWaterfallClient } from "./components/biz/business/home-recommend/variants/home-recommend-waterfall/runtime/client.mjs";
|
|
95
98
|
import { schema as schema$22 } from "./components/biz/business/home-recommend/variants/home-recommend-waterfall/schema/index.mjs";
|
|
99
|
+
import { homeRecommendWaterfallInspectorDefaultProps, homeRecommendWaterfallInspectorPropsSchema } from "./components/biz/business/home-recommend/variants/home-recommend-waterfall/inspector-schema.mjs";
|
|
100
|
+
import { HomeRecommendWaterfall } from "./components/biz/business/home-recommend/variants/home-recommend-waterfall/server.mjs";
|
|
101
|
+
import { homeRecommendWaterfallMaterial } from "./components/biz/business/home-recommend/variants/home-recommend-waterfall/material.mjs";
|
|
96
102
|
import { MarqueeClient } from "./components/biz/business/marquee/client.mjs";
|
|
97
103
|
import { defaultProps as defaultProps$4 } from "./components/biz/business/nav-bar/variants/basic-nav-bar/defaults/default-props.mjs";
|
|
98
104
|
import { BasicNavBarClient } from "./components/biz/business/nav-bar/variants/basic-nav-bar/runtime/client.mjs";
|
|
@@ -115,7 +121,7 @@ import { schema as schema$17 } from "./components/biz/business/search-bar/varian
|
|
|
115
121
|
import { defaultProps as defaultProps$24 } from "./components/biz/business/search-bar/variants/tag-search-bar/defaults/default-props.mjs";
|
|
116
122
|
import { TagSearchBarClient } from "./components/biz/business/search-bar/variants/tag-search-bar/runtime/client.mjs";
|
|
117
123
|
import { schema as schema$24 } from "./components/biz/business/search-bar/variants/tag-search-bar/schema/index.mjs";
|
|
118
|
-
import { SearchHistory2Client } from "./components/biz/business/search-
|
|
124
|
+
import { SearchHistory2Client } from "./components/biz/business/search-history/client.mjs";
|
|
119
125
|
import { SearchInputClient } from "./components/biz/business/search-input/client.mjs";
|
|
120
126
|
import { TabBarClient } from "./components/biz/business/tab-bar/client.mjs";
|
|
121
127
|
import { TextRecommendClient } from "./components/biz/business/text-recommend/client.mjs";
|
|
@@ -128,4 +134,4 @@ import { Button } from "./components/biz/example/button/server.mjs";
|
|
|
128
134
|
import "./components/biz/example/button/index.mjs";
|
|
129
135
|
import { NodeDocument, PageDocument, PageMeta, Renderer, RendererDocument, RendererMaterial, RendererMode, RendererProps } from "./components/biz/renderer/renderer.mjs";
|
|
130
136
|
import "./components/biz/renderer/index.mjs";
|
|
131
|
-
export { BaseComponentProps, BasicBannerClient as BasicBanner, defaultProps as BasicBannerDefaultData, BasicBanner as BasicBannerMaterialComponent, schema as BasicBannerSchema, BasicFeatureGridClient as BasicFeatureGrid, defaultProps$1 as BasicFeatureGridDefaultData, schema$1 as BasicFeatureGridSchema, BasicFullscreen, FullscreenFeedClient as BasicFullscreenFeed, defaultProps$2 as BasicFullscreenFeedDefaultData, schema$2 as BasicFullscreenFeedSchema, BasicLogoClient as BasicLogo, defaultProps$3 as BasicLogoDefaultData, schema$3 as BasicLogoSchema, BasicNavBarClient as BasicNavBar, defaultProps$4 as BasicNavBarDefaultData, schema$4 as BasicNavBarSchema, BasicPostCardClient as BasicPostCard, defaultProps$5 as BasicPostCardDefaultData, schema$5 as BasicPostCardSchema, BasicRecommendedUsersClient as BasicRecommendedUsers, defaultProps$6 as BasicRecommendedUsersDefaultData, schema$6 as BasicRecommendedUsersSchema, BasicSearchClient as BasicSearch, BasicSearchBarClient as BasicSearchBar, defaultProps$7 as BasicSearchBarDefaultData, schema$7 as BasicSearchBarSchema, defaultProps$8 as BasicSearchDefaultData, schema$8 as BasicSearchSchema, Button, ButtonClient, ButtonInspectorProps, ButtonProps, CARD_SPEC_MAP, CardCornerMode, CardGrid2x3Client as CardGrid2x3, defaultProps$9 as CardGrid2x3DefaultData, CardGrid2x3InfiniteClient as CardGrid2x3Infinite, defaultProps$10 as CardGrid2x3InfiniteDefaultData, schema$9 as CardGrid2x3InfiniteSchema, schema$10 as CardGrid2x3Schema, CardGrid2x4Client as CardGrid2x4, defaultProps$11 as CardGrid2x4DefaultData, schema$11 as CardGrid2x4Schema, CardGrid3x3Client as CardGrid3x3, defaultProps$12 as CardGrid3x3DefaultData, CardGrid3x3InfiniteClient as CardGrid3x3Infinite, defaultProps$13 as CardGrid3x3InfiniteDefaultData, schema$12 as CardGrid3x3InfiniteSchema, schema$13 as CardGrid3x3Schema, defaultProps$14 as CardItemDefaultData, schema$14 as CardItemSchema, defaultProps$15 as CardLayoutDefaultData, schema$15 as CardLayoutSchema, CardSpec, ChannelDataItem, CommonStyleSchema, ComponentMaterial, ComponentSchema, ComponentType, ContentBlockItem, DataBinding, DataBindingField, DataBindingSourceType, DataBindingUIMode, DataSchema, DataSlot, DataSourceType, DetailSearchBarClient as DetailSearchBar, defaultProps$16 as DetailSearchBarDefaultData, schema$16 as DetailSearchBarSchema, EventDefinition, EventSchema, ExtractedDataItem, FieldSchema, FieldType, FilterSearchClient as FilterSearch, FilterSearchBarClient as FilterSearchBar, defaultProps$17 as FilterSearchBarDefaultData, schema$17 as FilterSearchBarSchema, defaultProps$18 as FilterSearchDefaultData, schema$18 as FilterSearchSchema, FullscreenPostFeedClient as FullscreenFeedClient, defaultProps$19 as FullscreenPostFeedDefaultData, schema$19 as FullscreenPostFeedSchema, FullscreenVideoFeedClient as FullscreenVideoClient, defaultProps$20 as FullscreenVideoFeedDefaultData, schema$20 as FullscreenVideoFeedSchema, HomeRecommendGridClient as HomeRecommendGrid, defaultProps$21 as HomeRecommendGridDefaultData, schema$21 as HomeRecommendGridSchema, HomeRecommendWaterfallClient as HomeRecommendWaterfall, defaultProps$22 as HomeRecommendWaterfallDefaultData, schema$22 as HomeRecommendWaterfallSchema, MarqueeClient, MarqueeInspectorProps, MarqueeProps, MarqueeServer, MaterialRegistry, NodeDocument, PageDocument, PageMeta, PropDefinition, PropSchema, RawContentData, Renderer, RendererDocument, RendererMaterial, RendererMode, RendererProps, SearchHistory2Client, SearchHistory2InspectorProps, SearchHistory2Props, SearchHistory2Server, SearchInputClient, SearchInputInspectorProps, SearchInputProps, SearchInputServer, SimpleSearchClient as SimpleSearch, defaultProps$23 as SimpleSearchDefaultData, schema$23 as SimpleSearchSchema, StylePropDefinition, StyleSchema, TabBarClient, TabBarInspectorProps, TabBarProps, TabBarServer, TagSearchClient as TagSearch, TagSearchBarClient as TagSearchBar, defaultProps$24 as TagSearchBarDefaultData, schema$24 as TagSearchBarSchema, defaultProps$25 as TagSearchDefaultData, schema$25 as TagSearchSchema, TextRecommendClient, TextRecommendInspectorProps, TextRecommendProps, TextRecommendServer, VideoHorizontalListClient, VideoHorizontalListInspectorProps, VideoHorizontalListProps, VideoHorizontalListServer, basicBannerInspectorDefaultProps, basicBannerInspectorPropsSchema, basicBannerMaterial, buildContentUrl, buttonInspectorDefaultProps, buttonInspectorPropsSchema, commonStyleSchema, commonStylesToInline, customStylesToInline, exampleButtonMaterial, extractDataByComponentType, getCardSpecConfig, getChannelList, marqueeInspectorDefaultProps, marqueeInspectorPropsSchema, marqueeMaterial, mergeStyles,
|
|
137
|
+
export { BaseComponentProps, BasicBannerClient as BasicBanner, defaultProps as BasicBannerDefaultData, BasicBanner as BasicBannerMaterialComponent, schema as BasicBannerSchema, BasicFeatureGridClient as BasicFeatureGrid, defaultProps$1 as BasicFeatureGridDefaultData, schema$1 as BasicFeatureGridSchema, BasicFullscreen, FullscreenFeedClient as BasicFullscreenFeed, defaultProps$2 as BasicFullscreenFeedDefaultData, schema$2 as BasicFullscreenFeedSchema, BasicLogoClient as BasicLogo, defaultProps$3 as BasicLogoDefaultData, schema$3 as BasicLogoSchema, BasicNavBarClient as BasicNavBar, defaultProps$4 as BasicNavBarDefaultData, schema$4 as BasicNavBarSchema, BasicPostCardClient as BasicPostCard, defaultProps$5 as BasicPostCardDefaultData, schema$5 as BasicPostCardSchema, BasicRecommendedUsersClient as BasicRecommendedUsers, defaultProps$6 as BasicRecommendedUsersDefaultData, schema$6 as BasicRecommendedUsersSchema, BasicSearchClient as BasicSearch, BasicSearchBarClient as BasicSearchBar, defaultProps$7 as BasicSearchBarDefaultData, schema$7 as BasicSearchBarSchema, defaultProps$8 as BasicSearchDefaultData, schema$8 as BasicSearchSchema, Button, ButtonClient, ButtonInspectorProps, ButtonProps, CARD_SPEC_MAP, CardCornerMode, CardGrid2x3Client as CardGrid2x3, defaultProps$9 as CardGrid2x3DefaultData, CardGrid2x3InfiniteClient as CardGrid2x3Infinite, defaultProps$10 as CardGrid2x3InfiniteDefaultData, schema$9 as CardGrid2x3InfiniteSchema, schema$10 as CardGrid2x3Schema, CardGrid2x4Client as CardGrid2x4, defaultProps$11 as CardGrid2x4DefaultData, schema$11 as CardGrid2x4Schema, CardGrid3x3Client as CardGrid3x3, defaultProps$12 as CardGrid3x3DefaultData, CardGrid3x3InfiniteClient as CardGrid3x3Infinite, defaultProps$13 as CardGrid3x3InfiniteDefaultData, schema$12 as CardGrid3x3InfiniteSchema, schema$13 as CardGrid3x3Schema, defaultProps$14 as CardItemDefaultData, schema$14 as CardItemSchema, defaultProps$15 as CardLayoutDefaultData, schema$15 as CardLayoutSchema, CardSpec, ChannelDataItem, CommonStyleSchema, ComponentMaterial, ComponentSchema, ComponentType, ContentBlockItem, DataBinding, DataBindingField, DataBindingSourceType, DataBindingUIMode, DataSchema, DataSlot, DataSourceType, DetailSearchBarClient as DetailSearchBar, defaultProps$16 as DetailSearchBarDefaultData, schema$16 as DetailSearchBarSchema, EventDefinition, EventSchema, ExtractedDataItem, FieldSchema, FieldType, FilterSearchClient as FilterSearch, FilterSearchBarClient as FilterSearchBar, defaultProps$17 as FilterSearchBarDefaultData, schema$17 as FilterSearchBarSchema, defaultProps$18 as FilterSearchDefaultData, schema$18 as FilterSearchSchema, FullscreenPostFeedClient as FullscreenFeedClient, defaultProps$19 as FullscreenPostFeedDefaultData, schema$19 as FullscreenPostFeedSchema, FullscreenVideoFeedClient as FullscreenVideoClient, defaultProps$20 as FullscreenVideoFeedDefaultData, schema$20 as FullscreenVideoFeedSchema, HomeRecommendGridClient as HomeRecommendGrid, defaultProps$21 as HomeRecommendGridDefaultData, HomeRecommendGrid as HomeRecommendGridMaterialComponent, schema$21 as HomeRecommendGridSchema, HomeRecommendWaterfallClient as HomeRecommendWaterfall, defaultProps$22 as HomeRecommendWaterfallDefaultData, HomeRecommendWaterfall as HomeRecommendWaterfallMaterialComponent, schema$22 as HomeRecommendWaterfallSchema, MarqueeClient, MarqueeInspectorProps, MarqueeProps, MarqueeServer, MaterialRegistry, NodeDocument, PageDocument, PageMeta, PropDefinition, PropSchema, RawContentData, Renderer, RendererDocument, RendererMaterial, RendererMode, RendererProps, SearchHistory2Client, SearchHistory2InspectorProps, SearchHistory2Props, SearchHistory2Server, SearchInputClient, SearchInputInspectorProps, SearchInputProps, SearchInputServer, SimpleSearchClient as SimpleSearch, defaultProps$23 as SimpleSearchDefaultData, schema$23 as SimpleSearchSchema, StylePropDefinition, StyleSchema, TabBarClient, TabBarInspectorProps, TabBarProps, TabBarServer, TagSearchClient as TagSearch, TagSearchBarClient as TagSearchBar, defaultProps$24 as TagSearchBarDefaultData, schema$24 as TagSearchBarSchema, defaultProps$25 as TagSearchDefaultData, schema$25 as TagSearchSchema, TextRecommendClient, TextRecommendInspectorProps, TextRecommendProps, TextRecommendServer, VideoHorizontalListClient, VideoHorizontalListInspectorProps, VideoHorizontalListProps, VideoHorizontalListServer, basicBannerInspectorDefaultProps, basicBannerInspectorPropsSchema, basicBannerMaterial, buildContentUrl, buttonInspectorDefaultProps, buttonInspectorPropsSchema, commonStyleSchema, commonStylesToInline, customStylesToInline, exampleButtonMaterial, extractDataByComponentType, getCardSpecConfig, getChannelList, homeRecommendGridInspectorDefaultProps, homeRecommendGridInspectorPropsSchema, homeRecommendGridMaterial, homeRecommendWaterfallInspectorDefaultProps, homeRecommendWaterfallInspectorPropsSchema, homeRecommendWaterfallMaterial, marqueeInspectorDefaultProps, marqueeInspectorPropsSchema, marqueeMaterial, mergeStyles, searchHistoryInspectorDefaultProps, searchHistoryInspectorPropsSchema, searchHistoryMaterial, searchInputInspectorDefaultProps, searchInputInspectorPropsSchema, searchInputMaterial, tabBarInspectorDefaultProps, tabBarInspectorPropsSchema, tabBarMaterial, textRecommendInspectorDefaultProps, textRecommendInspectorPropsSchema, textRecommendMaterial, transformContentListToCardItems, transformContentToCardItem, videoHorizontalListInspectorDefaultProps, videoHorizontalListInspectorPropsSchema, videoHorizontalListMaterial };
|
package/dist/biz.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{CARD_SPEC_MAP as e,CardSpec as t,getCardSpecConfig as n}from"./components/biz/utils/constants/card-spec.mjs";import{getChannelList as r}from"./components/biz/utils/helpers/get-channel-list.mjs";import{buildContentUrl as i}from"./components/biz/utils/helpers/url.mjs";import{DataBindingUIMode as a,DataSourceType as o}from"./components/biz/utils/schema/data.mjs";import{commonStylesToInline as s,customStylesToInline as c,mergeStyles as l}from"./components/biz/utils/styles/helpers.mjs";import{commonStyleSchema as u}from"./components/biz/utils/styles/schema.mjs";import{transformContentListToCardItems as d,transformContentToCardItem as f}from"./components/biz/utils/transformers/card-grid.mjs";import{marqueeInspectorDefaultProps as p,marqueeInspectorPropsSchema as m}from"./components/biz/business/marquee/schema.mjs";import{MarqueeClient as h}from"./components/biz/business/marquee/client.mjs";import{MarqueeServer as g}from"./components/biz/business/marquee/server.mjs";import{marqueeMaterial as _}from"./components/biz/business/marquee/material.mjs";import{searchHistory2InspectorDefaultProps as v,searchHistory2InspectorPropsSchema as y}from"./components/biz/business/search-history2/schema.mjs";import{SearchHistory2Client as b}from"./components/biz/business/search-history2/client.mjs";import{SearchHistory2Server as x}from"./components/biz/business/search-history2/server.mjs";import{searchHistory2Material as S}from"./components/biz/business/search-history2/material.mjs";import{searchInputInspectorDefaultProps as C,searchInputInspectorPropsSchema as w}from"./components/biz/business/search-input/schema.mjs";import{defaultProps as T}from"./components/biz/basics/logo/variants/basic-logo/defaults/default-props.mjs";import{defaultProps as E}from"./components/biz/basics/search/variants/basic-search/defaults/default-props.mjs";import{defaultProps as D}from"./components/biz/business/search-bar/variants/detail-search-bar/defaults/default-props.mjs";import{schema as O}from"./components/biz/basics/logo/variants/basic-logo/schema/index.mjs";import k from"./components/biz/basics/logo/variants/basic-logo/index.mjs";import{defaultProps as A}from"./components/biz/basics/search/variants/simple-search/defaults/default-props.mjs";import{schema as j}from"./components/biz/basics/search/variants/simple-search/schema/index.mjs";import M from"./components/biz/basics/search/variants/simple-search/index.mjs";import{schema as N}from"./components/biz/business/search-bar/variants/detail-search-bar/schema/index.mjs";import P from"./components/biz/business/search-bar/variants/detail-search-bar/index.mjs";import{BasicFullscreen as F}from"./components/biz/basics/fullscreen-feed/basic-fullscreen.mjs";import{SearchInputClient as I}from"./components/biz/business/search-input/client.mjs";import{SearchInputServer as L}from"./components/biz/business/search-input/server.mjs";import{searchInputMaterial as R}from"./components/biz/business/search-input/material.mjs";import{tabBarInspectorDefaultProps as z,tabBarInspectorPropsSchema as B}from"./components/biz/business/tab-bar/schema.mjs";import{TabBarClient as V}from"./components/biz/business/tab-bar/client.mjs";import{TabBarServer as H}from"./components/biz/business/tab-bar/server.mjs";import{tabBarMaterial as U}from"./components/biz/business/tab-bar/material.mjs";import{textRecommendInspectorDefaultProps as W,textRecommendInspectorPropsSchema as G}from"./components/biz/business/text-recommend/schema.mjs";import{TextRecommendClient as K}from"./components/biz/business/text-recommend/client.mjs";import{TextRecommendServer as q}from"./components/biz/business/text-recommend/server.mjs";import{textRecommendMaterial as J}from"./components/biz/business/text-recommend/material.mjs";import{videoHorizontalListInspectorDefaultProps as Y,videoHorizontalListInspectorPropsSchema as X}from"./components/biz/business/video-horizontal-list/schema.mjs";import{VideoHorizontalListClient as Z}from"./components/biz/business/video-horizontal-list/client.mjs";import{VideoHorizontalListServer as Q}from"./components/biz/business/video-horizontal-list/server.mjs";import{videoHorizontalListMaterial as $}from"./components/biz/business/video-horizontal-list/material.mjs";import{defaultProps as ee}from"./components/biz/business/banner/variants/basic-banner/defaults/default-props.mjs";import{schema as te}from"./components/biz/business/banner/variants/basic-banner/schema/index.mjs";import{basicBannerInspectorDefaultProps as ne,basicBannerInspectorPropsSchema as re}from"./components/biz/business/banner/variants/basic-banner/inspector-schema.mjs";import{BasicBanner as ie}from"./components/biz/business/banner/variants/basic-banner/server.mjs";import{basicBannerMaterial as ae}from"./components/biz/business/banner/variants/basic-banner/material.mjs";import oe from"./components/biz/business/banner/variants/basic-banner/index.mjs";import{defaultProps as se}from"./components/biz/business/card-grid/variants/card-grid-2x3/defaults/default-props.mjs";import{schema as ce}from"./components/biz/business/card-grid/variants/card-grid-2x3/schema/index.mjs";import le from"./components/biz/business/card-grid/variants/card-grid-2x3/index.mjs";import{defaultProps as ue}from"./components/biz/business/card-grid/variants/card-grid-2x3-infinite/defaults/default-props.mjs";import{schema as de}from"./components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/index.mjs";import fe from"./components/biz/business/card-grid/variants/card-grid-2x3-infinite/index.mjs";import{defaultProps as pe}from"./components/biz/business/card-grid/variants/card-grid-2x4/defaults/default-props.mjs";import{schema as me}from"./components/biz/business/card-grid/variants/card-grid-2x4/schema/index.mjs";import he from"./components/biz/business/card-grid/variants/card-grid-2x4/index.mjs";import{defaultProps as ge}from"./components/biz/business/card-grid/variants/card-grid-3x3/defaults/default-props.mjs";import{schema as _e}from"./components/biz/business/card-grid/variants/card-grid-3x3/schema/index.mjs";import ve from"./components/biz/business/card-grid/variants/card-grid-3x3/index.mjs";import{defaultProps as ye}from"./components/biz/business/card-grid/variants/card-grid-3x3-infinite/defaults/default-props.mjs";import{schema as be}from"./components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/index.mjs";import xe from"./components/biz/business/card-grid/variants/card-grid-3x3-infinite/index.mjs";import{defaultProps as Se}from"./components/biz/business/feature-grid/variants/basic-feature-grid/defaults/default-props.mjs";import{schema as Ce}from"./components/biz/business/feature-grid/variants/basic-feature-grid/schema/index.mjs";import we from"./components/biz/business/feature-grid/variants/basic-feature-grid/index.mjs";import{defaultProps as Te}from"./components/biz/basics/fullscreen-feed/defaults/default-props.mjs";import{schema as Ee}from"./components/biz/basics/fullscreen-feed/schema/index.mjs";import De from"./components/biz/basics/fullscreen-feed/index.mjs";import{defaultProps as Oe}from"./components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/defaults/default-props.mjs";import{schema as ke}from"./components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/schema/index.mjs";import Ae from"./components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/index.mjs";import{defaultProps as je}from"./components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/defaults/default-props.mjs";import{schema as Me}from"./components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/schema/index.mjs";import Ne from"./components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/index.mjs";import{defaultProps as Pe}from"./components/biz/business/home-recommend/variants/home-recommend-grid/defaults/default-props.mjs";import{schema as Fe}from"./components/biz/business/home-recommend/variants/home-recommend-grid/schema/index.mjs";import Ie from"./components/biz/business/home-recommend/variants/home-recommend-grid/index.mjs";import{defaultProps as Le}from"./components/biz/business/home-recommend/variants/home-recommend-waterfall/defaults/default-props.mjs";import{schema as Re}from"./components/biz/business/home-recommend/variants/home-recommend-waterfall/schema/index.mjs";import ze from"./components/biz/business/home-recommend/variants/home-recommend-waterfall/index.mjs";import{defaultProps as Be}from"./components/biz/business/nav-bar/variants/basic-nav-bar/defaults/default-props.mjs";import{schema as Ve}from"./components/biz/business/nav-bar/variants/basic-nav-bar/schema/index.mjs";import He from"./components/biz/business/nav-bar/variants/basic-nav-bar/index.mjs";import{defaultProps as Ue}from"./components/biz/business/post-card/variants/basic-post-card/defaults/default-props.mjs";import{schema as We}from"./components/biz/business/post-card/variants/basic-post-card/schema/index.mjs";import Ge from"./components/biz/business/post-card/variants/basic-post-card/index.mjs";import{defaultProps as Ke}from"./components/biz/business/recommended-users/variants/basic-recommended-users/defaults/default-props.mjs";import{schema as qe}from"./components/biz/business/recommended-users/variants/basic-recommended-users/schema/index.mjs";import Je from"./components/biz/business/recommended-users/variants/basic-recommended-users/index.mjs";import{defaultProps as Ye}from"./components/biz/business/search-bar/variants/basic-search-bar/defaults/default-props.mjs";import{schema as Xe}from"./components/biz/basics/search/variants/basic-search/schema/index.mjs";import Ze from"./components/biz/basics/search/variants/basic-search/index.mjs";import{schema as Qe}from"./components/biz/business/search-bar/variants/basic-search-bar/schema/index.mjs";import $e from"./components/biz/business/search-bar/variants/basic-search-bar/index.mjs";import{defaultProps as et}from"./components/biz/basics/search/variants/filter-search/defaults/default-props.mjs";import{defaultProps as tt}from"./components/biz/business/search-bar/variants/filter-search-bar/defaults/default-props.mjs";import{schema as nt}from"./components/biz/basics/search/variants/filter-search/schema/index.mjs";import rt from"./components/biz/basics/search/variants/filter-search/index.mjs";import{schema as it}from"./components/biz/business/search-bar/variants/filter-search-bar/schema/index.mjs";import at from"./components/biz/business/search-bar/variants/filter-search-bar/index.mjs";import{defaultProps as ot}from"./components/biz/basics/search/variants/tag-search/defaults/default-props.mjs";import{defaultProps as st}from"./components/biz/business/search-bar/variants/tag-search-bar/defaults/default-props.mjs";import{schema as ct}from"./components/biz/basics/search/variants/tag-search/schema/index.mjs";import lt from"./components/biz/basics/search/variants/tag-search/index.mjs";import{schema as ut}from"./components/biz/business/search-bar/variants/tag-search-bar/schema/index.mjs";import dt from"./components/biz/business/search-bar/variants/tag-search-bar/index.mjs";import{ComponentType as ft,extractDataByComponentType as pt}from"./components/biz/utils/transformers/data.mjs";import{defaultProps as mt}from"./components/biz/basics/card-item/defaults/default-props.mjs";import{schema as ht}from"./components/biz/basics/card-item/schema/index.mjs";import{defaultProps as gt}from"./components/biz/basics/card-layout/defaults/default-props.mjs";import{schema as _t}from"./components/biz/basics/card-layout/schema/index.mjs";import{ButtonClient as vt}from"./components/biz/example/button/client.mjs";import{buttonInspectorDefaultProps as yt,buttonInspectorPropsSchema as bt}from"./components/biz/example/button/schema.mjs";import{Button as xt}from"./components/biz/example/button/server.mjs";import{exampleButtonMaterial as St}from"./components/biz/example/button/material.mjs";import{Renderer as Ct}from"./components/biz/renderer/renderer.mjs";export{oe as BasicBanner,ee as BasicBannerDefaultData,ie as BasicBannerMaterialComponent,te as BasicBannerSchema,we as BasicFeatureGrid,Se as BasicFeatureGridDefaultData,Ce as BasicFeatureGridSchema,F as BasicFullscreen,De as BasicFullscreenFeed,Te as BasicFullscreenFeedDefaultData,Ee as BasicFullscreenFeedSchema,k as BasicLogo,T as BasicLogoDefaultData,O as BasicLogoSchema,He as BasicNavBar,Be as BasicNavBarDefaultData,Ve as BasicNavBarSchema,Ge as BasicPostCard,Ue as BasicPostCardDefaultData,We as BasicPostCardSchema,Je as BasicRecommendedUsers,Ke as BasicRecommendedUsersDefaultData,qe as BasicRecommendedUsersSchema,Ze as BasicSearch,$e as BasicSearchBar,Ye as BasicSearchBarDefaultData,Qe as BasicSearchBarSchema,E as BasicSearchDefaultData,Xe as BasicSearchSchema,xt as Button,vt as ButtonClient,e as CARD_SPEC_MAP,le as CardGrid2x3,se as CardGrid2x3DefaultData,fe as CardGrid2x3Infinite,ue as CardGrid2x3InfiniteDefaultData,de as CardGrid2x3InfiniteSchema,ce as CardGrid2x3Schema,he as CardGrid2x4,pe as CardGrid2x4DefaultData,me as CardGrid2x4Schema,ve as CardGrid3x3,ge as CardGrid3x3DefaultData,xe as CardGrid3x3Infinite,ye as CardGrid3x3InfiniteDefaultData,be as CardGrid3x3InfiniteSchema,_e as CardGrid3x3Schema,mt as CardItemDefaultData,ht as CardItemSchema,gt as CardLayoutDefaultData,_t as CardLayoutSchema,t as CardSpec,ft as ComponentType,a as DataBindingUIMode,o as DataSourceType,P as DetailSearchBar,D as DetailSearchBarDefaultData,N as DetailSearchBarSchema,rt as FilterSearch,at as FilterSearchBar,tt as FilterSearchBarDefaultData,it as FilterSearchBarSchema,et as FilterSearchDefaultData,nt as FilterSearchSchema,Ae as FullscreenFeedClient,Oe as FullscreenPostFeedDefaultData,ke as FullscreenPostFeedSchema,Ne as FullscreenVideoClient,je as FullscreenVideoFeedDefaultData,Me as FullscreenVideoFeedSchema,Ie as HomeRecommendGrid,Pe as HomeRecommendGridDefaultData,Fe as HomeRecommendGridSchema,ze as HomeRecommendWaterfall,Le as HomeRecommendWaterfallDefaultData,Re as HomeRecommendWaterfallSchema,h as MarqueeClient,g as MarqueeServer,Ct as Renderer,b as SearchHistory2Client,x as SearchHistory2Server,I as SearchInputClient,L as SearchInputServer,M as SimpleSearch,A as SimpleSearchDefaultData,j as SimpleSearchSchema,V as TabBarClient,H as TabBarServer,lt as TagSearch,dt as TagSearchBar,st as TagSearchBarDefaultData,ut as TagSearchBarSchema,ot as TagSearchDefaultData,ct as TagSearchSchema,K as TextRecommendClient,q as TextRecommendServer,Z as VideoHorizontalListClient,Q as VideoHorizontalListServer,ne as basicBannerInspectorDefaultProps,re as basicBannerInspectorPropsSchema,ae as basicBannerMaterial,i as buildContentUrl,yt as buttonInspectorDefaultProps,bt as buttonInspectorPropsSchema,u as commonStyleSchema,s as commonStylesToInline,c as customStylesToInline,St as exampleButtonMaterial,pt as extractDataByComponentType,n as getCardSpecConfig,r as getChannelList,p as marqueeInspectorDefaultProps,m as marqueeInspectorPropsSchema,_ as marqueeMaterial,l as mergeStyles,v as searchHistory2InspectorDefaultProps,y as searchHistory2InspectorPropsSchema,S as searchHistory2Material,C as searchInputInspectorDefaultProps,w as searchInputInspectorPropsSchema,R as searchInputMaterial,z as tabBarInspectorDefaultProps,B as tabBarInspectorPropsSchema,U as tabBarMaterial,W as textRecommendInspectorDefaultProps,G as textRecommendInspectorPropsSchema,J as textRecommendMaterial,d as transformContentListToCardItems,f as transformContentToCardItem,Y as videoHorizontalListInspectorDefaultProps,X as videoHorizontalListInspectorPropsSchema,$ as videoHorizontalListMaterial};
|
|
2
|
+
import{CARD_SPEC_MAP as e,CardSpec as t,getCardSpecConfig as n}from"./components/biz/utils/constants/card-spec.mjs";import{getChannelList as r}from"./components/biz/utils/helpers/get-channel-list.mjs";import{buildContentUrl as i}from"./components/biz/utils/helpers/url.mjs";import{DataBindingUIMode as a,DataSourceType as o}from"./components/biz/utils/schema/data.mjs";import{commonStylesToInline as s,customStylesToInline as c,mergeStyles as l}from"./components/biz/utils/styles/helpers.mjs";import{commonStyleSchema as u}from"./components/biz/utils/styles/schema.mjs";import{transformContentListToCardItems as d,transformContentToCardItem as f}from"./components/biz/utils/transformers/card-grid.mjs";import{marqueeInspectorDefaultProps as p,marqueeInspectorPropsSchema as m}from"./components/biz/business/marquee/schema.mjs";import{MarqueeClient as h}from"./components/biz/business/marquee/client.mjs";import{MarqueeServer as g}from"./components/biz/business/marquee/server.mjs";import{marqueeMaterial as _}from"./components/biz/business/marquee/material.mjs";import{searchHistoryInspectorDefaultProps as v,searchHistoryInspectorPropsSchema as y}from"./components/biz/business/search-history/schema.mjs";import{SearchHistory2Client as b}from"./components/biz/business/search-history/client.mjs";import{SearchHistory2Server as x}from"./components/biz/business/search-history/server.mjs";import{searchHistoryMaterial as S}from"./components/biz/business/search-history/material.mjs";import{searchInputInspectorDefaultProps as C,searchInputInspectorPropsSchema as w}from"./components/biz/business/search-input/schema.mjs";import{defaultProps as T}from"./components/biz/basics/logo/variants/basic-logo/defaults/default-props.mjs";import{defaultProps as E}from"./components/biz/basics/search/variants/basic-search/defaults/default-props.mjs";import{defaultProps as D}from"./components/biz/business/search-bar/variants/detail-search-bar/defaults/default-props.mjs";import{schema as O}from"./components/biz/basics/logo/variants/basic-logo/schema/index.mjs";import k from"./components/biz/basics/logo/variants/basic-logo/index.mjs";import{defaultProps as A}from"./components/biz/basics/search/variants/simple-search/defaults/default-props.mjs";import{schema as j}from"./components/biz/basics/search/variants/simple-search/schema/index.mjs";import M from"./components/biz/basics/search/variants/simple-search/index.mjs";import{schema as N}from"./components/biz/business/search-bar/variants/detail-search-bar/schema/index.mjs";import P from"./components/biz/business/search-bar/variants/detail-search-bar/index.mjs";import{BasicFullscreen as F}from"./components/biz/basics/fullscreen-feed/basic-fullscreen.mjs";import{SearchInputClient as I}from"./components/biz/business/search-input/client.mjs";import{SearchInputServer as L}from"./components/biz/business/search-input/server.mjs";import{searchInputMaterial as R}from"./components/biz/business/search-input/material.mjs";import{tabBarInspectorDefaultProps as z,tabBarInspectorPropsSchema as B}from"./components/biz/business/tab-bar/schema.mjs";import{TabBarClient as V}from"./components/biz/business/tab-bar/client.mjs";import{TabBarServer as H}from"./components/biz/business/tab-bar/server.mjs";import{tabBarMaterial as U}from"./components/biz/business/tab-bar/material.mjs";import{textRecommendInspectorDefaultProps as W,textRecommendInspectorPropsSchema as G}from"./components/biz/business/text-recommend/schema.mjs";import{TextRecommendClient as K}from"./components/biz/business/text-recommend/client.mjs";import{TextRecommendServer as q}from"./components/biz/business/text-recommend/server.mjs";import{textRecommendMaterial as J}from"./components/biz/business/text-recommend/material.mjs";import{videoHorizontalListInspectorDefaultProps as Y,videoHorizontalListInspectorPropsSchema as X}from"./components/biz/business/video-horizontal-list/schema.mjs";import{VideoHorizontalListClient as Z}from"./components/biz/business/video-horizontal-list/client.mjs";import{VideoHorizontalListServer as Q}from"./components/biz/business/video-horizontal-list/server.mjs";import{videoHorizontalListMaterial as $}from"./components/biz/business/video-horizontal-list/material.mjs";import{defaultProps as ee}from"./components/biz/business/banner/variants/basic-banner/defaults/default-props.mjs";import{schema as te}from"./components/biz/business/banner/variants/basic-banner/schema/index.mjs";import{basicBannerInspectorDefaultProps as ne,basicBannerInspectorPropsSchema as re}from"./components/biz/business/banner/variants/basic-banner/inspector-schema.mjs";import{BasicBanner as ie}from"./components/biz/business/banner/variants/basic-banner/server.mjs";import{basicBannerMaterial as ae}from"./components/biz/business/banner/variants/basic-banner/material.mjs";import oe from"./components/biz/business/banner/variants/basic-banner/index.mjs";import{defaultProps as se}from"./components/biz/business/card-grid/variants/card-grid-2x3/defaults/default-props.mjs";import{schema as ce}from"./components/biz/business/card-grid/variants/card-grid-2x3/schema/index.mjs";import le from"./components/biz/business/card-grid/variants/card-grid-2x3/index.mjs";import{defaultProps as ue}from"./components/biz/business/card-grid/variants/card-grid-2x3-infinite/defaults/default-props.mjs";import{schema as de}from"./components/biz/business/card-grid/variants/card-grid-2x3-infinite/schema/index.mjs";import fe from"./components/biz/business/card-grid/variants/card-grid-2x3-infinite/index.mjs";import{defaultProps as pe}from"./components/biz/business/card-grid/variants/card-grid-2x4/defaults/default-props.mjs";import{schema as me}from"./components/biz/business/card-grid/variants/card-grid-2x4/schema/index.mjs";import he from"./components/biz/business/card-grid/variants/card-grid-2x4/index.mjs";import{defaultProps as ge}from"./components/biz/business/card-grid/variants/card-grid-3x3/defaults/default-props.mjs";import{schema as _e}from"./components/biz/business/card-grid/variants/card-grid-3x3/schema/index.mjs";import ve from"./components/biz/business/card-grid/variants/card-grid-3x3/index.mjs";import{defaultProps as ye}from"./components/biz/business/card-grid/variants/card-grid-3x3-infinite/defaults/default-props.mjs";import{schema as be}from"./components/biz/business/card-grid/variants/card-grid-3x3-infinite/schema/index.mjs";import xe from"./components/biz/business/card-grid/variants/card-grid-3x3-infinite/index.mjs";import{defaultProps as Se}from"./components/biz/business/feature-grid/variants/basic-feature-grid/defaults/default-props.mjs";import{schema as Ce}from"./components/biz/business/feature-grid/variants/basic-feature-grid/schema/index.mjs";import we from"./components/biz/business/feature-grid/variants/basic-feature-grid/index.mjs";import{defaultProps as Te}from"./components/biz/basics/fullscreen-feed/defaults/default-props.mjs";import{schema as Ee}from"./components/biz/basics/fullscreen-feed/schema/index.mjs";import De from"./components/biz/basics/fullscreen-feed/index.mjs";import{defaultProps as Oe}from"./components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/defaults/default-props.mjs";import{schema as ke}from"./components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/schema/index.mjs";import Ae from"./components/biz/business/fullscreen-feed/variants/fullscreen-post-feed/index.mjs";import{defaultProps as je}from"./components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/defaults/default-props.mjs";import{schema as Me}from"./components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/schema/index.mjs";import Ne from"./components/biz/business/fullscreen-feed/variants/fullscreen-video-feed/index.mjs";import{defaultProps as Pe}from"./components/biz/business/home-recommend/variants/home-recommend-grid/defaults/default-props.mjs";import{schema as Fe}from"./components/biz/business/home-recommend/variants/home-recommend-grid/schema/index.mjs";import{homeRecommendGridInspectorDefaultProps as Ie,homeRecommendGridInspectorPropsSchema as Le}from"./components/biz/business/home-recommend/variants/home-recommend-grid/inspector-schema.mjs";import{HomeRecommendGrid as Re}from"./components/biz/business/home-recommend/variants/home-recommend-grid/server.mjs";import{homeRecommendGridMaterial as ze}from"./components/biz/business/home-recommend/variants/home-recommend-grid/material.mjs";import Be from"./components/biz/business/home-recommend/variants/home-recommend-grid/index.mjs";import{defaultProps as Ve}from"./components/biz/business/home-recommend/variants/home-recommend-waterfall/defaults/default-props.mjs";import{schema as He}from"./components/biz/business/home-recommend/variants/home-recommend-waterfall/schema/index.mjs";import{homeRecommendWaterfallInspectorDefaultProps as Ue,homeRecommendWaterfallInspectorPropsSchema as We}from"./components/biz/business/home-recommend/variants/home-recommend-waterfall/inspector-schema.mjs";import{HomeRecommendWaterfall as Ge}from"./components/biz/business/home-recommend/variants/home-recommend-waterfall/server.mjs";import{homeRecommendWaterfallMaterial as Ke}from"./components/biz/business/home-recommend/variants/home-recommend-waterfall/material.mjs";import qe from"./components/biz/business/home-recommend/variants/home-recommend-waterfall/index.mjs";import{defaultProps as Je}from"./components/biz/business/nav-bar/variants/basic-nav-bar/defaults/default-props.mjs";import{schema as Ye}from"./components/biz/business/nav-bar/variants/basic-nav-bar/schema/index.mjs";import Xe from"./components/biz/business/nav-bar/variants/basic-nav-bar/index.mjs";import{defaultProps as Ze}from"./components/biz/business/post-card/variants/basic-post-card/defaults/default-props.mjs";import{schema as Qe}from"./components/biz/business/post-card/variants/basic-post-card/schema/index.mjs";import $e from"./components/biz/business/post-card/variants/basic-post-card/index.mjs";import{defaultProps as et}from"./components/biz/business/recommended-users/variants/basic-recommended-users/defaults/default-props.mjs";import{schema as tt}from"./components/biz/business/recommended-users/variants/basic-recommended-users/schema/index.mjs";import nt from"./components/biz/business/recommended-users/variants/basic-recommended-users/index.mjs";import{defaultProps as rt}from"./components/biz/business/search-bar/variants/basic-search-bar/defaults/default-props.mjs";import{schema as it}from"./components/biz/basics/search/variants/basic-search/schema/index.mjs";import at from"./components/biz/basics/search/variants/basic-search/index.mjs";import{schema as ot}from"./components/biz/business/search-bar/variants/basic-search-bar/schema/index.mjs";import st from"./components/biz/business/search-bar/variants/basic-search-bar/index.mjs";import{defaultProps as ct}from"./components/biz/basics/search/variants/filter-search/defaults/default-props.mjs";import{defaultProps as lt}from"./components/biz/business/search-bar/variants/filter-search-bar/defaults/default-props.mjs";import{schema as ut}from"./components/biz/basics/search/variants/filter-search/schema/index.mjs";import dt from"./components/biz/basics/search/variants/filter-search/index.mjs";import{schema as ft}from"./components/biz/business/search-bar/variants/filter-search-bar/schema/index.mjs";import pt from"./components/biz/business/search-bar/variants/filter-search-bar/index.mjs";import{defaultProps as mt}from"./components/biz/basics/search/variants/tag-search/defaults/default-props.mjs";import{defaultProps as ht}from"./components/biz/business/search-bar/variants/tag-search-bar/defaults/default-props.mjs";import{schema as gt}from"./components/biz/basics/search/variants/tag-search/schema/index.mjs";import _t from"./components/biz/basics/search/variants/tag-search/index.mjs";import{schema as vt}from"./components/biz/business/search-bar/variants/tag-search-bar/schema/index.mjs";import yt from"./components/biz/business/search-bar/variants/tag-search-bar/index.mjs";import{ComponentType as bt,extractDataByComponentType as xt}from"./components/biz/utils/transformers/data.mjs";import{defaultProps as St}from"./components/biz/basics/card-item/defaults/default-props.mjs";import{schema as Ct}from"./components/biz/basics/card-item/schema/index.mjs";import{defaultProps as wt}from"./components/biz/basics/card-layout/defaults/default-props.mjs";import{schema as Tt}from"./components/biz/basics/card-layout/schema/index.mjs";import{ButtonClient as Et}from"./components/biz/example/button/client.mjs";import{buttonInspectorDefaultProps as Dt,buttonInspectorPropsSchema as Ot}from"./components/biz/example/button/schema.mjs";import{Button as kt}from"./components/biz/example/button/server.mjs";import{exampleButtonMaterial as At}from"./components/biz/example/button/material.mjs";import{Renderer as jt}from"./components/biz/renderer/renderer.mjs";export{oe as BasicBanner,ee as BasicBannerDefaultData,ie as BasicBannerMaterialComponent,te as BasicBannerSchema,we as BasicFeatureGrid,Se as BasicFeatureGridDefaultData,Ce as BasicFeatureGridSchema,F as BasicFullscreen,De as BasicFullscreenFeed,Te as BasicFullscreenFeedDefaultData,Ee as BasicFullscreenFeedSchema,k as BasicLogo,T as BasicLogoDefaultData,O as BasicLogoSchema,Xe as BasicNavBar,Je as BasicNavBarDefaultData,Ye as BasicNavBarSchema,$e as BasicPostCard,Ze as BasicPostCardDefaultData,Qe as BasicPostCardSchema,nt as BasicRecommendedUsers,et as BasicRecommendedUsersDefaultData,tt as BasicRecommendedUsersSchema,at as BasicSearch,st as BasicSearchBar,rt as BasicSearchBarDefaultData,ot as BasicSearchBarSchema,E as BasicSearchDefaultData,it as BasicSearchSchema,kt as Button,Et as ButtonClient,e as CARD_SPEC_MAP,le as CardGrid2x3,se as CardGrid2x3DefaultData,fe as CardGrid2x3Infinite,ue as CardGrid2x3InfiniteDefaultData,de as CardGrid2x3InfiniteSchema,ce as CardGrid2x3Schema,he as CardGrid2x4,pe as CardGrid2x4DefaultData,me as CardGrid2x4Schema,ve as CardGrid3x3,ge as CardGrid3x3DefaultData,xe as CardGrid3x3Infinite,ye as CardGrid3x3InfiniteDefaultData,be as CardGrid3x3InfiniteSchema,_e as CardGrid3x3Schema,St as CardItemDefaultData,Ct as CardItemSchema,wt as CardLayoutDefaultData,Tt as CardLayoutSchema,t as CardSpec,bt as ComponentType,a as DataBindingUIMode,o as DataSourceType,P as DetailSearchBar,D as DetailSearchBarDefaultData,N as DetailSearchBarSchema,dt as FilterSearch,pt as FilterSearchBar,lt as FilterSearchBarDefaultData,ft as FilterSearchBarSchema,ct as FilterSearchDefaultData,ut as FilterSearchSchema,Ae as FullscreenFeedClient,Oe as FullscreenPostFeedDefaultData,ke as FullscreenPostFeedSchema,Ne as FullscreenVideoClient,je as FullscreenVideoFeedDefaultData,Me as FullscreenVideoFeedSchema,Be as HomeRecommendGrid,Pe as HomeRecommendGridDefaultData,Re as HomeRecommendGridMaterialComponent,Fe as HomeRecommendGridSchema,qe as HomeRecommendWaterfall,Ve as HomeRecommendWaterfallDefaultData,Ge as HomeRecommendWaterfallMaterialComponent,He as HomeRecommendWaterfallSchema,h as MarqueeClient,g as MarqueeServer,jt as Renderer,b as SearchHistory2Client,x as SearchHistory2Server,I as SearchInputClient,L as SearchInputServer,M as SimpleSearch,A as SimpleSearchDefaultData,j as SimpleSearchSchema,V as TabBarClient,H as TabBarServer,_t as TagSearch,yt as TagSearchBar,ht as TagSearchBarDefaultData,vt as TagSearchBarSchema,mt as TagSearchDefaultData,gt as TagSearchSchema,K as TextRecommendClient,q as TextRecommendServer,Z as VideoHorizontalListClient,Q as VideoHorizontalListServer,ne as basicBannerInspectorDefaultProps,re as basicBannerInspectorPropsSchema,ae as basicBannerMaterial,i as buildContentUrl,Dt as buttonInspectorDefaultProps,Ot as buttonInspectorPropsSchema,u as commonStyleSchema,s as commonStylesToInline,c as customStylesToInline,At as exampleButtonMaterial,xt as extractDataByComponentType,n as getCardSpecConfig,r as getChannelList,Ie as homeRecommendGridInspectorDefaultProps,Le as homeRecommendGridInspectorPropsSchema,ze as homeRecommendGridMaterial,Ue as homeRecommendWaterfallInspectorDefaultProps,We as homeRecommendWaterfallInspectorPropsSchema,Ke as homeRecommendWaterfallMaterial,p as marqueeInspectorDefaultProps,m as marqueeInspectorPropsSchema,_ as marqueeMaterial,l as mergeStyles,v as searchHistoryInspectorDefaultProps,y as searchHistoryInspectorPropsSchema,S as searchHistoryMaterial,C as searchInputInspectorDefaultProps,w as searchInputInspectorPropsSchema,R as searchInputMaterial,z as tabBarInspectorDefaultProps,B as tabBarInspectorPropsSchema,U as tabBarMaterial,W as textRecommendInspectorDefaultProps,G as textRecommendInspectorPropsSchema,J as textRecommendMaterial,d as transformContentListToCardItems,f as transformContentToCardItem,Y as videoHorizontalListInspectorDefaultProps,X as videoHorizontalListInspectorPropsSchema,$ as videoHorizontalListMaterial};
|
package/dist/common.d.mts
CHANGED
|
@@ -8,6 +8,8 @@ import { DebugLocaleSwitcher } from "./components/common/debug-locale-switcher/i
|
|
|
8
8
|
import { DeleteConfirmDialog, DeleteConfirmDialogProps } from "./components/common/delete-confirm-dialog/delete-confirm-dialog.mjs";
|
|
9
9
|
import "./components/common/delete-confirm-dialog/index.mjs";
|
|
10
10
|
import { Empty } from "./components/common/empty/index.mjs";
|
|
11
|
+
import { IntlProvider, IntlProviderProps } from "./components/common/intl-provider/intl-provider.mjs";
|
|
12
|
+
import "./components/common/intl-provider/index.mjs";
|
|
11
13
|
import { FunhubProvider, FunhubProviderProps } from "./components/common/funhub-provider/funhub-provider.mjs";
|
|
12
14
|
import "./components/common/funhub-provider/index.mjs";
|
|
13
15
|
import { HeaderNav } from "./components/common/header-nav/client.mjs";
|
|
@@ -21,7 +23,6 @@ import { RightArrowIcon } from "./components/common/icons/right-arrow.mjs";
|
|
|
21
23
|
import { SettingIcon } from "./components/common/icons/setting.mjs";
|
|
22
24
|
import { ShareIcon } from "./components/common/icons/share.mjs";
|
|
23
25
|
import "./components/common/icons/index.mjs";
|
|
24
|
-
import { IntlProvider, IntlProviderProps } from "./components/common/intl-provider.mjs";
|
|
25
26
|
import { CollectionListItem, CollectionListItemProps, CollectionListMediaItem } from "./components/common/list/collection-list/collection-list-item.mjs";
|
|
26
27
|
import { CollectionList, CollectionListProps } from "./components/common/list/collection-list/collection-list.mjs";
|
|
27
28
|
import "./components/common/list/collection-list/index.mjs";
|
package/dist/common.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{DeleteConfirmDialog as e}from"./components/common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{AppContext as t}from"./components/common/app-context/index.mjs";import{BlockedDialog as n}from"./components/common/blocked-dialog/blocked-dialog.mjs";import{MiniThreeCard as r}from"./components/common/cards/mini-three-card.mjs";import{DebugLocaleSwitcher as i}from"./components/common/debug-locale-switcher/index.mjs";import a from"./components/common/empty/index.mjs";import{
|
|
2
|
+
import{DeleteConfirmDialog as e}from"./components/common/delete-confirm-dialog/delete-confirm-dialog.mjs";import{AppContext as t}from"./components/common/app-context/index.mjs";import{BlockedDialog as n}from"./components/common/blocked-dialog/blocked-dialog.mjs";import{MiniThreeCard as r}from"./components/common/cards/mini-three-card.mjs";import{DebugLocaleSwitcher as i}from"./components/common/debug-locale-switcher/index.mjs";import a from"./components/common/empty/index.mjs";import{IntlProvider as o}from"./components/common/intl-provider/intl-provider.mjs";import{LoginDialog as s}from"./components/common/login-dialog/login-dialog.mjs";import{MediaPreview as c,useMediaPreview as l}from"./components/common/media-preview/index.mjs";import{FunhubProvider as u}from"./components/common/funhub-provider/funhub-provider.mjs";import{LeftArrowIcon as d}from"./components/common/icons/left-arrow.mjs";import{HeaderNav as f}from"./components/common/header-nav/client.mjs";import{AddIcon as p}from"./components/common/icons/add.mjs";import{CommentIcon as m}from"./components/common/icons/comment.mjs";import{DeleteIcon as h}from"./components/common/icons/delete.mjs";import{MoreIcon as g}from"./components/common/icons/more.mjs";import{RightArrowIcon as _}from"./components/common/icons/right-arrow.mjs";import{SettingIcon as v}from"./components/common/icons/setting.mjs";import{ShareIcon as y}from"./components/common/icons/share.mjs";import{CollectionListItem as b}from"./components/common/list/collection-list/collection-list-item.mjs";import{CollectionList as x}from"./components/common/list/collection-list/collection-list.mjs";import{PostListItem as S}from"./components/common/list/post-list/post-list-item.mjs";import{PostList as C}from"./components/common/list/post-list/post-list.mjs";import{UserActivityList as w}from"./components/common/list/user-activity-list/user-activity-list.mjs";import T from"./components/common/share-popup/share-content.mjs";import{ShareDrawer as E}from"./components/common/share-popup/share-drawer.mjs";import{SharePopupComponent as D,defaultActions as O,defaultPlatforms as k}from"./components/common/share-popup/share-popup.mjs";import{UserActivityListItem as A,UserActivityMediaGrid as j}from"./components/common/list/user-activity-list/user-activity-list-item.mjs";import{VideoListItem as M}from"./components/common/list/video-list/video-list-item.mjs";import{VideoList as N}from"./components/common/list/video-list/video-list.mjs";import{LocaleSync as P}from"./components/common/locale-sync/locale-sync.mjs";import{PageSkeleton as F}from"./components/common/page-skeleton/page-skeleton.mjs";import I from"./components/common/video-player/index.mjs";import L from"./components/common/photo-grid/index.mjs";import R from"./components/common/photo-grid/common-photo-grid.mjs";import{closePhotoPreview as z,photoPreview as B}from"./components/common/photo-preview/index.mjs";import{GenderPicker as V}from"./components/common/picker/gender-picker/gender-picker.mjs";import H from"./components/common/popup-video/index.mjs";import{SeriesEpisodes as U}from"./components/common/series-episodes/index.mjs";import{TabBar as W}from"./components/common/tab-bar/index.mjs";import{ThemeSync as G}from"./components/common/theme-sync/index.mjs";import{TopNavBarServer as K}from"./components/common/top-nav-bar/index.mjs";import{WaitLoading as q}from"./components/common/wait-loading.mjs";export{p as AddIcon,t as AppContext,n as BlockedDialog,x as CollectionList,b as CollectionListItem,m as CommentIcon,R as CommonPhotoGrid,I as CommonPlayer,i as DebugLocaleSwitcher,e as DeleteConfirmDialog,h as DeleteIcon,a as Empty,u as FunhubProvider,V as GenderPicker,f as HeaderNav,o as IntlProvider,d as LeftArrowIcon,P as LocaleSync,s as LoginDialog,c as MediaPreview,r as MiniThreeCard,g as MoreIcon,F as PageSkeleton,L as PhotoGrid,H as PopupVideo,C as PostList,S as PostListItem,_ as RightArrowIcon,U as SeriesEpisodes,v as SettingIcon,T as ShareContent,E as ShareDrawer,y as ShareIcon,D as SharePopupComponent,W as TabBar,G as ThemeSync,K as TopNavBarServer,w as UserActivityList,A as UserActivityListItem,j as UserActivityMediaGrid,c as UserActivityMediaPreview,N as VideoList,M as VideoListItem,q as WaitLoading,z as closePhotoPreview,O as defaultActions,k as defaultPlatforms,B as photoPreview,l as useMediaPreview};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{debounceFun as t,getCurrentSecondTime as n,parseTextAtUserIds as r,replaceAtUserElement as i}from"../../../../utils/common.mjs";import{useUserStore as a}from"../../../../store/modules/user-store.mjs";import{gCommunityGetComments as o,pCommunityCreateComment as s,pCommunityDislikeComment as c,pCommunityLikeComment as l}from"../../../../service/generated/client.mjs";import{Box as u}from"../../../ui/box.mjs";import{InfiniteScroll as ee}from"../../../ui/infinite-scroll.mjs";import{Text as d}from"../../../ui/text.mjs";import{isMobileIOS as te}from"../../../../utils/tools.mjs";import{useLoginModalStore as ne}from"../../../../store/modules/login-modal-store.mjs";import{useDeleteRequest as re}from"../../../../hooks/query/use-query.mjs";import{useLikeDislike as ie}from"../../../../hooks/use-like-dislike.mjs";import{useKeepAliveEffect as ae,useKeepAliveState as f}from"../../../common/keep-scroll-position/index.mjs";import{MediaPreview as oe}from"../../../common/media-preview/index.mjs";import{mapApiCommentToComment as p}from"../../../../types/safe-comment.mjs";import se from"../../../../assets/icons/common/solid-arrow.mjs";import ce from"./comment-input.mjs";import{CommentItem as le}from"./comment-item.mjs";import ue from"./reply-detail.mjs";import{memo as m,useCallback as h,useEffect as de,useMemo as g,useRef as fe,useState as pe}from"react";import{Fragment as me,jsx as _,jsxs as v}from"react/jsx-runtime";import{toast as he}from"sonner";import{useTranslations as ge}from"next-intl";const _e=t(e=>{e()},0),ve=t(e=>{e()},10),ye=t(e=>{try{l({comment_id:e.id,is_like:e.like_flag!==`1`},{revalidate:!1})}catch(e){console.error(`点赞评论失败:`,e)}},200),be=t(e=>{try{c({comment_id:e.id,is_dislike:e.like_flag!==`2`},{revalidate:!1})}catch(e){console.error(`点踩评论失败:`,e)}},200);function xe(e){if(e==null)return 0;let t=typeof e==`number`?e:Number(e);if(!Number.isNaN(t)&&t>0)return t>0xe8d4a51000?Math.floor(t/1e3):Math.floor(t);let n=Date.parse(String(e));return Number.isNaN(n)?0:Math.floor(n/1e3)}function y(e,t,n){let r=[];return Array.isArray(n)&&n.length>0?(n.forEach(e=>{let t=!!e?.is_video,n=String(e?.media_url||``),i=String(e?.cover_image||``);!n&&!i||r.push({cover_image:i,cover_image_thumbnail:i,cover_image_radio:1,cover_image_resolution:String(e?.cover_image_resolution||``),image_url:t?``:n,image_thumbnail:t?``:n,image_radio:1,image_resolution:String(e?.image_resolution||``),is_video:t,resolution:String(e?.video_resolution||``),video_duration:Number(e?.video_duration||0),video_url:t?n:``,video_size:Number(e?.video_size||0),video_codec_info:{hls_info:[],video_codec_deal:!1}})}),r):(e?.length&&e.forEach(e=>{r.push({cover_image:``,cover_image_thumbnail:``,cover_image_radio:1,cover_image_resolution:``,image_url:e,image_thumbnail:e,image_radio:1,image_resolution:``,is_video:!1,resolution:``,video_duration:0,video_url:``,video_size:0,video_codec_info:{hls_info:[],video_codec_deal:!1}})}),t?.length&&t.forEach(e=>{r.push({cover_image:``,cover_image_thumbnail:``,cover_image_radio:1,cover_image_resolution:``,image_url:``,image_thumbnail:``,image_radio:1,image_resolution:``,is_video:!0,resolution:``,video_duration:0,video_url:e,video_size:0,video_codec_info:{hls_info:[],video_codec_deal:!1}})}),r)}function Se(e){let t=typeof e.reply_count==`number`?e.reply_count:0,n=Array.isArray(e.sub_comments)?e.sub_comments.length:0,r=t>0?t:n,i=e.is_liked?`1`:e.is_dislike?`2`:`0`,a=b(e.mentioned_users),o=a.length>0?a:Ce(e.content||``),s=String(e.comment_id??e.id??``),c=typeof e.like_count==`number`?e.like_count:0,l=e.is_liked&&c===0?1:c;return p({id:s,reply_cnt:r.toString(),like_cnt:l,dislike_cnt:0,created_at:xe(e.create_time),text:e.content||``,type:`4`,like_flag:i,user_id:e.user_id||``,user_name:e.user?.nickname||e.user?.username||``,avatar:e.user?.avatar_url||``,files:[],at_users:o,nine_grid_content_info:y(e?.images,e?.videos,e?.medias),is_follow:!1})}function b(e){return Array.isArray(e)?e.map(e=>({user_id:e.user_id||``,name:e.nickname||e.username||``,avatar:e.avatar_url||``,birthday:``,signature:e.signature||``})):[]}function Ce(e){if(!e)return[];let t=new Map,n=/<span[^>]*class=['"]mention['"][^>]*data-id=['"]([^'"]+)['"][^>]*>@([^<]*)<\/span>/g,r;for(;(r=n.exec(e))!==null;){let e=r[1]?String(r[1]):``,n=(r[2]?String(r[2]):``).replace(/^@/,``)||e;!e||t.has(e)||t.set(e,{user_id:e,name:n,avatar:``,birthday:``,signature:``})}if(t.size>0)return Array.from(t.values());let i=/<@_user>(\w+)<\/@_user>/g;for(;(r=i.exec(e))!==null;){let e=r[1]?String(r[1]):``;!e||t.has(e)||t.set(e,{user_id:e,name:e,avatar:``,birthday:``,signature:``})}return Array.from(t.values())}function we(e){return!Array.isArray(e)||e.length===0?[]:e.map(e=>{let t=!!e.is_video,n=t?String(e.video_url||``):String(e.image_url||e.cover_image||``),r=String(e.cover_image||e.image_url||``);return{media_url:n,is_video:t,image_resolution:String(e.image_resolution||``),cover_image:r,cover_image_resolution:String(e.cover_image_resolution||``),video_resolution:String(e.resolution||``),video_duration:Number(e.video_duration||0),video_size:Number(e.video_size||0)}}).filter(e=>!!e.media_url)}const x=m(({information:t,listQueryKey:c,contentId:l,contentType:m,isShow:xe=!0,isClickLoad:y=!1,initialComments:b,initialTotal:x,initialHasMore:S,addCommentCount:Te,onCommentAdded:Ee,onRequireLogin:C,onTotalChange:w,onReplyDetailVisibleChange:T,className:De})=>{let{userInfo:E,userId:Oe,isLogin:D}=a(),{open:ke}=ne(),O=ge(`components.biz.business.comment`),Ae=Te??Ee??(()=>{});function je(e){if(!e)return``;if(Array.isArray(e))return String(e[0]||``);if(typeof e==`object`){if(Object.prototype.hasOwnProperty.call(e,`comment_id`))return String(e.comment_id??``);if(Array.isArray(e.data))return String(e.data[0]||``)}return``}let k=h(()=>{C?C():ke()},[C,ke]),A=y?5:20,j=g(()=>b?.length?b.map(Se):[],[b]),M=b!==void 0||typeof x==`number`||typeof S==`boolean`,Me=g(()=>typeof S==`boolean`?S:typeof x==`number`?j.length<x:M?j.length===0?!1:j.length>=A:!0,[M,S,j.length,x,A]),[N,P]=f(`info-detail-comment-list-${l}`,j),[F,I]=f(`info-detail-comment-list-has-more-${l}`,Me),[L,Ne]=f(`info-comment-detail-page-${l}`,j.length>0?2:1),[Pe,R]=f(`info-detail-comment-list-loading-${l}`,!1),[z,B]=f(`info-detail-selected-comment-${l}`,p({id:``,user_id:``})),[V,H]=f(`info-detail-reply-detail-visible-${l}`,!1),[U,W]=pe(!1),G=fe(null),K=h(e=>{typeof window>`u`||window.dispatchEvent(new CustomEvent(`funhub:comment-reply-detail-visible-change`,{detail:{visible:e}}))},[]);de(()=>{K(V),T?.(V)},[K,T,V]),de(()=>()=>{K(!1),T?.(!1)},[K,T]);let q=g(()=>Pe||F&&N.length===0?O(`commentList.loading`):N.length>0&&!F?O(`commentList.noMore`):N.length===0&&!F?O(`commentList.emptyPrompt`):``,[N.length,F,Pe,O]),Fe=g(()=>U?`回复@${z.user_name}`:``,[U,z.user_name]),{getLikedListData:Ie,getDislikedListData:J}=ie(),Le=h(()=>{P(e=>e.map(e=>e.id===z.id?{...e,reply_cnt:(Number(e.reply_cnt||0)+1).toString()}:e)),B(e=>({...e,reply_cnt:(Number(e.reply_cnt||0)+1).toString()}))},[z.id,P,B]),Y=h(async()=>{if(l)try{let e=await o({content_id:l,page:L,page_size:A,sort_by:`latest`});if(e.code!==0)throw Error(e.message||O(`commentList.fetchCommentsFailed`));let t=(e.data?.data?.comments??[]).map(Se),n=e.data?.data?.total??0;L===1&&w&&w(n),((e.data?.data?.has_more??!1)===!1||t.length<A)&&I(!1),P(e=>{let n=new Set(e.map(e=>e.id)),r=t.filter(e=>!n.has(e.id));return[...e,...r]}),Ne(L+1)}catch(e){console.error(`获取评论列表失败:`,e),I(!1)}},[l,L,A,P,I,Ne]),X=h(async()=>{R(!0);try{await Y()}catch(e){console.error(`获取评论列表失败:`,e)}R(!1)},[Y,R]);ae(()=>{y&&!M&&X()},[M,y,X],`info-detail-comment-initial-load-more-${l}`),ae(()=>{!M||!w||typeof x==`number`&&w(x)},[M,x,w],`info-detail-comment-initial-total-${l}`);function Re(){_e(()=>{W(!1)})}async function ze({text:e,imageVideoInfoList:t}){try{if(!D)return k(),{success:!1,message:O(`commentList.loginRequired`)};let a=E?.userId||E?.user_id||Oe||``;if(!a)return k(),{success:!1,message:O(`commentList.loginRequired`)};let o=E?.nick_name||E?.nickname||E?.name||E?.user_name||E?.username||``,c=E?.avatar||E?.avatar_url||``,u=we(t),ee=r(e),d=await s({content_id:l,content:i(e),medias:u,mentioned_users:ee,source_type:m===`video`?1:2},{revalidate:!1});if(d.code===0){let r=je(d.data);if(!r||r===`0`)return{success:!1,message:O(`commentList.publishCommentFailed`)};let i=Ce(e),s=p({text:e,id:r,avatar:c,user_id:a,user_name:o,like_cnt:d.data.like_count,created_at:n(),nine_grid_content_info:t,at_users:i});return P(e=>[s,...e]),{success:!0}}else return{success:!1,message:d.message||O(`commentList.publishCommentFailed`)}}catch(e){return console.error(e),{success:!1,message:O(`commentList.publishCommentFailed`)}}}let Z=h(async({text:e,imageVideoInfoList:t,callback:n})=>{try{if(!D)return k(),{success:!1,message:O(`commentList.loginRequired`)};if(!z?.id||z.id===`0`)return{success:!1,message:O(`commentList.invalidReplyTarget`)};let a=we(t),o=r(e),c=await s({content_id:l,content:i(e),medias:a,mentioned_users:o,parent_id:z.id,source_type:m===`video`?1:2},{revalidate:!1});if(c.code!==0)return{success:!1,message:c.message||O(`commentList.publishReplyFailed`)};P(e=>e.map(e=>e.id===z.id?{...e,reply_cnt:(Number(e.reply_cnt)+1).toString()}:e));let u=je(c.data);return!u||u===`0`?{success:!1,message:O(`commentList.publishReplyFailed`)}:(n?.(u),{success:!0})}catch(e){return console.error(`发布回复评论失败:`,e),{success:!1,message:O(`commentList.publishReplyFailed`)}}},[l,m,D,k,z.id,P,O]);async function Be({text:e,imageVideoInfoList:t}){let n=e=>e.success?e:(he.error(e.message||O(`commentList.publishCommentFailed`)),{...e,toastHandled:!0});if(U){let r=await Z({text:e,imageVideoInfoList:t,callback:e=>{}});return W(!1),n(r)}else{let r=await ze({text:e,imageVideoInfoList:t});return r.success&&Ae(),W(!1),n(r)}}let Q=h(e=>{B(e),te()&&G.current?.focus(),ve(()=>{W(!0),G.current?.focus()})},[B]),$=h(e=>{B(e),H(!0)},[H,B]),Ve=h(e=>{if(e.reply_cnt===`0`){Q(e);return}$(e)},[Q,$]),He=h(e=>{if(!D){C?.();return}P(Ie(N,e.id)),ye(e)},[N,Ie,D,C,P]),Ue=h(e=>{if(!D){C?.();return}e.like_flag!==`2`&&he.message(O(`commentList.dislikeHint`)),P(J(N,e.id)),be(e)},[N,J,D,C,P,O]),We=re();function Ge(){c&&We(c),H(!1)}return v(me,{children:[v(u,{className:e(`w-full pb-[60px]`,De),children:[N.map((e,t)=>_(le,{comment:e,onReply:Q,onViewReplies:$,onReplyAction:Ve,onLike:He,onDislike:Ue,isLogin:D,onRequireLogin:k},`${e.id}-${t}-comment`)),xe&&_(ee,{loadMore:async()=>{await Y()},hasMore:F,initialLoad:!y&&N.length===0&&F!==!1}),y&&v(u,{className:`w-full my-[8px]`,children:[!q&&v(u,{className:`w-[fit-content] h-[42px] flex items-center justify-center mx-[auto]`,onClick:()=>{X()},children:[_(d,{className:`text-text3 text-[14px]`,children:O(`commentList.viewMore`)}),_(se,{className:`w-[8px] h-[auto] ml-[4px] text-text3`})]}),q&&_(u,{className:`w-full h-[42px] flex items-center justify-center`,children:_(d,{className:`text-text3 text-[12px]`,children:q})})]}),_(ce,{placeholder:Fe,onPublish:({text:e,imageVideoInfoList:t})=>Be({text:e,imageVideoInfoList:t}),onInputBlur:Re,onRequireLogin:k,ref:G})]}),_(ue,{visible:V,comment:z,information:t,contentType:m,onClose:Ge,onReplyComment:Z,onReplyAdded:Le,onRequireLogin:k},z.id),_(oe,{})]})});export{x as default};
|
|
2
|
+
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{debounceFun as t,getCurrentSecondTime as n,parseTextAtUserIds as r,replaceAtUserElement as i}from"../../../../utils/common.mjs";import{useUserStore as a}from"../../../../store/modules/user-store.mjs";import{gCommunityGetComments as o,pCommunityCreateComment as s,pCommunityDislikeComment as c,pCommunityLikeComment as l}from"../../../../service/generated/client.mjs";import{Box as u}from"../../../ui/box.mjs";import{InfiniteScroll as ee}from"../../../ui/infinite-scroll.mjs";import{Text as d}from"../../../ui/text.mjs";import{useDeleteRequest as te}from"../../../../hooks/query/use-query.mjs";import{useLoginModalStore as ne}from"../../../../store/modules/login-modal-store.mjs";import{useLikeDislike as re}from"../../../../hooks/use-like-dislike.mjs";import{useKeepAliveEffect as ie,useKeepAliveState as f}from"../../../common/keep-scroll-position/index.mjs";import{isMobileIOS as ae}from"../../../../utils/tools.mjs";import{MediaPreview as oe}from"../../../common/media-preview/index.mjs";import{mapApiCommentToComment as p}from"../../../../types/safe-comment.mjs";import se from"../../../../assets/icons/common/solid-arrow.mjs";import ce from"./comment-input.mjs";import{CommentItem as le}from"./comment-item.mjs";import ue from"./reply-detail.mjs";import{memo as m,useCallback as h,useEffect as de,useMemo as g,useRef as fe,useState as pe}from"react";import{Fragment as me,jsx as _,jsxs as v}from"react/jsx-runtime";import{toast as he}from"sonner";import{useTranslations as ge}from"next-intl";const _e=t(e=>{e()},0),ve=t(e=>{e()},10),ye=t(e=>{try{l({comment_id:e.id,is_like:e.like_flag!==`1`},{revalidate:!1})}catch(e){console.error(`点赞评论失败:`,e)}},200),be=t(e=>{try{c({comment_id:e.id,is_dislike:e.like_flag!==`2`},{revalidate:!1})}catch(e){console.error(`点踩评论失败:`,e)}},200);function xe(e){if(e==null)return 0;let t=typeof e==`number`?e:Number(e);if(!Number.isNaN(t)&&t>0)return t>0xe8d4a51000?Math.floor(t/1e3):Math.floor(t);let n=Date.parse(String(e));return Number.isNaN(n)?0:Math.floor(n/1e3)}function y(e,t,n){let r=[];return Array.isArray(n)&&n.length>0?(n.forEach(e=>{let t=!!e?.is_video,n=String(e?.media_url||``),i=String(e?.cover_image||``);!n&&!i||r.push({cover_image:i,cover_image_thumbnail:i,cover_image_radio:1,cover_image_resolution:String(e?.cover_image_resolution||``),image_url:t?``:n,image_thumbnail:t?``:n,image_radio:1,image_resolution:String(e?.image_resolution||``),is_video:t,resolution:String(e?.video_resolution||``),video_duration:Number(e?.video_duration||0),video_url:t?n:``,video_size:Number(e?.video_size||0),video_codec_info:{hls_info:[],video_codec_deal:!1}})}),r):(e?.length&&e.forEach(e=>{r.push({cover_image:``,cover_image_thumbnail:``,cover_image_radio:1,cover_image_resolution:``,image_url:e,image_thumbnail:e,image_radio:1,image_resolution:``,is_video:!1,resolution:``,video_duration:0,video_url:``,video_size:0,video_codec_info:{hls_info:[],video_codec_deal:!1}})}),t?.length&&t.forEach(e=>{r.push({cover_image:``,cover_image_thumbnail:``,cover_image_radio:1,cover_image_resolution:``,image_url:``,image_thumbnail:``,image_radio:1,image_resolution:``,is_video:!0,resolution:``,video_duration:0,video_url:e,video_size:0,video_codec_info:{hls_info:[],video_codec_deal:!1}})}),r)}function Se(e){let t=typeof e.reply_count==`number`?e.reply_count:0,n=Array.isArray(e.sub_comments)?e.sub_comments.length:0,r=t>0?t:n,i=e.is_liked?`1`:e.is_dislike?`2`:`0`,a=b(e.mentioned_users),o=a.length>0?a:Ce(e.content||``),s=String(e.comment_id??e.id??``),c=typeof e.like_count==`number`?e.like_count:0,l=e.is_liked&&c===0?1:c;return p({id:s,reply_cnt:r.toString(),like_cnt:l,dislike_cnt:0,created_at:xe(e.create_time),text:e.content||``,type:`4`,like_flag:i,user_id:e.user_id||``,user_name:e.user?.nickname||e.user?.username||``,avatar:e.user?.avatar_url||``,files:[],at_users:o,nine_grid_content_info:y(e?.images,e?.videos,e?.medias),is_follow:!1})}function b(e){return Array.isArray(e)?e.map(e=>({user_id:e.user_id||``,name:e.nickname||e.username||``,avatar:e.avatar_url||``,birthday:``,signature:e.signature||``})):[]}function Ce(e){if(!e)return[];let t=new Map,n=/<span[^>]*class=['"]mention['"][^>]*data-id=['"]([^'"]+)['"][^>]*>@([^<]*)<\/span>/g,r;for(;(r=n.exec(e))!==null;){let e=r[1]?String(r[1]):``,n=(r[2]?String(r[2]):``).replace(/^@/,``)||e;!e||t.has(e)||t.set(e,{user_id:e,name:n,avatar:``,birthday:``,signature:``})}if(t.size>0)return Array.from(t.values());let i=/<@_user>(\w+)<\/@_user>/g;for(;(r=i.exec(e))!==null;){let e=r[1]?String(r[1]):``;!e||t.has(e)||t.set(e,{user_id:e,name:e,avatar:``,birthday:``,signature:``})}return Array.from(t.values())}function we(e){return!Array.isArray(e)||e.length===0?[]:e.map(e=>{let t=!!e.is_video,n=t?String(e.video_url||``):String(e.image_url||e.cover_image||``),r=String(e.cover_image||e.image_url||``);return{media_url:n,is_video:t,image_resolution:String(e.image_resolution||``),cover_image:r,cover_image_resolution:String(e.cover_image_resolution||``),video_resolution:String(e.resolution||``),video_duration:Number(e.video_duration||0),video_size:Number(e.video_size||0)}}).filter(e=>!!e.media_url)}const x=m(({information:t,listQueryKey:c,contentId:l,contentType:m,isShow:xe=!0,isClickLoad:y=!1,initialComments:b,initialTotal:x,initialHasMore:S,addCommentCount:Te,onCommentAdded:Ee,onRequireLogin:C,onTotalChange:w,onReplyDetailVisibleChange:T,className:De})=>{let{userInfo:E,userId:Oe,isLogin:D}=a(),{open:ke}=ne(),O=ge(`components.biz.business.comment`),Ae=Te??Ee??(()=>{});function je(e){if(!e)return``;if(Array.isArray(e))return String(e[0]||``);if(typeof e==`object`){if(Object.prototype.hasOwnProperty.call(e,`comment_id`))return String(e.comment_id??``);if(Array.isArray(e.data))return String(e.data[0]||``)}return``}let k=h(()=>{C?C():ke()},[C,ke]),A=y?5:20,j=g(()=>b?.length?b.map(Se):[],[b]),M=b!==void 0||typeof x==`number`||typeof S==`boolean`,Me=g(()=>typeof S==`boolean`?S:typeof x==`number`?j.length<x:M?j.length===0?!1:j.length>=A:!0,[M,S,j.length,x,A]),[N,P]=f(`info-detail-comment-list-${l}`,j),[F,I]=f(`info-detail-comment-list-has-more-${l}`,Me),[L,Ne]=f(`info-comment-detail-page-${l}`,j.length>0?2:1),[Pe,R]=f(`info-detail-comment-list-loading-${l}`,!1),[z,B]=f(`info-detail-selected-comment-${l}`,p({id:``,user_id:``})),[V,H]=f(`info-detail-reply-detail-visible-${l}`,!1),[U,W]=pe(!1),G=fe(null),K=h(e=>{typeof window>`u`||window.dispatchEvent(new CustomEvent(`funhub:comment-reply-detail-visible-change`,{detail:{visible:e}}))},[]);de(()=>{K(V),T?.(V)},[K,T,V]),de(()=>()=>{K(!1),T?.(!1)},[K,T]);let q=g(()=>Pe||F&&N.length===0?O(`commentList.loading`):N.length>0&&!F?O(`commentList.noMore`):N.length===0&&!F?O(`commentList.emptyPrompt`):``,[N.length,F,Pe,O]),Fe=g(()=>U?`回复@${z.user_name}`:``,[U,z.user_name]),{getLikedListData:Ie,getDislikedListData:J}=re(),Le=h(()=>{P(e=>e.map(e=>e.id===z.id?{...e,reply_cnt:(Number(e.reply_cnt||0)+1).toString()}:e)),B(e=>({...e,reply_cnt:(Number(e.reply_cnt||0)+1).toString()}))},[z.id,P,B]),Y=h(async()=>{if(l)try{let e=await o({content_id:l,page:L,page_size:A,sort_by:`latest`});if(e.code!==0)throw Error(e.message||O(`commentList.fetchCommentsFailed`));let t=(e.data?.data?.comments??[]).map(Se),n=e.data?.data?.total??0;L===1&&w&&w(n),((e.data?.data?.has_more??!1)===!1||t.length<A)&&I(!1),P(e=>{let n=new Set(e.map(e=>e.id)),r=t.filter(e=>!n.has(e.id));return[...e,...r]}),Ne(L+1)}catch(e){console.error(`获取评论列表失败:`,e),I(!1)}},[l,L,A,P,I,Ne]),X=h(async()=>{R(!0);try{await Y()}catch(e){console.error(`获取评论列表失败:`,e)}R(!1)},[Y,R]);ie(()=>{y&&!M&&X()},[M,y,X],`info-detail-comment-initial-load-more-${l}`),ie(()=>{!M||!w||typeof x==`number`&&w(x)},[M,x,w],`info-detail-comment-initial-total-${l}`);function Re(){_e(()=>{W(!1)})}async function ze({text:e,imageVideoInfoList:t}){try{if(!D)return k(),{success:!1,message:O(`commentList.loginRequired`)};let a=E?.userId||E?.user_id||Oe||``;if(!a)return k(),{success:!1,message:O(`commentList.loginRequired`)};let o=E?.nick_name||E?.nickname||E?.name||E?.user_name||E?.username||``,c=E?.avatar||E?.avatar_url||``,u=we(t),ee=r(e),d=await s({content_id:l,content:i(e),medias:u,mentioned_users:ee,source_type:m===`video`?1:2},{revalidate:!1});if(d.code===0){let r=je(d.data);if(!r||r===`0`)return{success:!1,message:O(`commentList.publishCommentFailed`)};let i=Ce(e),s=p({text:e,id:r,avatar:c,user_id:a,user_name:o,like_cnt:d.data.like_count,created_at:n(),nine_grid_content_info:t,at_users:i});return P(e=>[s,...e]),{success:!0}}else return{success:!1,message:d.message||O(`commentList.publishCommentFailed`)}}catch(e){return console.error(e),{success:!1,message:O(`commentList.publishCommentFailed`)}}}let Z=h(async({text:e,imageVideoInfoList:t,callback:n})=>{try{if(!D)return k(),{success:!1,message:O(`commentList.loginRequired`)};if(!z?.id||z.id===`0`)return{success:!1,message:O(`commentList.invalidReplyTarget`)};let a=we(t),o=r(e),c=await s({content_id:l,content:i(e),medias:a,mentioned_users:o,parent_id:z.id,source_type:m===`video`?1:2},{revalidate:!1});if(c.code!==0)return{success:!1,message:c.message||O(`commentList.publishReplyFailed`)};P(e=>e.map(e=>e.id===z.id?{...e,reply_cnt:(Number(e.reply_cnt)+1).toString()}:e));let u=je(c.data);return!u||u===`0`?{success:!1,message:O(`commentList.publishReplyFailed`)}:(n?.(u),{success:!0})}catch(e){return console.error(`发布回复评论失败:`,e),{success:!1,message:O(`commentList.publishReplyFailed`)}}},[l,m,D,k,z.id,P,O]);async function Be({text:e,imageVideoInfoList:t}){let n=e=>e.success?e:(he.error(e.message||O(`commentList.publishCommentFailed`)),{...e,toastHandled:!0});if(U){let r=await Z({text:e,imageVideoInfoList:t,callback:e=>{}});return W(!1),n(r)}else{let r=await ze({text:e,imageVideoInfoList:t});return r.success&&Ae(),W(!1),n(r)}}let Q=h(e=>{B(e),ae()&&G.current?.focus(),ve(()=>{W(!0),G.current?.focus()})},[B]),$=h(e=>{B(e),H(!0)},[H,B]),Ve=h(e=>{if(e.reply_cnt===`0`){Q(e);return}$(e)},[Q,$]),He=h(e=>{if(!D){C?.();return}P(Ie(N,e.id)),ye(e)},[N,Ie,D,C,P]),Ue=h(e=>{if(!D){C?.();return}e.like_flag!==`2`&&he.message(O(`commentList.dislikeHint`)),P(J(N,e.id)),be(e)},[N,J,D,C,P,O]),We=te();function Ge(){c&&We(c),H(!1)}return v(me,{children:[v(u,{className:e(`w-full pb-[60px]`,De),children:[N.map((e,t)=>_(le,{comment:e,onReply:Q,onViewReplies:$,onReplyAction:Ve,onLike:He,onDislike:Ue,isLogin:D,onRequireLogin:k},`${e.id}-${t}-comment`)),xe&&_(ee,{loadMore:async()=>{await Y()},hasMore:F,initialLoad:!y&&N.length===0&&F!==!1}),y&&v(u,{className:`w-full my-[8px]`,children:[!q&&v(u,{className:`w-[fit-content] h-[42px] flex items-center justify-center mx-[auto]`,onClick:()=>{X()},children:[_(d,{className:`text-text3 text-[14px]`,children:O(`commentList.viewMore`)}),_(se,{className:`w-[8px] h-[auto] ml-[4px] text-text3`})]}),q&&_(u,{className:`w-full h-[42px] flex items-center justify-center`,children:_(d,{className:`text-text3 text-[12px]`,children:q})})]}),_(ce,{placeholder:Fe,onPublish:({text:e,imageVideoInfoList:t})=>Be({text:e,imageVideoInfoList:t}),onInputBlur:Re,onRequireLogin:k,ref:G})]}),_(ue,{visible:V,comment:z,information:t,contentType:m,onClose:Ge,onReplyComment:Z,onReplyAdded:Le,onRequireLogin:k},z.id),_(oe,{})]})});export{x as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{debounceFun as t,getCurrentSecondTime as n,parseTextAtUserIds as r,replaceAtUserElement as i}from"../../../../utils/common.mjs";import{useFollowIdsState as a}from"../../../../store/modules/follow-ids-store.mjs";import{useUserStore as o}from"../../../../store/modules/user-store.mjs";import{gCommunityGetComments as s,pCommunityCreateComment as c,pCommunityDislikeComment as l,pCommunityLikeComment as u,pInteractionFollow as d,pInteractionUnfollow as f}from"../../../../service/generated/client.mjs";import{checkFollowStatus as p}from"../../../../utils/follow-service.mjs";import{Image as m}from"../../../ui/image.mjs";import{Dialog as h,DialogContent as g}from"../../../ui/dialog.mjs";import{InfiniteScroll as _}from"../../../ui/infinite-scroll.mjs";import v from"../../../../assets/icons/close.mjs";import{useLikeDislike as y}from"../../../../hooks/use-like-dislike.mjs";import{useKeepAliveState as b}from"../../../common/keep-scroll-position/index.mjs";import x from"../../../../assets/icons/common/follow_sel.mjs";import S from"../../../../assets/icons/common/follow_user.mjs";import{UnfollowConfirmDialog as C}from"../../../common/follow-button/unfollow-confirm-dialog.mjs";import w from"../../../../assets/icons/detail/give_like.mjs";import T from"../../../../assets/icons/detail/give_like_sel.mjs";import E from"./comment-input.mjs";import D from"../../../../assets/icons/detail/un_like.mjs";import O from"../../../../assets/icons/detail/un_like_sel.mjs";import{CommentMedia as k}from"./comment-media.mjs";import{CommentRichText as A}from"./comment-rich-text.mjs";import{TimeDisplay as j}from"./time-display.mjs";import{CommentItem as M}from"./comment-item.mjs";import{mapApiReplayToReplay as N}from"../../../../types/safe-replay.mjs";import{useRouter as P}from"next/navigation";import{memo as F,useCallback as I,useEffect as L,useMemo as R,useRef as z,useState as B}from"react";import{Fragment as V,jsx as H,jsxs as U}from"react/jsx-runtime";import{toast as W}from"sonner";import{useTranslations as G}from"next-intl";function K(e){if(e==null)return 0;let t=typeof e==`number`?e:Number(e);if(!Number.isNaN(t)&&t>0)return t>0xe8d4a51000?Math.floor(t/1e3):Math.floor(t);let n=Date.parse(String(e));return Number.isNaN(n)?0:Math.floor(n/1e3)}function q(e,t,n){let r=[];return Array.isArray(n)&&n.length>0?(n.forEach(e=>{let t=!!e?.is_video,n=String(e?.media_url||``),i=String(e?.cover_image||``);!n&&!i||r.push({cover_image:i,cover_image_thumbnail:i,cover_image_radio:1,cover_image_resolution:String(e?.cover_image_resolution||``),image_url:t?``:n,image_thumbnail:t?``:n,image_radio:1,image_resolution:String(e?.image_resolution||``),is_video:t,resolution:String(e?.video_resolution||``),video_duration:Number(e?.video_duration||0),video_url:t?n:``,video_size:Number(e?.video_size||0),video_codec_info:{hls_info:[],video_codec_deal:!1}})}),r):(e?.length&&e.forEach(e=>{r.push({cover_image:``,cover_image_thumbnail:``,cover_image_radio:1,cover_image_resolution:``,image_url:e,image_thumbnail:e,image_radio:1,image_resolution:``,is_video:!1,resolution:``,video_duration:0,video_url:``,video_size:0,video_codec_info:{hls_info:[],video_codec_deal:!1}})}),t?.length&&t.forEach(e=>{r.push({cover_image:``,cover_image_thumbnail:``,cover_image_radio:1,cover_image_resolution:``,image_url:``,image_thumbnail:``,image_radio:1,image_resolution:``,is_video:!0,resolution:``,video_duration:0,video_url:e,video_size:0,video_codec_info:{hls_info:[],video_codec_deal:!1}})}),r)}function J(e){let t=X(e.mentioned_users),n=t.length>0?t:Z(e.content||``);return{id:String(e.comment_id??e.id??``),user_name:e.user?.nickname||e.user?.username||``,text:e.content||``,type:`4`,files:[],at_users:n,cover_image:``,nine_grid_content_info:q(e?.images,e?.videos,e?.medias)}}function Y(e,t){let n=e.is_liked?`1`:e.is_dislike?`2`:`0`,r=X(e.mentioned_users),i=r.length>0?r:Z(e.content||``),a=String(e.comment_id??e.id??``),o=typeof e.like_count==`number`?e.like_count:0,s=N({id:a,like_cnt:(e.is_liked&&o===0?1:o).toString(),dislike_cnt:(e.dislike_count||0).toString(),created_at:K(e.create_time),text:e.content||``,type:`4`,like_flag:n,user_id:e.user_id||``,user_name:e.user?.nickname||e.user?.username||``,avatar:e.user?.avatar_url||``,reply_cnt:(e.reply_count||0).toString(),nine_grid_content_info:q(e?.images,e?.videos,e?.medias),at_users:i,parent_reply:void 0});return t&&(s.parent_reply=J(t)),s}function X(e){return Array.isArray(e)?e.map(e=>({user_id:e.user_id||``,name:e.nickname||e.username||``,avatar:e.avatar_url||``,birthday:``,signature:e.signature||``})):[]}function Z(e){if(!e)return[];let t=new Map,n=/<span[^>]*class=['"]mention['"][^>]*data-id=['"]([^'"]+)['"][^>]*>@([^<]*)<\/span>/g,r;for(;(r=n.exec(e))!==null;){let e=r[1]?String(r[1]):``,n=(r[2]?String(r[2]):``).replace(/^@/,``)||e;!e||t.has(e)||t.set(e,{user_id:e,name:n,avatar:``,birthday:``,signature:``})}if(t.size>0)return Array.from(t.values());let i=/<@_user>(\w+)<\/@_user>/g;for(;(r=i.exec(e))!==null;){let e=r[1]?String(r[1]):``;!e||t.has(e)||t.set(e,{user_id:e,name:e,avatar:``,birthday:``,signature:``})}return Array.from(t.values())}function ee(e){return!Array.isArray(e)||e.length===0?[]:e.map(e=>{let t=!!e.is_video,n=t?String(e.video_url||``):String(e.image_url||e.cover_image||``),r=String(e.cover_image||e.image_url||``);return{media_url:n,is_video:t,image_resolution:String(e.image_resolution||``),cover_image:r,cover_image_resolution:String(e.cover_image_resolution||``),video_resolution:String(e.resolution||``),video_duration:Number(e.video_duration||0),video_size:Number(e.video_size||0)}}).filter(e=>!!e.media_url)}function Q(e,t){let n=[];return e.forEach(e=>{n.push(Y(e,t)),e.sub_comments?.length&&n.push(...Q(e.sub_comments,e))}),n}function $(e){let t=Number(e)||0;return t>=1e4?`${(t/1e4).toFixed(1)}w`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}const te=t((e,t,n)=>{try{if(!e?.id)return;u({comment_id:e.id,is_like:e.like_flag!==`1`},{revalidate:!1})}catch(e){console.error(`点赞回复失败:`,e)}},200),ne=t((e,t,n)=>{try{if(!e?.id)return;l({comment_id:e.id,is_dislike:e.like_flag!==`2`},{revalidate:!1})}catch(e){console.error(`点踩回复失败:`,e)}},200),re=F(({comment:e,updateFollow:t,onRequireLogin:n})=>{let{userInfo:r,userId:i,isLogin:a}=o(),s=r?.userId||r?.user_id||i||``;return H(`div`,{className:`w-full bg-bg1`,children:H(M,{comment:e,variant:`light`,isLogin:a,onRequireLogin:n,rightSlot:R(()=>!!s&&String(s)===String(e.user_id||``),[e.user_id,s])?H(V,{}):H(ie,{userId:e.user_id,hasFollow:e.is_follow,onChange:t,onRequireLogin:n}),showReplyButton:!1})})});function ie({userId:t,hasFollow:n=!1,onChange:r,onRequireLogin:i}){let s=G(`components.biz.business.comment`),{isLogin:c,userInfo:l,userId:u}=o(),{followIds:p}=a(),[m,h]=B(n),[g,_]=B(!1),v=l?.userId||l?.user_id||u||``,y=R(()=>!!v&&String(v)===String(t||``),[t,v]),b=R(()=>n||p.includes(t),[p,n,t]);L(()=>{h(b)},[b]);let w=I(async()=>{try{if(!v||!t||t===`0`){W.error(s(`replyDetail.loginRequired`));return}if(m){let e=await f({follower_id:String(v),followee_id:t});if(e.code!==0){W.error(e.message||s(`replyDetail.unfollowFailed`));return}}else{let e=await d({follower_id:String(v),followee_id:t});if(e.code!==0){W.error(e.message||s(`replyDetail.followFailed`));return}}window.sensors?.track(`detail_follow_click`,{object_id:``,action:m?`取消关注`:`关注`,author_id:t}),sessionStorage.setItem(`user_page_refresh`,`1`)}catch(e){console.error(`关注或取消关注失败:`,e),W.error(s(m?`replyDetail.unfollowFailed`:`replyDetail.followFailed`));return}let e=!m;r?.(e),h(e);let{followIds:n,setFollowIds:i}=a.getState(),o=new Set(n);e?o.add(t):o.delete(t),i(Array.from(o))},[t,m,r,v,s]),T=I(()=>{if(!c){i?.();return}if(m){_(!0);return}w()},[w,m,c,i]);function E(){_(!1),w()}function D(){_(!1)}return y||!t||t===`0`?null:U(V,{children:[H(`div`,{className:e(`h-[28px] rounded-[14px] px-[8px] border border-solid cursor-pointer flex items-center justify-center`,m?`border-text3`:`border-theme5`),onClick:T,children:m?U(V,{children:[H(x,{className:`w-[12px] h-[12px] text-text3 shrink-0`}),H(`span`,{className:`text-text3 text-[12px] leading-[18px] ml-[4px] shrink-0`,children:s(`replyDetail.followed`)})]}):U(V,{children:[H(S,{className:`block w-[12px] h-[12px] text-theme5 shrink-0`}),H(`span`,{className:`block text-theme5 text-[12px] leading-[18px] ml-[4px] shrink-0`,children:s(`replyDetail.follow`)})]})}),H(C,{open:g,onOpenChange:_,onCancel:D,onConfirm:E})]})}const ae=t(e=>{e()},0);function oe(e,t,n,r){let i=z(!1);L(()=>{i.current=!1},[r]),L(()=>{let r=e.current;if(!r)return;!i.current&&t>0&&(r.scrollTop=t,i.current=!0);let a=()=>{i.current=!0,n(r.scrollTop)};return r.addEventListener(`scroll`,a,{passive:!0}),()=>r.removeEventListener(`scroll`,a)},[e,n,t,r])}const se=F(({commentId:e,informationId:t,handleReplyComment:n,onReplyListUpdate:r})=>{let i=G(`components.biz.business.comment`),[a,o]=b(`replay-detail-list-${e}`,[]),[c,l]=b(`replay-detail-has-more-${e}`,!0),[u,d]=b(`replay-detail-page-${e}`,1),{getLikedListData:f,getDislikedListData:p}=y(),m=z(!1),h=I(async()=>{if(!(!e||!t)&&!m.current){m.current=!0;try{let n=await s({content_id:t,parent_id:e,page:u,page_size:20,sort_by:`latest`});if(n.code!==0)throw Error(n.message||i(`replyDetail.fetchRepliesFailed`));let r=n.data?.data?.comments??[],a=Q(r);((n.data?.data?.has_more??!1)===!1||r.length<20)&&l(!1),o(e=>{let t=new Set(e.map(e=>e.id)),n=a.filter(e=>!t.has(e.id));return[...e,...n]}),a.length>0&&d(u+1)}catch(e){console.error(`获取回复列表失败:`,e),l(!1)}finally{m.current=!1}}},[e,t,u,o,l,d,i]),g=I(e=>{o(t=>[e,...t])},[o]);L(()=>{r(g)},[r,g]),L(()=>{e&&t&&(o(e=>e.length===0?e:[]),l(e=>e===!0?e:!0),d(e=>e===1?e:1))},[e,t,o,l,d]);let v=I(n=>{o(e=>f(e,n.id)),te(n,t,e)},[e,f,t,o]),x=I(n=>{n.like_flag!==`2`&&W.message(i(`replyDetail.dislikeHint`)),o(e=>p(e,n.id)),ne(n,t,e)},[e,p,t,o,i]),[S,C]=b(`replay-detail-scroll-top-${e}`,0),w=z(null);oe(w,S,C,e),L(()=>{!e||!t||a.length===0&&c&&h()},[e,t,h,a.length,c]);let T=I(async()=>{await h()},[h]);return U(`div`,{ref:w,className:`w-full pb-[66px]`,children:[a.map((e,t)=>H(ce,{replyItem:e,replyComment:n,onLikeReply:v,onDislikeReply:x},`${e.id}-${t}`)),H(_,{loadMore:T,hasMore:c})]})});function ce({replyItem:e,replyComment:t,onLikeReply:n,onDislikeReply:r}){let i=G(`components.biz.business.comment`),a=P(),o=e.status===`0`;function s(){n?.(e)}function c(){r?.(e)}function l(){t(e)}return U(`div`,{className:`p-[16px] flex flex-col`,children:[U(`div`,{className:`flex flex-row justify-between`,children:[U(`button`,{type:`button`,className:`flex flex-row items-center text-left`,onClick:()=>{a.push(`/profile/${e.user_id}`)},children:[H(`div`,{className:`w-[38px] h-[38px] rounded-full overflow-hidden relative bg-bg2`,children:e.avatar&&H(m,{src:e.avatar,fill:!0,objectFit:`cover`,alt:`avatar`})}),U(`div`,{className:`ml-[12px] flex flex-col`,children:[H(`span`,{className:`text-text2 text-[14px] leading-[14px] max-w-[180px] text-ellipsis overflow-hidden whitespace-nowrap`,children:e.user_name}),H(`span`,{className:`mt-[8px] text-text3 text-[12px] leading-[12px]`,children:H(j,{timestamp:e.created_at})})]})]}),o?H(`div`,{className:`px-[8px] py-[4px] bg-text3/10 rounded-[12px]`,children:H(`span`,{className:`text-text3 text-[12px] leading-[12px]`,children:i(`replyDetail.underReview`)})}):U(`div`,{className:`flex flex-row items-center`,children:[U(`div`,{className:`px-[4px] flex flex-col items-center`,onClick:s,children:[e.like_flag===`1`?H(T,{className:`w-[14px] h-[14px]`}):H(w,{className:`w-[14px] h-[14px] text-text3`}),H(`span`,{className:`mt-[4px] text-text3 text-[12px] leading-[12px]`,children:e.like_cnt===`0`?i(`replyDetail.like`):$(e.like_cnt)})]}),U(`div`,{className:`ml-[12px] px-[4px] flex flex-col items-center`,onClick:c,children:[e.like_flag===`2`?H(O,{className:`w-[14px] h-[14px]`}):H(D,{className:`w-[14px] h-[14px] text-text3`}),H(`span`,{className:`mt-[4px] text-text3 text-[12px] leading-[12px]`,children:e.dislike_cnt===`0`?i(`replyDetail.dislike`):$(e.dislike_cnt)})]})]})]}),U(`div`,{className:`mt-[4px] pl-[50px] flex flex-col`,children:[e.text&&H(A,{className:`text-text1 text-[14px] leading-[22px] break-all`,text:e.text,atUsers:e.at_users}),H(k,{list:e.nine_grid_content_info,disabled:o,hasText:!!e.text,playerId:e.id}),e.parent_reply&&e.parent_reply.text&&U(V,{children:[U(`div`,{className:`mt-[4px] flex flex-row items-center text-[14px] leading-[22px] relative pl-[8px]`,children:[H(`div`,{className:`w-[2px] h-full bg-line1 mr-[8px] absolute left-0 top-0 bottom-0 m-auto`}),U(`span`,{className:`text-theme1`,children:[e.parent_reply.user_name,`:`,e.parent_reply.text&&H(`span`,{className:`text-text1`,children:H(A,{text:e.parent_reply.text,atUsers:e.parent_reply.at_users})})]})]}),H(`div`,{className:`mt-1`,children:H(k,{list:e.parent_reply.nine_grid_content_info,disabled:o,hasText:!!e.parent_reply.text,playerId:e.parent_reply.id})})]}),H(`div`,{className:`mt-[4px] w-[fit-content] h-[30px] px-[12px] text-text1 text-[14px] leading-[22px] flex flex-row items-center bg-bg1 rounded-[15px]`,onClick:l,children:H(`span`,{children:i(`replyDetail.reply`)})})]})]})}function le({comment:e,information:t,contentType:s,visible:l,onClose:u,onReplyComment:d,onReplyAdded:f,onRequireLogin:m}){let _=G(`components.biz.business.comment`),y=z(null),[b,x]=B(()=>N({})),[S,C]=B(!1),{userInfo:w,userId:T}=o(),{followIds:D,setFollowIds:O}=a(),k=w?.userId||w?.user_id||T||``,A=w?.name||w?.nick_name||w?.nickname||w?.user_name||``,j=w?.avatar||w?.avatar_url||``,M=z({commentId:``,userId:``});function P(e){if(!e)return``;if(Array.isArray(e))return String(e[0]||``);if(typeof e==`object`){if(Object.prototype.hasOwnProperty.call(e,`comment_id`))return String(e.comment_id??``);if(Array.isArray(e.data))return String(e.data[0]||``)}return``}L(()=>{l&&(!k||!e.user_id||e.user_id!==`0`&&String(k)!==String(e.user_id)&&(M.current.commentId===e.id&&M.current.userId===k||(M.current={commentId:e.id,userId:k},(async()=>{let t=await p({app_id:0,follower_id:k,followee_ids:[e.user_id]});if(!t.success||!t.data?.is_following_map)return;let n=!!t.data.is_following_map[e.user_id];e.is_follow=n;let r=new Set(D);n?r.add(e.user_id):r.delete(e.user_id),O(Array.from(r))})())))},[e,D,k,O,l]);let F=I(e=>{x(e),setTimeout(()=>{C(!0),y.current?.focus()},10)},[]);function R(){ae(()=>{C(!1)})}async function V({text:e,imageVideoInfoList:t}){let n=e=>e.success?e:(W.error(e.message||_(`replyDetail.publishReplyFailed`)),{...e,toastHandled:!0});if(S){let r=await q({text:e,imageVideoInfoList:t});return C(!1),n(r)}else{let r=await K({text:e,imageVideoInfoList:t});return C(!1),n(r)}}async function K({text:e,imageVideoInfoList:t}){return await d?.({text:e,imageVideoInfoList:t,callback:r=>{let i=Z(e);if(!r||r===`0`)return;let a=N({id:r,user_id:k,user_name:A,avatar:j,text:e,created_at:n(),type:`4`,nine_grid_content_info:t,at_users:i});J?.(a)}})??{success:!0}}async function q({text:e,imageVideoInfoList:a}){if(!b?.id||b.id===`0`)return{success:!1,message:_(`replyDetail.invalidReplyTarget`)};let o=ee(a),l=r(e),u=s===`video`?1:2;try{let r=await c({content_id:t.id,content:i(e),medias:o,mentioned_users:l,parent_id:b.id,source_type:u},{revalidate:!1});if(r.code!==0)return{success:!1,message:r.message||_(`replyDetail.publishReplyFailed`)};let s=P(r.data);if(!s||s===`0`)return{success:!1,message:_(`replyDetail.publishReplyFailed`)};let d=N({id:s,user_id:k,user_name:A,avatar:j,text:e,created_at:n(),type:`4`,nine_grid_content_info:a,at_users:Z(e)});return d.parent_reply=b,J?.(d),f?.(),{success:!0}}catch(e){return console.error(`发布回复回复失败:`,e),{success:!1,message:_(`replyDetail.publishReplyFailed`)}}}let[J,Y]=B(null),X=I(e=>{Y(()=>e)},[]),Q=S?`回复@${b.user_name}`:``;function $(e){e||u()}return H(h,{open:l,onOpenChange:$,children:U(g,{showCloseButton:!1,className:`fixed left-0 right-0 bottom-0 top-[84px] z-[1000] h-auto w-full max-w-none translate-x-0 translate-y-0 rounded-none bg-bg2 p-0 text-text1 !flex !flex-col !gap-0`,children:[U(`div`,{className:`w-full h-[60px] bg-bg1 flex items-center justify-center relative`,children:[H(`button`,{type:`button`,className:`w-[48px] focus-within:outline-none focus-within:border-none focus-within:ring-0 h-full flex items-center justify-center absolute left-0 top-0`,onClick:u,children:H(v,{className:`w-[16px] h-[16px] text-text1`})}),H(`span`,{className:`text-[18px] font-bold`,children:_(`replyDetail.commentDetail`)})]}),U(`div`,{className:`flex-1 min-h-0 w-full overflow-y-auto bg-bg2`,children:[H(re,{comment:e,updateFollow:t=>{e.is_follow=t},onRequireLogin:m}),H(se,{commentId:e.id,informationId:t.id,handleReplyComment:F,onReplyListUpdate:X}),H(E,{placeholder:Q,onInputBlur:R,onPublish:V,onRequireLogin:m,ref:y})]})]})})}export{le as default};
|
|
2
|
+
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{debounceFun as t,getCurrentSecondTime as n,parseTextAtUserIds as r,replaceAtUserElement as i}from"../../../../utils/common.mjs";import{useFollowIdsState as a}from"../../../../store/modules/follow-ids-store.mjs";import{useUserStore as o}from"../../../../store/modules/user-store.mjs";import{gCommunityGetComments as s,pCommunityCreateComment as c,pCommunityDislikeComment as l,pCommunityLikeComment as u,pInteractionFollow as d,pInteractionUnfollow as f}from"../../../../service/generated/client.mjs";import{checkFollowStatus as p}from"../../../../utils/follow-service.mjs";import{Image as m}from"../../../ui/image.mjs";import{Dialog as h,DialogContent as g}from"../../../ui/dialog.mjs";import{InfiniteScroll as _}from"../../../ui/infinite-scroll.mjs";import{useLikeDislike as v}from"../../../../hooks/use-like-dislike.mjs";import{useKeepAliveState as y}from"../../../common/keep-scroll-position/index.mjs";import b from"../../../../assets/icons/close.mjs";import x from"../../../../assets/icons/common/follow_sel.mjs";import S from"../../../../assets/icons/common/follow_user.mjs";import{UnfollowConfirmDialog as C}from"../../../common/follow-button/unfollow-confirm-dialog.mjs";import w from"../../../../assets/icons/detail/give_like.mjs";import T from"../../../../assets/icons/detail/give_like_sel.mjs";import E from"./comment-input.mjs";import D from"../../../../assets/icons/detail/un_like.mjs";import O from"../../../../assets/icons/detail/un_like_sel.mjs";import{CommentMedia as k}from"./comment-media.mjs";import{CommentRichText as A}from"./comment-rich-text.mjs";import{TimeDisplay as j}from"./time-display.mjs";import{CommentItem as M}from"./comment-item.mjs";import{mapApiReplayToReplay as N}from"../../../../types/safe-replay.mjs";import{useRouter as P}from"next/navigation";import{memo as F,useCallback as I,useEffect as L,useMemo as R,useRef as z,useState as B}from"react";import{Fragment as V,jsx as H,jsxs as U}from"react/jsx-runtime";import{toast as W}from"sonner";import{useTranslations as G}from"next-intl";function K(e){if(e==null)return 0;let t=typeof e==`number`?e:Number(e);if(!Number.isNaN(t)&&t>0)return t>0xe8d4a51000?Math.floor(t/1e3):Math.floor(t);let n=Date.parse(String(e));return Number.isNaN(n)?0:Math.floor(n/1e3)}function q(e,t,n){let r=[];return Array.isArray(n)&&n.length>0?(n.forEach(e=>{let t=!!e?.is_video,n=String(e?.media_url||``),i=String(e?.cover_image||``);!n&&!i||r.push({cover_image:i,cover_image_thumbnail:i,cover_image_radio:1,cover_image_resolution:String(e?.cover_image_resolution||``),image_url:t?``:n,image_thumbnail:t?``:n,image_radio:1,image_resolution:String(e?.image_resolution||``),is_video:t,resolution:String(e?.video_resolution||``),video_duration:Number(e?.video_duration||0),video_url:t?n:``,video_size:Number(e?.video_size||0),video_codec_info:{hls_info:[],video_codec_deal:!1}})}),r):(e?.length&&e.forEach(e=>{r.push({cover_image:``,cover_image_thumbnail:``,cover_image_radio:1,cover_image_resolution:``,image_url:e,image_thumbnail:e,image_radio:1,image_resolution:``,is_video:!1,resolution:``,video_duration:0,video_url:``,video_size:0,video_codec_info:{hls_info:[],video_codec_deal:!1}})}),t?.length&&t.forEach(e=>{r.push({cover_image:``,cover_image_thumbnail:``,cover_image_radio:1,cover_image_resolution:``,image_url:``,image_thumbnail:``,image_radio:1,image_resolution:``,is_video:!0,resolution:``,video_duration:0,video_url:e,video_size:0,video_codec_info:{hls_info:[],video_codec_deal:!1}})}),r)}function J(e){let t=X(e.mentioned_users),n=t.length>0?t:Z(e.content||``);return{id:String(e.comment_id??e.id??``),user_name:e.user?.nickname||e.user?.username||``,text:e.content||``,type:`4`,files:[],at_users:n,cover_image:``,nine_grid_content_info:q(e?.images,e?.videos,e?.medias)}}function Y(e,t){let n=e.is_liked?`1`:e.is_dislike?`2`:`0`,r=X(e.mentioned_users),i=r.length>0?r:Z(e.content||``),a=String(e.comment_id??e.id??``),o=typeof e.like_count==`number`?e.like_count:0,s=N({id:a,like_cnt:(e.is_liked&&o===0?1:o).toString(),dislike_cnt:(e.dislike_count||0).toString(),created_at:K(e.create_time),text:e.content||``,type:`4`,like_flag:n,user_id:e.user_id||``,user_name:e.user?.nickname||e.user?.username||``,avatar:e.user?.avatar_url||``,reply_cnt:(e.reply_count||0).toString(),nine_grid_content_info:q(e?.images,e?.videos,e?.medias),at_users:i,parent_reply:void 0});return t&&(s.parent_reply=J(t)),s}function X(e){return Array.isArray(e)?e.map(e=>({user_id:e.user_id||``,name:e.nickname||e.username||``,avatar:e.avatar_url||``,birthday:``,signature:e.signature||``})):[]}function Z(e){if(!e)return[];let t=new Map,n=/<span[^>]*class=['"]mention['"][^>]*data-id=['"]([^'"]+)['"][^>]*>@([^<]*)<\/span>/g,r;for(;(r=n.exec(e))!==null;){let e=r[1]?String(r[1]):``,n=(r[2]?String(r[2]):``).replace(/^@/,``)||e;!e||t.has(e)||t.set(e,{user_id:e,name:n,avatar:``,birthday:``,signature:``})}if(t.size>0)return Array.from(t.values());let i=/<@_user>(\w+)<\/@_user>/g;for(;(r=i.exec(e))!==null;){let e=r[1]?String(r[1]):``;!e||t.has(e)||t.set(e,{user_id:e,name:e,avatar:``,birthday:``,signature:``})}return Array.from(t.values())}function ee(e){return!Array.isArray(e)||e.length===0?[]:e.map(e=>{let t=!!e.is_video,n=t?String(e.video_url||``):String(e.image_url||e.cover_image||``),r=String(e.cover_image||e.image_url||``);return{media_url:n,is_video:t,image_resolution:String(e.image_resolution||``),cover_image:r,cover_image_resolution:String(e.cover_image_resolution||``),video_resolution:String(e.resolution||``),video_duration:Number(e.video_duration||0),video_size:Number(e.video_size||0)}}).filter(e=>!!e.media_url)}function Q(e,t){let n=[];return e.forEach(e=>{n.push(Y(e,t)),e.sub_comments?.length&&n.push(...Q(e.sub_comments,e))}),n}function $(e){let t=Number(e)||0;return t>=1e4?`${(t/1e4).toFixed(1)}w`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}const te=t((e,t,n)=>{try{if(!e?.id)return;u({comment_id:e.id,is_like:e.like_flag!==`1`},{revalidate:!1})}catch(e){console.error(`点赞回复失败:`,e)}},200),ne=t((e,t,n)=>{try{if(!e?.id)return;l({comment_id:e.id,is_dislike:e.like_flag!==`2`},{revalidate:!1})}catch(e){console.error(`点踩回复失败:`,e)}},200),re=F(({comment:e,updateFollow:t,onRequireLogin:n})=>{let{userInfo:r,userId:i,isLogin:a}=o(),s=r?.userId||r?.user_id||i||``;return H(`div`,{className:`w-full bg-bg1`,children:H(M,{comment:e,variant:`light`,isLogin:a,onRequireLogin:n,rightSlot:R(()=>!!s&&String(s)===String(e.user_id||``),[e.user_id,s])?H(V,{}):H(ie,{userId:e.user_id,hasFollow:e.is_follow,onChange:t,onRequireLogin:n}),showReplyButton:!1})})});function ie({userId:t,hasFollow:n=!1,onChange:r,onRequireLogin:i}){let s=G(`components.biz.business.comment`),{isLogin:c,userInfo:l,userId:u}=o(),{followIds:p}=a(),[m,h]=B(n),[g,_]=B(!1),v=l?.userId||l?.user_id||u||``,y=R(()=>!!v&&String(v)===String(t||``),[t,v]),b=R(()=>n||p.includes(t),[p,n,t]);L(()=>{h(b)},[b]);let w=I(async()=>{try{if(!v||!t||t===`0`){W.error(s(`replyDetail.loginRequired`));return}if(m){let e=await f({follower_id:String(v),followee_id:t});if(e.code!==0){W.error(e.message||s(`replyDetail.unfollowFailed`));return}}else{let e=await d({follower_id:String(v),followee_id:t});if(e.code!==0){W.error(e.message||s(`replyDetail.followFailed`));return}}window.sensors?.track(`detail_follow_click`,{object_id:``,action:m?`取消关注`:`关注`,author_id:t}),sessionStorage.setItem(`user_page_refresh`,`1`)}catch(e){console.error(`关注或取消关注失败:`,e),W.error(s(m?`replyDetail.unfollowFailed`:`replyDetail.followFailed`));return}let e=!m;r?.(e),h(e);let{followIds:n,setFollowIds:i}=a.getState(),o=new Set(n);e?o.add(t):o.delete(t),i(Array.from(o))},[t,m,r,v,s]),T=I(()=>{if(!c){i?.();return}if(m){_(!0);return}w()},[w,m,c,i]);function E(){_(!1),w()}function D(){_(!1)}return y||!t||t===`0`?null:U(V,{children:[H(`div`,{className:e(`h-[28px] rounded-[14px] px-[8px] border border-solid cursor-pointer flex items-center justify-center`,m?`border-text3`:`border-theme5`),onClick:T,children:m?U(V,{children:[H(x,{className:`w-[12px] h-[12px] text-text3 shrink-0`}),H(`span`,{className:`text-text3 text-[12px] leading-[18px] ml-[4px] shrink-0`,children:s(`replyDetail.followed`)})]}):U(V,{children:[H(S,{className:`block w-[12px] h-[12px] text-theme5 shrink-0`}),H(`span`,{className:`block text-theme5 text-[12px] leading-[18px] ml-[4px] shrink-0`,children:s(`replyDetail.follow`)})]})}),H(C,{open:g,onOpenChange:_,onCancel:D,onConfirm:E})]})}const ae=t(e=>{e()},0);function oe(e,t,n,r){let i=z(!1);L(()=>{i.current=!1},[r]),L(()=>{let r=e.current;if(!r)return;!i.current&&t>0&&(r.scrollTop=t,i.current=!0);let a=()=>{i.current=!0,n(r.scrollTop)};return r.addEventListener(`scroll`,a,{passive:!0}),()=>r.removeEventListener(`scroll`,a)},[e,n,t,r])}const se=F(({commentId:e,informationId:t,handleReplyComment:n,onReplyListUpdate:r})=>{let i=G(`components.biz.business.comment`),[a,o]=y(`replay-detail-list-${e}`,[]),[c,l]=y(`replay-detail-has-more-${e}`,!0),[u,d]=y(`replay-detail-page-${e}`,1),{getLikedListData:f,getDislikedListData:p}=v(),m=z(!1),h=I(async()=>{if(!(!e||!t)&&!m.current){m.current=!0;try{let n=await s({content_id:t,parent_id:e,page:u,page_size:20,sort_by:`latest`});if(n.code!==0)throw Error(n.message||i(`replyDetail.fetchRepliesFailed`));let r=n.data?.data?.comments??[],a=Q(r);((n.data?.data?.has_more??!1)===!1||r.length<20)&&l(!1),o(e=>{let t=new Set(e.map(e=>e.id)),n=a.filter(e=>!t.has(e.id));return[...e,...n]}),a.length>0&&d(u+1)}catch(e){console.error(`获取回复列表失败:`,e),l(!1)}finally{m.current=!1}}},[e,t,u,o,l,d,i]),g=I(e=>{o(t=>[e,...t])},[o]);L(()=>{r(g)},[r,g]),L(()=>{e&&t&&(o(e=>e.length===0?e:[]),l(e=>e===!0?e:!0),d(e=>e===1?e:1))},[e,t,o,l,d]);let b=I(n=>{o(e=>f(e,n.id)),te(n,t,e)},[e,f,t,o]),x=I(n=>{n.like_flag!==`2`&&W.message(i(`replyDetail.dislikeHint`)),o(e=>p(e,n.id)),ne(n,t,e)},[e,p,t,o,i]),[S,C]=y(`replay-detail-scroll-top-${e}`,0),w=z(null);oe(w,S,C,e),L(()=>{!e||!t||a.length===0&&c&&h()},[e,t,h,a.length,c]);let T=I(async()=>{await h()},[h]);return U(`div`,{ref:w,className:`w-full pb-[66px]`,children:[a.map((e,t)=>H(ce,{replyItem:e,replyComment:n,onLikeReply:b,onDislikeReply:x},`${e.id}-${t}`)),H(_,{loadMore:T,hasMore:c})]})});function ce({replyItem:e,replyComment:t,onLikeReply:n,onDislikeReply:r}){let i=G(`components.biz.business.comment`),a=P(),o=e.status===`0`;function s(){n?.(e)}function c(){r?.(e)}function l(){t(e)}return U(`div`,{className:`p-[16px] flex flex-col`,children:[U(`div`,{className:`flex flex-row justify-between`,children:[U(`button`,{type:`button`,className:`flex flex-row items-center text-left`,onClick:()=>{a.push(`/profile/${e.user_id}`)},children:[H(`div`,{className:`w-[38px] h-[38px] rounded-full overflow-hidden relative bg-bg2`,children:e.avatar&&H(m,{src:e.avatar,fill:!0,objectFit:`cover`,alt:`avatar`})}),U(`div`,{className:`ml-[12px] flex flex-col`,children:[H(`span`,{className:`text-text2 text-[14px] leading-[14px] max-w-[180px] text-ellipsis overflow-hidden whitespace-nowrap`,children:e.user_name}),H(`span`,{className:`mt-[8px] text-text3 text-[12px] leading-[12px]`,children:H(j,{timestamp:e.created_at})})]})]}),o?H(`div`,{className:`px-[8px] py-[4px] bg-text3/10 rounded-[12px]`,children:H(`span`,{className:`text-text3 text-[12px] leading-[12px]`,children:i(`replyDetail.underReview`)})}):U(`div`,{className:`flex flex-row items-center`,children:[U(`div`,{className:`px-[4px] flex flex-col items-center`,onClick:s,children:[e.like_flag===`1`?H(T,{className:`w-[14px] h-[14px]`}):H(w,{className:`w-[14px] h-[14px] text-text3`}),H(`span`,{className:`mt-[4px] text-text3 text-[12px] leading-[12px]`,children:e.like_cnt===`0`?i(`replyDetail.like`):$(e.like_cnt)})]}),U(`div`,{className:`ml-[12px] px-[4px] flex flex-col items-center`,onClick:c,children:[e.like_flag===`2`?H(O,{className:`w-[14px] h-[14px]`}):H(D,{className:`w-[14px] h-[14px] text-text3`}),H(`span`,{className:`mt-[4px] text-text3 text-[12px] leading-[12px]`,children:e.dislike_cnt===`0`?i(`replyDetail.dislike`):$(e.dislike_cnt)})]})]})]}),U(`div`,{className:`mt-[4px] pl-[50px] flex flex-col`,children:[e.text&&H(A,{className:`text-text1 text-[14px] leading-[22px] break-all`,text:e.text,atUsers:e.at_users}),H(k,{list:e.nine_grid_content_info,disabled:o,hasText:!!e.text,playerId:e.id}),e.parent_reply&&e.parent_reply.text&&U(V,{children:[U(`div`,{className:`mt-[4px] flex flex-row items-center text-[14px] leading-[22px] relative pl-[8px]`,children:[H(`div`,{className:`w-[2px] h-full bg-line1 mr-[8px] absolute left-0 top-0 bottom-0 m-auto`}),U(`span`,{className:`text-theme1`,children:[e.parent_reply.user_name,`:`,e.parent_reply.text&&H(`span`,{className:`text-text1`,children:H(A,{text:e.parent_reply.text,atUsers:e.parent_reply.at_users})})]})]}),H(`div`,{className:`mt-1`,children:H(k,{list:e.parent_reply.nine_grid_content_info,disabled:o,hasText:!!e.parent_reply.text,playerId:e.parent_reply.id})})]}),H(`div`,{className:`mt-[4px] w-[fit-content] h-[30px] px-[12px] text-text1 text-[14px] leading-[22px] flex flex-row items-center bg-bg1 rounded-[15px]`,onClick:l,children:H(`span`,{children:i(`replyDetail.reply`)})})]})]})}function le({comment:e,information:t,contentType:s,visible:l,onClose:u,onReplyComment:d,onReplyAdded:f,onRequireLogin:m}){let _=G(`components.biz.business.comment`),v=z(null),[y,x]=B(()=>N({})),[S,C]=B(!1),{userInfo:w,userId:T}=o(),{followIds:D,setFollowIds:O}=a(),k=w?.userId||w?.user_id||T||``,A=w?.name||w?.nick_name||w?.nickname||w?.user_name||``,j=w?.avatar||w?.avatar_url||``,M=z({commentId:``,userId:``});function P(e){if(!e)return``;if(Array.isArray(e))return String(e[0]||``);if(typeof e==`object`){if(Object.prototype.hasOwnProperty.call(e,`comment_id`))return String(e.comment_id??``);if(Array.isArray(e.data))return String(e.data[0]||``)}return``}L(()=>{l&&(!k||!e.user_id||e.user_id!==`0`&&String(k)!==String(e.user_id)&&(M.current.commentId===e.id&&M.current.userId===k||(M.current={commentId:e.id,userId:k},(async()=>{let t=await p({app_id:0,follower_id:k,followee_ids:[e.user_id]});if(!t.success||!t.data?.is_following_map)return;let n=!!t.data.is_following_map[e.user_id];e.is_follow=n;let r=new Set(D);n?r.add(e.user_id):r.delete(e.user_id),O(Array.from(r))})())))},[e,D,k,O,l]);let F=I(e=>{x(e),setTimeout(()=>{C(!0),v.current?.focus()},10)},[]);function R(){ae(()=>{C(!1)})}async function V({text:e,imageVideoInfoList:t}){let n=e=>e.success?e:(W.error(e.message||_(`replyDetail.publishReplyFailed`)),{...e,toastHandled:!0});if(S){let r=await q({text:e,imageVideoInfoList:t});return C(!1),n(r)}else{let r=await K({text:e,imageVideoInfoList:t});return C(!1),n(r)}}async function K({text:e,imageVideoInfoList:t}){return await d?.({text:e,imageVideoInfoList:t,callback:r=>{let i=Z(e);if(!r||r===`0`)return;let a=N({id:r,user_id:k,user_name:A,avatar:j,text:e,created_at:n(),type:`4`,nine_grid_content_info:t,at_users:i});J?.(a)}})??{success:!0}}async function q({text:e,imageVideoInfoList:a}){if(!y?.id||y.id===`0`)return{success:!1,message:_(`replyDetail.invalidReplyTarget`)};let o=ee(a),l=r(e),u=s===`video`?1:2;try{let r=await c({content_id:t.id,content:i(e),medias:o,mentioned_users:l,parent_id:y.id,source_type:u},{revalidate:!1});if(r.code!==0)return{success:!1,message:r.message||_(`replyDetail.publishReplyFailed`)};let s=P(r.data);if(!s||s===`0`)return{success:!1,message:_(`replyDetail.publishReplyFailed`)};let d=N({id:s,user_id:k,user_name:A,avatar:j,text:e,created_at:n(),type:`4`,nine_grid_content_info:a,at_users:Z(e)});return d.parent_reply=y,J?.(d),f?.(),{success:!0}}catch(e){return console.error(`发布回复回复失败:`,e),{success:!1,message:_(`replyDetail.publishReplyFailed`)}}}let[J,Y]=B(null),X=I(e=>{Y(()=>e)},[]),Q=S?`回复@${y.user_name}`:``;function $(e){e||u()}return H(h,{open:l,onOpenChange:$,children:U(g,{showCloseButton:!1,className:`fixed left-0 right-0 bottom-0 top-[84px] z-[1000] h-auto w-full max-w-none translate-x-0 translate-y-0 rounded-none bg-bg2 p-0 text-text1 !flex !flex-col !gap-0`,children:[U(`div`,{className:`w-full h-[60px] bg-bg1 flex items-center justify-center relative`,children:[H(`button`,{type:`button`,className:`w-[48px] focus-within:outline-none focus-within:border-none focus-within:ring-0 h-full flex items-center justify-center absolute left-0 top-0`,onClick:u,children:H(b,{className:`w-[16px] h-[16px] text-text1`})}),H(`span`,{className:`text-[18px] font-bold`,children:_(`replyDetail.commentDetail`)})]}),U(`div`,{className:`flex-1 min-h-0 w-full overflow-y-auto bg-bg2`,children:[H(re,{comment:e,updateFollow:t=>{e.is_follow=t},onRequireLogin:m}),H(se,{commentId:e.id,informationId:t.id,handleReplyComment:F,onReplyListUpdate:X}),H(E,{placeholder:Q,onInputBlur:R,onPublish:V,onRequireLogin:m,ref:v})]})]})})}export{le as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{useUserStore as e}from"../../../../store/modules/user-store.mjs";import{gInteractionGetFollowingList as t,pCommunitySearchCurAccountFollowingUsersInfo as n}from"../../../../service/generated/client.mjs";import{Box as r}from"../../../ui/box.mjs";import{InfiniteScroll as i}from"../../../ui/infinite-scroll.mjs";import{Text as a}from"../../../ui/text.mjs";import
|
|
2
|
+
"use client";import{useUserStore as e}from"../../../../store/modules/user-store.mjs";import{gInteractionGetFollowingList as t,pCommunitySearchCurAccountFollowingUsersInfo as n}from"../../../../service/generated/client.mjs";import{Box as r}from"../../../ui/box.mjs";import{InfiniteScroll as i}from"../../../ui/infinite-scroll.mjs";import{Text as a}from"../../../ui/text.mjs";import{usePaginated as o}from"../../../../hooks/query/use-query.mjs";import s from"../../../ui/loading.mjs";import{ContactItem as c}from"./contact-item.mjs";import l from"../../../../assets/icons/empty/img-empty-adduser.mjs";import{ContactSearch as u}from"./contact-search.mjs";import{useMemo as d,useState as f}from"react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{useTranslations as h}from"next-intl";function g(e){let t=e.user_brief;return{user_id:String(t?.user_id||``),name:t?.nickname||t?.username||``,avatar:t?.avatar_url||``,signature:t?.signature||``}}function _({onClose:_,onSelect:v}){let y=h(`components.biz.business.contact`),{userInfo:b}=e(),x=String(b.user_id||``),[S,C]=f(``),w=S.length>0,{data:T,fetchNextPage:E,hasNextPage:D,isLoading:O}=o({key:[`contact-list`,`following`,x],queryFn:e=>t({page:e,page_size:20,user_id:x}),getNextPageParam:(e,t)=>{let n=e.data.following||[],r=Number(e.data.total??0),i=t.reduce((e,t)=>e+(t.data.following||[]).length,0);if(r>0&&i>=r)return;let a=new Set;for(let e of t.slice(0,-1))for(let t of e.data.following||[]){let e=String(t?.user_brief?.user_id||``);e&&a.add(e)}if(!(!n.some(e=>{let t=String(e?.user_brief?.user_id||``);return!t||a.has(t)?!1:(a.add(t),!0)})&&t.length>1)&&!(n.length<20)&&!(t.length>=150))return t.length+1},options:{enabled:!!x},initialPageParam:1}),{data:k,fetchNextPage:A,hasNextPage:j,isLoading:M}=o({key:[`contact-list`,`search`,x,S],queryFn:e=>n({user_id:x,keyword:S,page_size:20,page:e}),getNextPageParam:(e,t)=>{if(e.data?.has_more===!1)return;let n=e.data?.following||[],r=Number(e.data?.total??0),i=t.reduce((e,t)=>e+(t.data?.following||[]).length,0);if(r>0&&i>=r)return;let a=new Set;for(let e of t.slice(0,-1))for(let t of e.data?.following||[]){let e=String(t?.user_brief?.user_id||``);e&&a.add(e)}if(!(!n.some(e=>{let t=String(e?.user_brief?.user_id||``);return!t||a.has(t)?!1:(a.add(t),!0)})&&t.length>1)&&!(n.length<20)&&!(t.length>=150))return t.length+1},options:{enabled:w&&!!x},initialPageParam:1}),N=d(()=>{let e=T?.pages??[],t=[];for(let n of e){let e=n.data?.following??[];t.push(...e)}return t},[T?.pages]),P=d(()=>{if(!w||!k?.pages)return[];let e=[];for(let t of k.pages){let n=t.data?.following??[];e.push(...n.map(e=>({name:e.user_brief?.username||``,avatar:e.user_brief?.avatar_url||``,user_id:e.user_id||e.user_brief?.user_id||``,...e})))}return e},[w,k?.pages]),F=w?P.map(e=>g(e)):N.map(e=>g(e)),I=w?!!j:!!D,L=w?M:O,R=y(w?`contactList.noSearchResult`:`contactList.noFollowingUsers`);function z(e){C(e)}function B(e){v(e),_()}function V(){P.length===0?_():C(``)}function H(e){return m(r,{className:`flex flex-col items-center justify-center py-12`,children:[p(l,{className:`w-[145px] h-[145px]`}),p(a,{className:`mt-[12px] text-[14px] text-text2`,children:e})]})}return m(r,{className:`w-full bg-bg2 h-[90vh] flex flex-col`,children:[p(u,{searchHandler:z,onCancel:V,searchList:P}),p(r,{className:`flex-1 overflow-y-auto`,children:m(r,{className:`flex flex-col`,children:[!w&&N.length>0&&p(r,{className:`mt-[12px] px-[16px]`,children:p(a,{children:y(`contactList.myFollowing`)})}),L&&F.length===0?p(r,{className:`flex items-center justify-center pt-[58px]`,children:p(s,{size:`medium`})}):p(r,{className:`mt-[10px] flex flex-col flex-1`,children:m(i,{loadMore:()=>w?A().then(()=>void 0):E().then(()=>void 0),hasMore:I,noMoreText:F.length?y(`contactList.noMore`):``,children:[F.map((e,t)=>p(r,{children:p(c,{user:e,onSelect:B,value:w?S:``})},`${e.user_id}-${t}`)),F.length===0&&H(R)]})})]})})]})}export{_ as ContactList};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{useUserStore as e}from"../../../../store/modules/user-store.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import{
|
|
2
|
+
"use client";import{useUserStore as e}from"../../../../store/modules/user-store.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import{useDeleteRequest as r}from"../../../../hooks/query/use-query.mjs";import{useLoginModalStore as i}from"../../../../store/modules/login-modal-store.mjs";import{debounceFun as a}from"../../../../utils/tools.mjs";import o from"../../../common/collection-popup/index.mjs";import{useContentOperate as s}from"../../../../hooks/use-content-operate.mjs";import c from"../../../common/interaction-animations.module.mjs";import l from"../../../../assets/icons/detail/check-ok.mjs";import u from"../../../../assets/icons/detail/collect_nor.mjs";import d from"../../../../assets/icons/detail/collect_sel.mjs";import f from"../../../../assets/icons/detail/give_like.mjs";import p from"../../../../assets/icons/detail/give_like_sel.mjs";import m from"../../../../assets/icons/detail/share.mjs";import{useCallback as h,useMemo as g,useRef as _,useState as v}from"react";import{jsx as y,jsxs as b}from"react/jsx-runtime";import{toast as x}from"sonner";import{useTranslations as S}from"next-intl";function C({information:C,onUpdate:E}){let D=S(`components.biz.business.detail`),[O,k]=v(!1),[A,j]=v(!1),M=_(0),N=e(e=>e.userId),P=e(e=>e.isLogin),F=r(),I=h(()=>{N&&(F([`user-profile`,`mine`,N,`user-like-video`]),F([`user-profile`,`mine`,N,`user-like-post`]),F([`user-profile`,`mine`,N,`user-collect-video`,N]),F([`user-profile`,`mine`,N,`user-collect-post`,N]))},[F,N]),{likeAnimation:L,handleLikeOperate:R,handleDefaultCollectionOperate:z,handleShareOperate:B}=s({id:C.id,isLike:C.like||!1,isDislike:C.dislike||!1,isCollect:C.collect||!1,likeCnt:T(C.static?.like_cnt),dislikeCnt:T(C.static?.dislike_cnt),contentType:C.content_type,prefetchDefaultCollection:!0,animationClasses:{like:c.likeShakeAnimation,dislike:c.dislikeShakeAnimation}}),V=h(e=>{E?.({...e})},[E]),H=h(async()=>{if(O)return;if(!P){i.getState().open();return}let e=Date.now();if(e-M.current<300)return;M.current=e,k(!0);let t=C.like||!1,n=C.dislike||!1,r=T(C.static?.like_cnt),a=T(C.static?.dislike_cnt),o=!t,s=Math.max(0,r+(o?1:-1)),c=o?!1:n,l=o&&n?Math.max(0,a-1):a;V({like:o,dislike:c,static:{...C.static,like_cnt:s,dislike_cnt:l}});try{let e=await R();if(!e){V({like:t,dislike:n,static:{...C.static,like_cnt:r,dislike_cnt:a}});return}V({like:e.isLike,dislike:e.isDislike??c,static:{...C.static,like_cnt:e.likeCnt,dislike_cnt:e.dislikeCnt??l}}),I(),window.sensors?.track?.(`detail_like_click`,{object_id:C.id,action:e.isLike?`点赞`:`取消点赞`,like_count:e.likeCnt})}catch(e){console.error(`点赞操作失败:`,e),x.error(D(`detailOperate.operateFailed`))}finally{k(!1)}},[R,C,I,O,P,D,V]),U=g(()=>C.id,[C.id]),W=h(()=>{B(({isCollect:e})=>{V({collect:e})},U)},[B,U,V]);async function G(e){return await new Promise(e=>setTimeout(e,300)),e}let K=h(()=>{o.show({mode:`select`,onCollect:async e=>{try{await G({contentId:C.id,collectionId:e}),V({collect:!0}),I(),x.success(D(`detailOperate.modifyCollectionSuccess`))}catch(e){console.error(`修改收藏夹失败:`,e),x.error(D(`detailOperate.collectFailed`))}}})},[C.id,I,D,V]),q=h(e=>{let t=e||D(`detailOperate.defaultCollection`);x.custom(e=>b(`div`,{className:`flex items-center justify-between gap-[16px] px-[16px] py-[12px] rounded-[12px] bg-black text-white shadow-lg min-w-[280px]`,children:[b(`div`,{className:`flex items-center gap-[10px]`,children:[y(`div`,{className:`w-[24px] h-[24px] rounded-full bg-white flex items-center justify-center`,children:y(l,{className:`w-[14px] h-[14px]`})}),b(`div`,{className:`flex items-center gap-[6px]`,children:[y(`span`,{className:`text-[14px] leading-[20px]`,children:D(`detailOperate.collectAdded`)}),y(`span`,{className:`text-[14px] leading-[20px] font-semibold`,children:t})]})]}),y(`button`,{type:`button`,className:`text-[14px] text-theme5 font-semibold`,onClick:()=>{x.dismiss(e),K()},children:D(`detailOperate.modifyCollection`)})]}))},[K,D]),J=h(async()=>{if(A)return;if(!P){i.getState().open();return}let e=C.collect||!1;j(!0),window.sensors?.track?.(`detail_fav_click`,{object_id:C.id,action:e?`取消收藏`:`收藏`});try{let t=await z({currentCollect:e,onUpdate:({isCollect:e})=>{V({collect:e})}});if(!t?.success){x.error(t?.message||D(`detailOperate.collectFailed`));return}I(),window.sensors?.track?.(`detail_fav_click`,{object_id:C.id,action:t.isCollect?`收藏`:`取消收藏`}),!e&&t.isCollect&&q(t.collectionTitle)}catch(e){console.error(`收藏操作失败:`,e),x.error(e?.message||D(`detailOperate.collectFailed`))}finally{j(!1)}},[z,C.collect,C.id,I,A,P,q,D,V]),Y=g(()=>a(J,300),[J]);return b(t,{className:`w-full h-[42px] mt-[16px] flex items-center justify-between`,children:[b(t,{className:`w-[25%] h-full flex flex-col items-center justify-center ${O?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:H,children:[C.like?y(p,{className:`w-[20px] h-[20px] ${L.animationClass}`}):y(f,{className:`w-[20px] h-[20px] text-text2`}),y(n,{className:`text-[12px] text-text2 leading-[20px]`,children:C.static?C.static.like_cnt===0?D(`detailOperate.like`):w(C.static?.like_cnt):D(`detailOperate.like`)})]}),b(t,{className:`w-[25%] h-full flex flex-col items-center justify-center ${A?`opacity-50 cursor-not-allowed`:`cursor-pointer`}`,onClick:Y,children:[C.collect?y(d,{className:`w-[20px] h-[20px]`}):y(u,{className:`w-[20px] h-[20px] text-text2`}),y(n,{className:`text-[12px] text-text2 leading-[20px]`,children:D(`detailOperate.collection`)})]}),b(t,{className:`w-[25%] h-full flex flex-col items-center justify-center cursor-pointer`,onClick:W,children:[y(m,{className:`w-[20px] h-[20px] text-text2`}),y(n,{className:`text-[12px] text-text2 leading-[20px]`,children:D(`detailOperate.share`)})]})]})}function w(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 T(e){if(e==null)return 0;if(typeof e==`number`)return e;let t=Number(e);return Number.isNaN(t)?0:t}export{C as DetailOperate};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailActionsClient as t}from"./client.mjs";import{videoDetailActionsInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailActions as r}from"./server.mjs";const i=e({type:`video-detail-actions`,name
|
|
2
|
+
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailActionsClient as t}from"./client.mjs";import{videoDetailActionsInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailActions as r}from"./server.mjs";const i=e({type:`video-detail-actions`,name:`行为模块`,icon:`/static/components-thumb/interaction_actions_default.png`,category:`内容组件`,serverComponent:r,clientComponent:t,propsSchema:n});export{i as videoDetailActionsMaterial};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailInfoClient as t}from"./client.mjs";import{videoDetailInfoInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailInfo as r}from"./server.mjs";const i=e({type:`video-detail-info`,name
|
|
2
|
+
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailInfoClient as t}from"./client.mjs";import{videoDetailInfoInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailInfo as r}from"./server.mjs";const i=e({type:`video-detail-info`,name:`详情信息`,icon:`/static/components-thumb/media_info_description_episode.png`,category:`内容组件`,serverComponent:r,clientComponent:t,propsSchema:n});export{i as videoDetailInfoMaterial};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailInfoTitleClient as t}from"./client.mjs";import{videoDetailInfoTitleInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailInfoTitle as r}from"./server.mjs";const i=e({type:`video-detail-info-title`,name
|
|
2
|
+
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailInfoTitleClient as t}from"./client.mjs";import{videoDetailInfoTitleInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailInfoTitle as r}from"./server.mjs";const i=e({type:`video-detail-info-title`,name:`标题`,icon:`/static/components-thumb/media_info_basic.png`,category:`内容组件`,serverComponent:r,clientComponent:t,propsSchema:n});export{i as videoDetailInfoTitleMaterial};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailInfoTitleTagsEpisodesClient as t}from"./client.mjs";import{videoDetailInfoTitleTagsEpisodesInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailInfoTitleTagsEpisodes as r}from"./server.mjs";const i=e({type:`video-detail-info-title-tags-episodes`,name
|
|
2
|
+
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailInfoTitleTagsEpisodesClient as t}from"./client.mjs";import{videoDetailInfoTitleTagsEpisodesInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailInfoTitleTagsEpisodes as r}from"./server.mjs";const i=e({type:`video-detail-info-title-tags-episodes`,name:`标题 + 标签 + 选集`,icon:`/static/components-thumb/media_info_episode_list.png`,category:`内容组件`,serverComponent:r,clientComponent:t,propsSchema:n});export{i as videoDetailInfoTitleTagsEpisodesMaterial};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailPlayerClient as t}from"./client.mjs";import{videoDetailPlayerInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailPlayer as r}from"./server.mjs";const i=e({type:`video-detail-player`,name
|
|
2
|
+
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailPlayerClient as t}from"./client.mjs";import{videoDetailPlayerInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailPlayer as r}from"./server.mjs";const i=e({type:`video-detail-player`,name:`视频播放器`,icon:`/static/components-thumb/video_player.png`,category:`内容组件`,serverComponent:r,clientComponent:t,propsSchema:n});export{i as videoDetailPlayerMaterial};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{gContentGetGuessYouLikeVideos as e}from"../../../../../../service/generated/client.mjs";import{Box as t}from"../../../../../ui/box.mjs";import{Text as n}from"../../../../../ui/text.mjs";import{
|
|
2
|
+
"use client";import{gContentGetGuessYouLikeVideos as e}from"../../../../../../service/generated/client.mjs";import{Box as t}from"../../../../../ui/box.mjs";import{Text as n}from"../../../../../ui/text.mjs";import{useRequest as r}from"../../../../../../hooks/query/use-query.mjs";import{useAppContext as i}from"../../../../../../hooks/use-app-context/index.mjs";import{MiniThreeCard as a}from"../../../../../common/cards/mini-three-card.mjs";import{useCardDecoration as o}from"../../../../../../hooks/use-card-decoration.mjs";import s from"../../../../../../assets/icons/detail/video_flag.mjs";import{applyPlayCountDelta as ee,buildEpisodeLabel as c,clampColumns as l,mergeManualAndPool as u,mockPagedList as d,resolveRows as f}from"./utils.mjs";import{useEffect as p,useMemo as m,useRef as h,useState as g}from"react";import{jsx as _,jsxs as v}from"react/jsx-runtime";import{useTranslations as y}from"next-intl";function b({detailId:b,rows:w,columns:T,smartTagEnabled:E,smartTagIds:D,title:O,showPlayCount:k,playCountDelta:A,showEpisode:j,enableInfinite:M,items:N}){let P=i(),te=y(`components.biz.business.detail`),{getVerticalHoCoverImageUrl:F,getTitleText:I}=o(),[L,R]=g(1),z=h(null),B=m(()=>D??[],[D]),V=m(()=>N??[],[N]),{data:H}=r([`video-detail-recommend`,b],async()=>!b||P===`editor`?null:await e(),{enabled:P===`renderer`&&!!b}),U=m(()=>{let e=H?.data?.videos;return Array.isArray(e)?e.map(e=>x(e)).filter(e=>!b||!e.id||e.id!==b):[]},[H?.data?.videos,b]),W=f(w,M),G=l(T),K=W*G,q=m(()=>new Set(V.map(e=>e.contentId)),[V]),J=m(()=>{let e=U.filter(e=>!q.has(e.id));if(!E||B.length===0)return e;let t=new Set(B.map(String));return e.filter(e=>(Array.isArray(e.source_tags)?e.source_tags:String(e.source_tags||``).split(`,`).filter(Boolean)).some(e=>t.has(String(e?.id??e))))},[q,U,E,B]),Y=m(()=>{if(!V.length)return[];let e=new Map(J.map(e=>[e.id,e]));return V.map(t=>{let n=e.get(t.contentId);if(!n)return null;let r=t.titleMode===`custom`?t.title:I(n),i=t.coverMode===`upload`?t.coverUrl:F(n);return{info:{...n,name:r||n.name,img_y:i||n.img_y,img_x:i||n.img_x},config:{showPlayCount:t.showPlayCount,playCountDelta:t.playCountDelta,showEpisode:t.showEpisode}}}).filter(Boolean)},[J,I,F,V]),X=m(()=>J.map(e=>({info:e})),[J]),Z=m(()=>u(Y,X,K),[Y,K,X]),Q=m(()=>{if(!M)return Z;let e=d(X,L,K,5);return L===1?Z:Z.concat(e)},[Z,M,L,K,X]),$=M&&L<5&&X.length>0;return p(()=>{M&&R(1)},[b,M]),p(()=>{if(!M)return;let e=z.current;if(!e||!$)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&R(e=>Math.min(e+1,5))});return t.observe(e),()=>{t.disconnect()}},[M,$]),Q.length?v(t,{className:`w-full mt-[16px]`,children:[_(n,{className:`block pl-[12px] mb-[8px] text-text1 text-[18px] leading-[26px] font-bold`,children:O||te(`detailGuessLike.title`)}),_(t,{className:`w-full flex flex-wrap px-[12px]`,children:Q.map((e,t)=>{let n=e.config?.showPlayCount??k,r=e.config?.playCountDelta??A,i=e.config?.showEpisode??j,o=S(ee(e.info.play_count||0,r)),l=c(Number(e.info.update_status)===1?`done`:`updating`,e.info.episode_cnt||e.info.links?.length,e.info.episode_cnt||e.info.links?.length),u=Number.isFinite(G)&&G>0?`${100/G}%`:`33.333333%`;return _(a,{url:F(e.info),text:I(e.info),style:{width:u},bottomLeftChild:n?v(`div`,{className:`h-[20px] leading-[20px] text-[#fff] text-[12px] px-[4px] rounded-[4px] bg-[#333] ml-[4px] flex items-center`,children:[_(s,{className:`w-[16px] h-[auto] text-[#fff] mr-[4px]`}),o]}):null,bottomRightChild:i&&l?_(`div`,{className:`text-[#F59E0B] text-[12px] font-bold leading-[20px] pr-[8px]`,children:l}):null,linkPath:C(e.info)},`guess-like-${t}`)})}),M&&_(`div`,{ref:z,className:`h-[1px] w-full`})]}):null}function x(e){return{id:e.video_id||``,mid:``,name:e.name||``,cat_id:``,cat_name:``,status:`1`,status_text:``,create_time:``,content_type:0,episode_cnt:e.episode_count||0,show_at:e.show_at??``,position:``,img_type:e.img_type??``,img_x:e.img_x??``,img_y:e.img_y??``,img_width:``,img_height:``,play_count:e.play_count,preview_images:[],duration:String(e.duration??``),score:String(e.score??``),is_more_link:e.is_more_link?`y`:`n`,update_status:String(e.update_status??``),description:e.description??``,language:``,director:``,actor:``,area:``,issue_date:``,publisher:``,series:``,number:``,tags:[],source_tags:e.source_tags??``,source_actor:[],links:Array.isArray(e.episodes)?e.episodes.map(e=>({id:e.id??``,name:e.name??``,preview_m3u8_url:e.preview_m3u8_url??``,m3u8_url:e.m3u8_url??``})):[],money:``,up_user:``,source_username:``,task_id:``,file_status:``}}function S(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 C(e){if(e.content_type===0){let t=encodeURIComponent(e.name||``);return`/video/${e.id}/${t}/episode/1`}return`/post/${e.id}`}export{b as VideoDetailRecommendClient};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailRecommendClient as t}from"./client.mjs";import{videoDetailRecommendInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailRecommend as r}from"./server.mjs";const i=e({type:`video-detail-recommend`,name
|
|
2
|
+
import{defineMaterial as e}from"../../../../../../utils/schema/material.mjs";import{VideoDetailRecommendClient as t}from"./client.mjs";import{videoDetailRecommendInspectorPropsSchema as n}from"./schema.mjs";import{VideoDetailRecommend as r}from"./server.mjs";const i=e({type:`video-detail-recommend`,name:`猜你喜欢`,icon:`/static/components-thumb/search_recommend_media.png`,category:`内容组件`,serverComponent:r,clientComponent:t,propsSchema:n});export{i as videoDetailRecommendMaterial};
|
|
@@ -2,8 +2,14 @@
|
|
|
2
2
|
import { defaultProps } from "./variants/home-recommend-grid/defaults/default-props.mjs";
|
|
3
3
|
import { HomeRecommendGridClient } from "./variants/home-recommend-grid/runtime/client.mjs";
|
|
4
4
|
import { schema } from "./variants/home-recommend-grid/schema/index.mjs";
|
|
5
|
+
import { homeRecommendGridInspectorDefaultProps, homeRecommendGridInspectorPropsSchema } from "./variants/home-recommend-grid/inspector-schema.mjs";
|
|
6
|
+
import { HomeRecommendGrid } from "./variants/home-recommend-grid/server.mjs";
|
|
7
|
+
import { homeRecommendGridMaterial } from "./variants/home-recommend-grid/material.mjs";
|
|
5
8
|
import "./variants/home-recommend-grid/index.mjs";
|
|
6
9
|
import { defaultProps as defaultProps$1 } from "./variants/home-recommend-waterfall/defaults/default-props.mjs";
|
|
7
10
|
import { HomeRecommendWaterfallClient } from "./variants/home-recommend-waterfall/runtime/client.mjs";
|
|
8
11
|
import { schema as schema$1 } from "./variants/home-recommend-waterfall/schema/index.mjs";
|
|
12
|
+
import { homeRecommendWaterfallInspectorDefaultProps, homeRecommendWaterfallInspectorPropsSchema } from "./variants/home-recommend-waterfall/inspector-schema.mjs";
|
|
13
|
+
import { HomeRecommendWaterfall } from "./variants/home-recommend-waterfall/server.mjs";
|
|
14
|
+
import { homeRecommendWaterfallMaterial } from "./variants/home-recommend-waterfall/material.mjs";
|
|
9
15
|
import "./variants/home-recommend-waterfall/index.mjs";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{gContentGetAppChannelBlockData 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{
|
|
2
|
+
"use client";import{gContentGetAppChannelBlockData 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{usePaginated as i}from"../../../../../hooks/query/use-query.mjs";import{useAppContext as a}from"../../../../../hooks/use-app-context/index.mjs";import{MiniThreeCard as o}from"../../../../common/cards/mini-three-card.mjs";import s from"../../../../../assets/icons/detail/video_flag.mjs";import{useRouter as c}from"next/navigation";import{useCallback as l,useEffect as u,useLayoutEffect as d,useMemo as f,useRef as p,useState as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";const _={},v={list:[]};function y({variant:e,props:t=_,data:i=v}){let o=a(),s=c(),{list:y,title:x,cursor:S,block_id:w,channel_id:T}=i,E=Array.isArray(i.icons)?i.icons:[],{moreLink:D}=t,[O,k]=m(0),j=p(null),{items:P,icons:F,hasNextPage:I,isFetchingNextPage:L,fetchNextPage:R}=N({blockId:w||``,initialCursor:S||``,initialIcons:E,initialList:y,pageSize:16,enabled:o===`renderer`}),z=e===`waterfall`?6:4,B=P.length>=z?P.length-z:-1,V=p(null),H=p(!1),U=x||``,W=C(D,w||``,T||``),G=!!(S&&S.trim()),K=o===`renderer`&&(G||I===!0),q=l(()=>{W&&(W.startsWith(`http`)?window.location.href=W:s.push(W))},[W,s]);d(()=>{let t=j.current;if(!t||e!==`waterfall`)return;let n=()=>{let e=t.clientWidth||0;k(e>0?(e-12)/2:0)};n();let r=new ResizeObserver(n);return r.observe(t),()=>{r.disconnect()}},[e]),u(()=>{let e=V.current;if(!e||!K||P.length<16)return;let t=document.getElementById(`app-scroll-container`)||null,n=new IntersectionObserver(e=>{e[0]?.isIntersecting&&(L||H.current||(H.current=!0,R().finally(()=>{H.current=!1})))},{root:t,threshold:0});return n.observe(e),()=>{n.disconnect()}},[K,R,L,P.length,B]);let J=f(()=>e===`waterfall`?A(P,F,O):{left:[],right:[]},[O,P,F,e]);return P.length?g(n,{className:`w-full mt-[16px]`,children:[g(n,{className:`flex items-center justify-between px-[12px] mb-[8px]`,children:[h(r,{className:`text-text1 text-[18px] leading-[26px] font-bold line-clamp-1`,children:U}),h(r,{className:`text-text3 text-[12px] leading-[18px] ${W?`cursor-pointer`:``}`,onClick:q,children:`更多`})]}),e===`grid`&&h(n,{className:`w-full flex flex-wrap px-[12px]`,children:P.map((e,t)=>{let n=F[t];return h(`div`,{ref:t===B?V:void 0,className:`w-1/2 px-[6px]`,children:h(b,{item:e,icon:n,index:t,widthStyle:{width:`100%`}})},M(e,t))})}),e===`waterfall`&&g(n,{ref:j,className:`w-full px-[12px] flex gap-[12px]`,children:[h(n,{className:`flex-1 min-w-0 flex flex-col`,children:J.left.map(e=>h(`div`,{ref:e.index===B?V:void 0,children:h(b,{item:e.item,icon:e.icon,index:e.index,widthStyle:{width:`100%`}})},M(e.item,e.index)))}),h(n,{className:`flex-1 min-w-0 flex flex-col`,children:J.right.map(e=>h(`div`,{ref:e.index===B?V:void 0,children:h(b,{item:e.item,icon:e.icon,index:e.index,widthStyle:{width:`100%`}})},M(e.item,e.index)))})]})]}):null}function b({item:e,icon:t,index:i,widthStyle:a}){let c=w(e),l=e.name||``,u=E(e.static?.browse_cnt??0),d=T(e),f=k(e,t,i);return h(o,{url:c,text:l,className:`w-full`,style:a,topRightChild:f?h(x,{url:f}):void 0,bottomLeftChild:g(n,{className:`h-[20px] leading-[20px] text-[#fff] text-[12px] px-[4px] rounded-[4px] bg-[#333] ml-[4px] flex items-center`,children:[h(s,{className:`w-[16px] h-[auto] text-[#fff] mr-[4px]`}),u]}),textChild:g(n,{className:`mt-[4px]`,children:[h(r,{as:`h3`,className:`text-text1 text-[14px] leading-[20px] line-clamp-1`,children:l}),d&&h(r,{className:`text-text3 text-[12px] leading-[18px]`,children:d})]}),linkPath:S(e)})}function x({url:e}){return h(n,{className:`relative w-[40px] h-[20px] mr-[6px] mt-[6px]`,children:h(t,{src:e,alt:`corner`,fill:!0,objectFit:`contain`})})}function S(e){let t=encodeURIComponent(e.name||``);return`/video/${e.id||``}/${t}/episode/1`}function C(e,t,n){if(e)return e;if(!t)return``;let r=new URLSearchParams({blockId:t});return n&&r.set(`channelId`,n),`/featured?${r.toString()}`}function w(e){return e.img_y||e.img_x||``}function T(e){if((e.type??0)===2){let t=Number(e.episode_cnt||e.links?.length||0);return t>0?`全${t}集`:``}return O(Number(e.duration||0))}function E(e){return!Number.isFinite(e)||e<=0?`0`:e>=1e6?`${D(e/1e6)}M`:e>=1e3?`${D(e/1e3)}k`:Math.floor(e).toString()}function D(e){let t=e.toFixed(1);return t.endsWith(`.0`)?t.slice(0,-2):t}function O(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 k(e,t,n){let r=e;return r.corner_icon_url||r.corner_icon||r.icon_url||t?.material_url||``}function A(e,t,n){let r=[],i=[],a=0,o=0;return e.forEach((e,s)=>{let c=t[s],l=j(n,e);a<=o?(r.push({item:e,icon:c,index:s}),a+=l):(i.push({item:e,icon:c,index:s}),o+=l)}),{left:r,right:i}}function j(e,t){if(!e)return 0;let n=e*1.3461538461538463,r=T(t)?18:0;return n+20+r+6+16}function M(e,t){return e.id?`home-recommend-${e.id}`:`home-recommend-${t}`}function N({blockId:t,initialList:n,initialCursor:r,initialIcons:a,pageSize:o,enabled:s}){let c=n.length>0,h=p(n),g=p(a),[_,v]=m(!1);u(()=>{h.current=n,g.current=a},[a,n]);let y=f(()=>{if(!c)return;let e=r&&r.trim()?r:void 0;return{pages:[{data:{block:{data:{videos:n,icons:a,cursor:r||``}}}}],pageParams:[e]}},[c,r,a,n]),{data:b,fetchNextPage:x,hasNextPage:S,isFetchingNextPage:C}=i({key:[`home-recommend`,t],queryFn:n=>e({block_id:t,cursor:n||void 0,page_size:o}),getNextPageParam:e=>{let t=e.data?.block?.data?.cursor;return t&&t.trim()?t:void 0},options:{enabled:s&&!!t,initialData:y,refetchOnMount:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1},initialPageParam:c&&r&&r.trim()?r:void 0});d(()=>{v(!0)},[]);let w=f(()=>{if(!_)return{items:c?[...h.current]:[],icons:c?[...g.current]:[]};let e=b?.pages||[],t=[],n=[],r=c?1:0;c&&(t.push(...h.current),n.push(...g.current));for(let i=r;i<e.length;i++){let r=e[i].data?.block?.data,a=r?.videos||[],o=r?.icons||[];t.push(...a),n.push(...o)}return{items:t,icons:n}},[c,_,b?.pages]),T=l(async()=>{await x()},[x]);return{items:w.items,icons:w.icons,hasNextPage:S,isFetchingNextPage:C,fetchNextPage:T}}export{y as default};
|