@funhub/platform 0.1.37 → 0.1.41
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 +6 -0
- package/config/tailwind/index.cjs +4 -0
- package/config/tailwind/index.mjs +4 -0
- package/dist/assets/images/subscript.mjs +2 -0
- package/dist/biz.mjs +1 -1
- package/dist/common.d.mts +1 -2
- package/dist/common.mjs +1 -1
- package/dist/components/biz/business/banner/variants/basic-banner/inspector-schema.d.mts +4 -0
- package/dist/components/biz/business/banner/variants/basic-banner/material.d.mts +4 -0
- package/dist/components/biz/business/banner/variants/basic-banner/runtime/client.d.mts +6 -1
- package/dist/components/biz/business/banner/variants/basic-banner/runtime/client.mjs +1 -1
- package/dist/components/biz/business/banner/variants/basic-banner/server.mjs +1 -1
- package/dist/components/biz/business/banner-carousel/client.mjs +1 -1
- package/dist/components/biz/business/banner-carousel/material.d.mts +4 -0
- package/dist/components/biz/business/banner-carousel/schema.d.mts +4 -0
- package/dist/components/biz/business/banner-carousel/server.mjs +1 -1
- package/dist/components/biz/business/channel-list/client.mjs +1 -1
- package/dist/components/biz/business/channel-list/material.d.mts +4 -0
- package/dist/components/biz/business/channel-list/schema.d.mts +4 -0
- package/dist/components/biz/business/comment/comment-input.mjs +1 -1
- package/dist/components/biz/business/detail/detail-operate.mjs +1 -1
- package/dist/components/biz/business/detail/materials/registry.d.mts +30 -3
- package/dist/components/biz/business/detail/materials/video-detail-actions/client.d.mts +2 -1
- package/dist/components/biz/business/detail/materials/video-detail-actions/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-actions/material.d.mts +6 -1
- package/dist/components/biz/business/detail/materials/video-detail-actions/schema.d.mts +6 -1
- package/dist/components/biz/business/detail/materials/video-detail-actions/server.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info/client.d.mts +2 -1
- package/dist/components/biz/business/detail/materials/video-detail-info/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info/material.d.mts +4 -0
- package/dist/components/biz/business/detail/materials/video-detail-info/schema.d.mts +4 -0
- package/dist/components/biz/business/detail/materials/video-detail-info/server.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title/client.d.mts +2 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title/material.d.mts +6 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title/schema.d.mts +6 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title/server.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/client.d.mts +2 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/material.d.mts +4 -0
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/schema.d.mts +4 -0
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/server.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/client.d.mts +2 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/client.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/material.d.mts +6 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/schema.d.mts +6 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/server.mjs +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-recommend/client.d.mts +2 -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.d.mts +4 -0
- package/dist/components/biz/business/detail/materials/video-detail-recommend/schema.d.mts +4 -0
- package/dist/components/biz/business/detail/materials/video-detail-recommend/server.mjs +1 -1
- package/dist/components/biz/business/detail/video-hero.mjs +1 -1
- package/dist/components/biz/business/floating-ball/client.mjs +1 -1
- package/dist/components/biz/business/floating-ball/material.d.mts +4 -0
- package/dist/components/biz/business/floating-ball/schema.d.mts +4 -0
- package/dist/components/biz/business/floating-ball/server.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-icon/client.d.mts +3 -1
- package/dist/components/biz/business/header-search/header-avatar-icon/client.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-icon/material.d.mts +6 -1
- package/dist/components/biz/business/header-search/header-avatar-icon/schema.d.mts +6 -1
- package/dist/components/biz/business/header-search/header-avatar-icon/server.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search/client.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search/material.d.mts +4 -0
- package/dist/components/biz/business/header-search/header-avatar-logo-search/schema.d.mts +4 -0
- package/dist/components/biz/business/header-search/header-avatar-logo-search/server.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/client.mjs +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/material.d.mts +4 -0
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/schema.d.mts +4 -0
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/server.mjs +1 -1
- package/dist/components/biz/business/header-search/header-logo-search/client.mjs +1 -1
- package/dist/components/biz/business/header-search/header-logo-search/material.d.mts +4 -0
- package/dist/components/biz/business/header-search/header-logo-search/schema.d.mts +4 -0
- package/dist/components/biz/business/header-search/header-logo-search/server.mjs +1 -1
- package/dist/components/biz/business/header-search/header-search/client.d.mts +3 -1
- package/dist/components/biz/business/header-search/header-search/client.mjs +1 -1
- package/dist/components/biz/business/header-search/header-search/material.d.mts +6 -1
- package/dist/components/biz/business/header-search/header-search/schema.d.mts +6 -1
- package/dist/components/biz/business/header-search/header-search/server.mjs +1 -1
- package/dist/components/biz/business/home-recommend/shared/home-recommend-base.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/inspector-schema.d.mts +4 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/material.d.mts +4 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/runtime/client.d.mts +8 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/runtime/client.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/server.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/inspector-schema.d.mts +4 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/material.d.mts +4 -0
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/runtime/client.d.mts +8 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/runtime/client.mjs +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/server.mjs +1 -1
- package/dist/components/biz/business/index.mjs +1 -1
- package/dist/components/biz/business/large-feature-grid/card-item.mjs +1 -1
- package/dist/components/biz/business/large-feature-grid/client.d.mts +15 -0
- package/dist/components/biz/business/large-feature-grid/client.mjs +1 -1
- package/dist/components/biz/business/large-feature-grid/material.d.mts +34 -4
- package/dist/components/biz/business/large-feature-grid/schema.d.mts +42 -0
- package/dist/components/biz/business/large-feature-grid/server.d.mts +15 -0
- package/dist/components/biz/business/large-feature-grid/server.mjs +1 -1
- package/dist/components/biz/business/marquee/client.mjs +1 -1
- package/dist/components/biz/business/marquee/material.d.mts +4 -0
- package/dist/components/biz/business/marquee/schema.d.mts +4 -0
- package/dist/components/biz/business/marquee/server.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/client.d.mts +2 -1
- package/dist/components/biz/business/profile/profile-header/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/material.d.mts +18 -2
- package/dist/components/biz/business/profile/profile-header/material.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/schema.d.mts +7 -2
- package/dist/components/biz/business/profile/profile-header/server.d.mts +4 -1
- package/dist/components/biz/business/profile/profile-header/server.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/client.d.mts +2 -1
- package/dist/components/biz/business/profile/profile-main/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/material.d.mts +6 -1
- package/dist/components/biz/business/profile/profile-main/material.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/schema.d.mts +7 -2
- package/dist/components/biz/business/profile/profile-main/server.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/shell.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.d.mts +5 -0
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/collect-tab/server.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.d.mts +5 -0
- package/dist/components/biz/business/profile/profile-main/tabs/history-tab/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/history-tab/server.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.d.mts +5 -0
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/like-tab/server.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/client.d.mts +6 -1
- package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/client.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/tabs/publish-tab/server.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/utils.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/variants.d.mts +3 -3
- package/dist/components/biz/business/profile/profile-main/variants.mjs +1 -1
- package/dist/components/biz/business/search-history/client.mjs +1 -1
- package/dist/components/biz/business/search-history/material.d.mts +4 -0
- package/dist/components/biz/business/search-history/schema.d.mts +4 -0
- package/dist/components/biz/business/search-history/server.mjs +1 -1
- package/dist/components/biz/business/search-input/client.mjs +1 -1
- package/dist/components/biz/business/search-input/material.d.mts +4 -0
- package/dist/components/biz/business/search-input/schema.d.mts +4 -0
- package/dist/components/biz/business/search-input/server.mjs +1 -1
- package/dist/components/biz/business/shortcut-grid/client.mjs +1 -1
- package/dist/components/biz/business/shortcut-grid/material.d.mts +4 -0
- package/dist/components/biz/business/shortcut-grid/schema.d.mts +4 -0
- package/dist/components/biz/business/shortcut-grid/server.mjs +1 -1
- package/dist/components/biz/business/tab-bar/client.mjs +1 -1
- package/dist/components/biz/business/tab-bar/material.d.mts +14 -2
- package/dist/components/biz/business/tab-bar/schema.d.mts +14 -2
- package/dist/components/biz/business/tab-bar/schema.mjs +1 -1
- package/dist/components/biz/business/tab-bar/server.mjs +1 -1
- package/dist/components/biz/business/text-recommend/client.mjs +1 -1
- package/dist/components/biz/business/text-recommend/material.d.mts +4 -0
- package/dist/components/biz/business/text-recommend/schema.d.mts +4 -0
- package/dist/components/biz/business/text-recommend/server.mjs +1 -1
- package/dist/components/biz/business/video-horizontal-list/client.mjs +1 -1
- package/dist/components/biz/business/video-horizontal-list/material.d.mts +4 -0
- package/dist/components/biz/business/video-horizontal-list/schema.d.mts +4 -0
- package/dist/components/biz/business/video-horizontal-list/schema.mjs +1 -1
- package/dist/components/biz/business/video-horizontal-list/server.mjs +1 -1
- package/dist/components/biz/example/button/client.mjs +1 -1
- package/dist/components/biz/example/button/material.d.mts +4 -0
- package/dist/components/biz/example/button/schema.d.mts +4 -0
- package/dist/components/biz/example/button/server.d.mts +4 -1
- package/dist/components/biz/example/button/server.mjs +1 -1
- package/dist/components/common/list/post-list/post-list.d.mts +2 -0
- package/dist/components/common/list/post-list/post-list.mjs +1 -1
- package/dist/components/common/list/video-list/video-list.d.mts +2 -0
- package/dist/components/common/list/video-list/video-list.mjs +1 -1
- package/dist/components/pages/collection-create/form.mjs +1 -1
- package/dist/components/pages/collection-detail/_components/collection-detail-card.mjs +1 -1
- package/dist/components/pages/collection-detail/detail.mjs +1 -1
- package/dist/components/pages/feedback/_components/feedback-form.mjs +1 -1
- package/dist/components/ui/button.d.mts +1 -1
- package/dist/hooks.d.mts +1 -4
- package/dist/hooks.mjs +1 -1
- package/dist/i18n/locales/en.mjs +1 -1
- package/dist/i18n/locales/zh-CN.mjs +1 -1
- package/dist/utils/schema/index.d.mts +1 -1
- package/dist/utils/schema/material.d.mts +3 -2
- package/dist/utils/schema/schema.d.mts +18 -3
- package/dist/utils/schema/schema.mjs +1 -1
- package/dist/utils.d.mts +2 -2
- package/package.json +1 -1
- package/theme.css +4 -0
- package/dist/components/common/app-context/index.d.mts +0 -19
- package/dist/components/common/app-context/index.mjs +0 -2
- package/dist/components/common/app-context/provider.mjs +0 -2
- package/dist/components/common/icons/edit.mjs +0 -2
- package/dist/hooks/app-context.d.mts +0 -20
- package/dist/hooks/app-context.mjs +0 -2
- package/dist/hooks/get-app-context.d.mts +0 -19
- package/dist/hooks/get-app-context.mjs +0 -2
- package/dist/hooks/use-app-context/index.d.mts +0 -14
- package/dist/hooks/use-app-context/index.mjs +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{ShortcutGridClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){return t(e,{...
|
|
2
|
+
import{ShortcutGridClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";function n(n){let{mode:r=`renderer`,...i}=n;return t(e,{...i,mode:r})}export{n as ShortcutGrid};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{
|
|
2
|
+
"use client";import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import{useMemo as r}from"react";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{usePathname as o,useRouter as s}from"next/navigation";const c=[];function l(l){let{items:u=c,mode:d=`renderer`}=l,f=s(),p=o(),m=r(()=>d===`editor`?0:u.findIndex(e=>!!(e.domainId===`home`&&p===`/`||e.domainId===`mine`&&p.includes(`/mine`))),[u,p,d]),h=e=>{if(d!==`editor`)if(e.configType===`function`)switch(e.functionPageType){case`search`:f.push(`/search`);break;case`profile`:f.push(`/user/mine`);break;case`detail`:e.selectData&&f.push(`/video/detail/${e.selectData}`);break;case`content_list`:f.push(`/video/list?tag=${e.selectData}`);break;default:f.push(`/`)}else f.push(`/`)};return!u||u.length===0?null:i(t,{className:`fixed bottom-0 left-0 right-0 bg-bg1 border-t border-line safe-area-bottom z-50`,children:i(t,{className:`flex h-[50px] items-center justify-around`,children:u.map((r,o)=>{let s=m===o,c=r.icon;return s&&r.activeIcon&&(c=r.activeIcon),a(t,{className:`flex flex-col items-center justify-center flex-1 cursor-pointer`,onClick:h,children:[i(t,{className:`relative w-6 h-6`,children:c?i(e,{src:c,alt:r.label,fill:!0,className:`object-contain`}):i(t,{className:`w-full h-full rounded-sm ${s?`bg-theme5`:`bg-text3`}`})}),i(n,{className:`text-[10px] mt-1 truncate max-w-full px-1 ${s?`text-theme5 font-medium`:`text-text3`}`,children:r.label})]},o)})})})}export{l as TabBarClient};
|
|
@@ -14,9 +14,21 @@ import * as zod_v4_core0 from "zod/v4/core";
|
|
|
14
14
|
declare const tabBarMaterial: DefineMaterialOption<typeof TabBarServer, typeof TabBarClient, zod.ZodObject<{
|
|
15
15
|
items: zod.ZodArray<zod.ZodObject<{
|
|
16
16
|
label: zod.ZodString & SchemaHasDefaultValue;
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
domainId: zod.ZodString & SchemaHasDefaultValue;
|
|
18
|
+
icon: zod.ZodString & SchemaHasDefaultValue;
|
|
19
|
+
activeIcon: zod.ZodString & SchemaHasDefaultValue;
|
|
20
|
+
configType: zod.ZodType<"function" | "product", unknown, zod_v4_core0.$ZodTypeInternals<"function" | "product", unknown>> & SchemaHasDefaultValue;
|
|
21
|
+
functionPageType: zod.ZodType<"search" | "content_list" | "detail" | "profile", unknown, zod_v4_core0.$ZodTypeInternals<"search" | "content_list" | "detail" | "profile", unknown>> & SchemaHasDefaultValue;
|
|
22
|
+
selectData: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
|
|
23
|
+
mode: zod.ZodOptional<zod.ZodEnum<{
|
|
24
|
+
renderer: "renderer";
|
|
25
|
+
editor: "editor";
|
|
26
|
+
}>>;
|
|
19
27
|
}, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
|
|
28
|
+
mode: zod.ZodOptional<zod.ZodEnum<{
|
|
29
|
+
renderer: "renderer";
|
|
30
|
+
editor: "editor";
|
|
31
|
+
}>>;
|
|
20
32
|
}, zod_v4_core0.$strip>, "tab-bar">;
|
|
21
33
|
//#endregion
|
|
22
34
|
export { tabBarMaterial };
|
|
@@ -11,9 +11,21 @@ import * as zod_v4_core0 from "zod/v4/core";
|
|
|
11
11
|
declare const tabBarInspectorPropsSchema: zod.ZodObject<{
|
|
12
12
|
items: zod.ZodArray<zod.ZodObject<{
|
|
13
13
|
label: zod.ZodString & SchemaHasDefaultValue;
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
domainId: zod.ZodString & SchemaHasDefaultValue;
|
|
15
|
+
icon: zod.ZodString & SchemaHasDefaultValue;
|
|
16
|
+
activeIcon: zod.ZodString & SchemaHasDefaultValue;
|
|
17
|
+
configType: zod.ZodType<"function" | "product", unknown, zod_v4_core0.$ZodTypeInternals<"function" | "product", unknown>> & SchemaHasDefaultValue;
|
|
18
|
+
functionPageType: zod.ZodType<"search" | "content_list" | "detail" | "profile", unknown, zod_v4_core0.$ZodTypeInternals<"search" | "content_list" | "detail" | "profile", unknown>> & SchemaHasDefaultValue;
|
|
19
|
+
selectData: zod.ZodOptional<zod.ZodString> & SchemaHasDefaultValue;
|
|
20
|
+
mode: zod.ZodOptional<zod.ZodEnum<{
|
|
21
|
+
renderer: "renderer";
|
|
22
|
+
editor: "editor";
|
|
23
|
+
}>>;
|
|
16
24
|
}, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
|
|
25
|
+
mode: zod.ZodOptional<zod.ZodEnum<{
|
|
26
|
+
renderer: "renderer";
|
|
27
|
+
editor: "editor";
|
|
28
|
+
}>>;
|
|
17
29
|
}, zod_v4_core0.$strip>;
|
|
18
30
|
//#endregion
|
|
19
31
|
export { tabBarInspectorPropsSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineArrayItemPropSchema as e,defineComponentPropsSchema as t,defineTextPropSchema as
|
|
2
|
+
import{defineArrayItemPropSchema as e,defineComponentPropsSchema as t,defineSelectEnumPropSchema as n,defineTextPropSchema as r}from"../../../../utils/schema/schema.mjs";const i=t({items:e(t({label:r({label:`导航入口名称`,defaultValue:`入口`,description:`支持输入,中/英/数/符,不支持Emoji,4个字符`}),domainId:r({label:`导航入口域名ID`,defaultValue:``,description:`输入,英/数,10个字符`}),icon:r({label:`导航外显图标`,defaultValue:``,description:`支持上传,尺寸为1:1,支持jpg/png,50KB左右`}),activeIcon:r({label:`导航外显图标(选中)`,defaultValue:``,description:`支持上传,尺寸为1:1,支持jpg/png,50KB左右`}),configType:n([`product`,`function`],{label:`配置类型`,defaultValue:`function`}),functionPageType:n([`detail`,`search`,`profile`,`content_list`],{label:`功能页面类型`,defaultValue:`search`}),selectData:r({label:`选择数据`,defaultValue:``,required:!1})}),{label:`底部导航入口`,description:`注最少2个,最多5个,自动居中`,defaultValue:[{label:`首页`,domainId:`home`,icon:``,activeIcon:``,configType:`function`,functionPageType:`search`,selectData:``},{label:`我的`,domainId:`mine`,icon:``,activeIcon:``,configType:`function`,functionPageType:`profile`,selectData:``}]})});export{i as tabBarInspectorPropsSchema};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{TabBarClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";async function n(n){return t(e,{...
|
|
2
|
+
import{TabBarClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";async function n(n){let{mode:r=`renderer`,...i}=n;return t(e,{...i,mode:r})}export{n as TabBarServer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Box as e}from"../../../ui/box.mjs";import{Text as t}from"../../../ui/text.mjs";import n from"../../../../assets/icons/refresh.mjs";import{useMemo as r,useState as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{usePathname as s,useRouter as c,useSearchParams as l}from"next/navigation";const u=[];function d(d){let{title:f,displayCount:p=6,items:m=u,onItemClick:h}=d,g=c(),
|
|
2
|
+
"use client";import{Box as e}from"../../../ui/box.mjs";import{Text as t}from"../../../ui/text.mjs";import n from"../../../../assets/icons/refresh.mjs";import{useMemo as r,useState as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{usePathname as s,useRouter as c,useSearchParams as l}from"next/navigation";const u=[];function d(d){let{title:f,displayCount:p=6,items:m=u,onItemClick:h,mode:g=`renderer`}=d,_=g===`editor`,v=c(),y=s(),b=l(),[x,S]=i(0),C=Math.ceil(m.length/p),w=r(()=>{if(m.length<=p)return m;let e=x%C*p;return m.slice(e,e+p)},[m,p,x,C]);if(m.length===0)return null;let T=e=>{e.stopPropagation(),S(e=>e+1)},E=e=>{if(h)h(e);else{let t=new URLSearchParams(b.toString());t.set(`q`,e);let n=y.includes(`/search`)?y:`/search`;v.push(`${n}?${t.toString()}`)}};return o(e,{className:_?`bg-bg1 p-3 flex flex-col gap-3 w-full pointer-events-none`:`bg-bg1 p-3 flex flex-col gap-3 w-full`,children:[o(e,{className:`flex items-center justify-between w-full`,children:[a(t,{className:`text-[18px] font-bold text-text1 leading-[26px]`,children:f||`推荐搜索`}),m.length>p&&o(e,{className:`flex items-center gap-1 cursor-pointer active:opacity-70 transition-opacity`,onClick:T,children:[a(t,{className:`text-[14px] text-text3 leading-[22px]`,children:`换一批`}),a(n,{className:`w-3 h-3 text-text3`})]})]}),a(e,{className:`grid grid-cols-2 gap-x-1 gap-y-1 w-full`,children:w.map((n,r)=>a(e,{className:`flex items-center h-[32px] cursor-pointer active:opacity-70 transition-opacity overflow-hidden`,onClick:()=>E(n.label),children:a(t,{className:`text-[14px] text-text1 leading-[22px] truncate w-full`,children:n.label})},`${x}-${r}`))})]})}export{d as TextRecommendClient};
|
|
@@ -14,6 +14,10 @@ declare const textRecommendMaterial: DefineMaterialOption<typeof TextRecommendSe
|
|
|
14
14
|
items: zod.ZodArray<zod.ZodObject<{
|
|
15
15
|
label: zod.ZodString & SchemaHasDefaultValue;
|
|
16
16
|
}, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
|
|
17
|
+
mode: zod.ZodOptional<zod.ZodEnum<{
|
|
18
|
+
renderer: "renderer";
|
|
19
|
+
editor: "editor";
|
|
20
|
+
}>>;
|
|
17
21
|
}, zod_v4_core0.$strip>, "text-recommend">;
|
|
18
22
|
//#endregion
|
|
19
23
|
export { textRecommendMaterial };
|
|
@@ -13,6 +13,10 @@ declare const textRecommendInspectorPropsSchema: z.ZodObject<{
|
|
|
13
13
|
items: z.ZodArray<z.ZodObject<{
|
|
14
14
|
label: z.ZodString & SchemaHasDefaultValue;
|
|
15
15
|
}, z.core.$strip>> & SchemaHasDefaultValue;
|
|
16
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
17
|
+
renderer: "renderer";
|
|
18
|
+
editor: "editor";
|
|
19
|
+
}>>;
|
|
16
20
|
}, z.core.$strip>;
|
|
17
21
|
//#endregion
|
|
18
22
|
export { textRecommendInspectorPropsSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{TextRecommendClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";async function n(n){return t(e,{...
|
|
2
|
+
import{TextRecommendClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";async function n(n){let{mode:r=`renderer`,...i}=n;return t(e,{...i,mode:r})}export{n as TextRecommendServer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import e from"../../../../assets/images/frame.mjs";import{jsx as
|
|
2
|
+
"use client";import e from"../../../../assets/images/frame.mjs";import t from"../../../../assets/images/subscript.mjs";import{jsx as n,jsxs as r}from"react/jsx-runtime";import i from"next/image";const a=[];function o(o){let{title:s,items:c=a,commonPlayCount:l,commonEpisodes:u,mode:d=`renderer`}=o,f=d===`editor`;return!c||c.length===0?null:r(`div`,{className:f?`bg-bg1 px-3 py-3 pointer-events-none`:`bg-bg1 px-3 py-3`,children:[s&&n(`div`,{className:`mb-3 flex items-center justify-between`,children:n(`h2`,{className:`text-[18px] font-bold text-text1 leading-[26px]`,children:s})}),n(`div`,{className:`flex overflow-x-auto pb-2 scrollbar-hide space-x-2`,children:c.map((a,o)=>{let s=a.showPlayCount??l?.enabled,c=a.playCountDelta||l?.delta,f=a.showEpisodes??u;return r(`div`,{className:`flex-shrink-0 w-[116.67px]`,children:[r(`div`,{className:`relative aspect-[116.67/155.56] rounded-lg overflow-hidden bg-bg2`,children:[d===`editor`||a.cover?n(i,{src:a.cover||e,alt:a.title,fill:!0,sizes:`116.67px`,className:`object-cover text-[10px] text-text3`}):n(`div`,{className:`w-full h-full flex items-center justify-center text-text3 text-xs`,children:`无封面`}),(d===`editor`?!0:!!a.badge)&&n(`div`,{className:`absolute top-0 right-0 w-8 h-8`,children:n(i,{src:a.badge||t,alt:``,fill:!0,sizes:`32px`,className:`object-contain`})}),r(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent pb-1 pt-3 px-1 flex justify-between items-center`,children:[s&&c&&r(`div`,{className:`flex items-center gap-1 rounded bg-overlay px-1 py-0`,children:[n(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`10`,viewBox:`0 0 12 10`,fill:`none`,className:`shrink-0`,"aria-hidden":!0,children:n(`path`,{d:`M7.56 5.18437L5.013 6.56737C4.893 6.63337 4.761 6.66937 4.638 6.66937C4.269 6.66937 4.002 6.38737 4.002 5.99737V3.28237C4.002 2.89237 4.269 2.61037 4.638 2.61037C4.764 2.61037 4.893 2.64637 5.013 2.70937L7.572 4.09237C7.803 4.21837 7.938 4.41637 7.938 4.63237C7.938 4.85137 7.8 5.05537 7.56 5.18437ZM9.807 9.27637L2.133 8.52937C0.954 8.52937 0 7.57537 0 6.39637V2.79937C0 1.62037 0.954 0.666368 2.133 0.666368L9.81 0.000367165C10.989 0.000367165 11.943 0.954367 11.943 2.13337V7.14337C11.9422 7.70935 11.7168 8.25188 11.3163 8.65181C10.9158 9.05174 10.373 9.27637 9.807 9.27637ZM10.875 2.13337C10.875 1.99351 10.8475 1.85502 10.7939 1.72581C10.7404 1.5966 10.662 1.47919 10.5631 1.3803C10.4642 1.2814 10.3468 1.20296 10.2176 1.14944C10.0883 1.09591 9.94986 1.06837 9.81 1.06837L2.133 1.73437C1.99314 1.73437 1.85465 1.76191 1.72544 1.81544C1.59623 1.86896 1.47883 1.9474 1.37993 2.0463C1.28104 2.14519 1.20259 2.2626 1.14907 2.39181C1.09555 2.52102 1.068 2.65951 1.068 2.79937V6.39637C1.068 6.67882 1.1802 6.94971 1.37993 7.14944C1.57966 7.34916 1.85054 7.46137 2.133 7.46137L9.807 8.20837C9.94686 8.20837 10.0853 8.18082 10.2146 8.1273C10.3438 8.07378 10.4612 7.99533 10.5601 7.89644C10.659 7.79754 10.7374 7.68014 10.7909 7.55093C10.8445 7.42171 10.872 7.28323 10.872 7.14337V2.13337H10.875Z`,fill:`white`})}),n(`span`,{className:`text-white text-[12px] leading-[20px]`,children:c})]}),f&&a.contentDescription&&n(`span`,{className:`text-white text-[12px] leading-[20px]`,children:a.contentDescription})]})]}),n(`div`,{className:`mt-2 py-2`,children:n(`h3`,{className:`text-[16px] text-text1 truncate font-bold leading-[24px]`,children:a.title})})]},o)})})]})}export{o as VideoHorizontalListClient};
|
|
@@ -34,6 +34,10 @@ declare const videoHorizontalListMaterial: DefineMaterialOption<typeof VideoHori
|
|
|
34
34
|
showEpisodes: zod.ZodBoolean & SchemaHasDefaultValue;
|
|
35
35
|
badge: zod.ZodString & SchemaHasDefaultValue;
|
|
36
36
|
}, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
|
|
37
|
+
mode: zod.ZodOptional<zod.ZodEnum<{
|
|
38
|
+
renderer: "renderer";
|
|
39
|
+
editor: "editor";
|
|
40
|
+
}>>;
|
|
37
41
|
}, zod_v4_core0.$strip>, "video-horizontal-list">;
|
|
38
42
|
//#endregion
|
|
39
43
|
export { videoHorizontalListMaterial };
|
|
@@ -30,6 +30,10 @@ declare const videoHorizontalListInspectorPropsSchema: z.ZodObject<{
|
|
|
30
30
|
showEpisodes: z.ZodBoolean & SchemaHasDefaultValue;
|
|
31
31
|
badge: z.ZodString & SchemaHasDefaultValue;
|
|
32
32
|
}, z.core.$strip>> & SchemaHasDefaultValue;
|
|
33
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
34
|
+
renderer: "renderer";
|
|
35
|
+
editor: "editor";
|
|
36
|
+
}>>;
|
|
33
37
|
}, z.core.$strip>;
|
|
34
38
|
//#endregion
|
|
35
39
|
export { videoHorizontalListInspectorPropsSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{defineArrayItemPropSchema as e,defineComponentPropsSchema as t,defineNumberPropSchema as n,defineObjectPropSchema as r,defineSwitchPropSchema as i,defineTextPropSchema as a}from"../../../../utils/schema/schema.mjs";import{z as o}from"zod";const s=o.object({content:a({label:`推荐位内容`,defaultValue:``}),title:a({label:`推荐位内容名称`,defaultValue:`视频标题`}),contentDescription:a({label:`内容说明简介`,defaultValue:``}),cover:a({label:`推荐位封面`,defaultValue:``}),useVideoPoster:i({label:`沿用视频海报`,defaultValue:!0}),showPlayCount:i({label:`播放量显示`,defaultValue:!0}),playCountDelta:a({label:`播放量浮动`,defaultValue:``,required:!1}),showEpisodes:i({label:`集数展示`,defaultValue:!0}),badge:a({label:`推荐位角标`,defaultValue
|
|
2
|
+
import{defineArrayItemPropSchema as e,defineComponentPropsSchema as t,defineNumberPropSchema as n,defineObjectPropSchema as r,defineSwitchPropSchema as i,defineTextPropSchema as a}from"../../../../utils/schema/schema.mjs";import{z as o}from"zod";const s=o.object({content:a({label:`推荐位内容`,defaultValue:``}),title:a({label:`推荐位内容名称`,defaultValue:`视频标题`}),contentDescription:a({label:`内容说明简介`,defaultValue:``}),cover:a({label:`推荐位封面`,defaultValue:``}),useVideoPoster:i({label:`沿用视频海报`,defaultValue:!0}),showPlayCount:i({label:`播放量显示`,defaultValue:!0}),playCountDelta:a({label:`播放量浮动`,defaultValue:``,required:!1}),showEpisodes:i({label:`集数展示`,defaultValue:!0}),badge:a({label:`推荐位角标`,defaultValue:``,description:`角标图片地址,可通过低代码平台配置上传;留空则使用默认角标图`})}),c=t({title:a({label:`推荐位名称`,defaultValue:`推荐视频`}),moduleCount:n({label:`推荐模块数`,defaultValue:1}),layout:r({enabled:i({label:`组件铺设`,defaultValue:!1}),tag:a({label:`取数范围标签`,defaultValue:`动作`,required:!1})},{label:`组件铺设`,defaultValue:{enabled:!1,tag:`动作`}}),commonPlayCount:r({enabled:i({label:`通用播放量`,defaultValue:!0}),delta:a({label:`播放量浮动值`,defaultValue:``,required:!1})},{label:`通用播放量`,defaultValue:{enabled:!0,delta:``}}),commonEpisodes:i({label:`通用集数`,defaultValue:!0}),items:e(s,{label:`推荐位模块`,defaultValue:[{content:``,title:`视频标题 1`,contentDescription:``,cover:``,useVideoPoster:!0,showPlayCount:!0,showEpisodes:!0,badge:``},{content:``,title:`视频标题 2`,contentDescription:``,cover:``,useVideoPoster:!0,showPlayCount:!0,showEpisodes:!0,badge:``},{content:``,title:`视频标题 3`,contentDescription:``,cover:``,useVideoPoster:!0,showPlayCount:!0,showEpisodes:!0,badge:``}]})});export{c as videoHorizontalListInspectorPropsSchema};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{VideoHorizontalListClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";import{getTranslations as n}from"next-intl/server";async function r(r){let
|
|
2
|
+
import{VideoHorizontalListClient as e}from"./client.mjs";import{jsx as t}from"react/jsx-runtime";import{getTranslations as n}from"next-intl/server";async function r(r){let{mode:i=`renderer`,...a}=r,o=await n(`components.biz.business.videoHorizontalList`);return t(e,{...a,mode:i,allEpisodesText:o.raw(`allEpisodes`),updatedToText:o.raw(`updatedTo`)})}export{r as VideoHorizontalListServer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{useRequest as t}from"../../../../hooks/query/use-query.mjs";import{
|
|
2
|
+
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{useRequest as t}from"../../../../hooks/query/use-query.mjs";import{buttonVariants as n}from"./variants.mjs";import{jsx as r}from"react/jsx-runtime";function i(i){let{text:a,disabled:o,loading:s,variant:c=`default`,mode:l=`renderer`}=i;console.log({clientMode:l,text:a});function u(){l!==`editor`&&console.log(`invoke`)}return t([`demo`],()=>new Promise(e=>{setTimeout(()=>{e({message:`Hello World`})},200)}),{enabled:l===`renderer`}),l===`editor`?r(`div`,{children:`editor preview button`}):r(`button`,{className:e(n({variant:c})),onClick:u,disabled:o||s,children:a})}export{i as ButtonClient};
|
|
@@ -19,6 +19,10 @@ declare const exampleButtonMaterial: DefineMaterialOption<typeof Button, typeof
|
|
|
19
19
|
info: zod.ZodOptional<zod.ZodObject<{
|
|
20
20
|
readonly address: zod.ZodOptional<zod.ZodString>;
|
|
21
21
|
}, zod_v4_core0.$strip>> & SchemaHasDefaultValue;
|
|
22
|
+
mode: zod.ZodOptional<zod.ZodEnum<{
|
|
23
|
+
renderer: "renderer";
|
|
24
|
+
editor: "editor";
|
|
25
|
+
}>>;
|
|
22
26
|
}, zod_v4_core0.$strip>, "example-button">;
|
|
23
27
|
//#endregion
|
|
24
28
|
export { exampleButtonMaterial };
|
|
@@ -18,6 +18,10 @@ declare const buttonInspectorPropsSchema: z$1.ZodObject<{
|
|
|
18
18
|
info: z$1.ZodOptional<z$1.ZodObject<{
|
|
19
19
|
readonly address: z$1.ZodOptional<z$1.ZodString>;
|
|
20
20
|
}, z$1.core.$strip>> & SchemaHasDefaultValue;
|
|
21
|
+
mode: z$1.ZodOptional<z$1.ZodEnum<{
|
|
22
|
+
renderer: "renderer";
|
|
23
|
+
editor: "editor";
|
|
24
|
+
}>>;
|
|
21
25
|
}, z$1.core.$strip>;
|
|
22
26
|
declare const buttonInspectorDefaultProps: {
|
|
23
27
|
text: string;
|
|
@@ -3,6 +3,9 @@ import { ButtonProps } from "./schema.mjs";
|
|
|
3
3
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
|
|
5
5
|
//#region components/biz/example/button/server.d.ts
|
|
6
|
-
declare function Button(
|
|
6
|
+
declare function Button({
|
|
7
|
+
mode,
|
|
8
|
+
...props
|
|
9
|
+
}: ButtonProps): react_jsx_runtime0.JSX.Element;
|
|
7
10
|
//#endregion
|
|
8
11
|
export { Button };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{
|
|
2
|
+
import{HydrationBoundary as e}from"../../../../hooks/query/hydration-boundary.mjs";import{ButtonClient as t}from"./client.mjs";import{jsx as n}from"react/jsx-runtime";function r({mode:r=`renderer`,...i}){return console.log({serverMode:r}),n(e,{prefetch:[{queryKey:[`demo`],queryFn(){return new Promise(e=>{setTimeout(()=>{e({message:`Hello World`})},200)})}}],children:n(t,{...i,mode:r})})}export{r as Button};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Box as e}from"../../../ui/box.mjs";import{List as t}from"../../../ui/list.mjs";import{Text as n}from"../../../ui/text.mjs";import{normalizeTimeToMilliseconds as r}from"../../../ui/time.mjs";import{PostListItemSkeleton as i}from"../../skeleton/post-list-item-skeleton.mjs";import{PostListItem as a}from"./post-list-item.mjs";import{useIsClient as o}from"foxact/use-is-client";import{useMemo as s}from"react";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";import{useTranslations as d}from"next-intl";import f from"next/link";import{orderBy as p}from"lodash-es";function m(e){let t=r(e);if(!t)return!1;let n=new Date(t),i=new Date;return n.getFullYear()===i.getFullYear()&&n.getMonth()===i.getMonth()&&n.getDate()===i.getDate()}function h(r){let h=d(`components.ui.list`),g=o(),{list:_,loading:v,hasMore:y=!1,loadMore:b,isEditMode:x,selectedIds:S,onToggleSelection:C}=r,
|
|
2
|
+
"use client";import{Box as e}from"../../../ui/box.mjs";import{List as t}from"../../../ui/list.mjs";import{Text as n}from"../../../ui/text.mjs";import{normalizeTimeToMilliseconds as r}from"../../../ui/time.mjs";import{PostListItemSkeleton as i}from"../../skeleton/post-list-item-skeleton.mjs";import{PostListItem as a}from"./post-list-item.mjs";import{useIsClient as o}from"foxact/use-is-client";import{useMemo as s}from"react";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";import{useTranslations as d}from"next-intl";import f from"next/link";import{orderBy as p}from"lodash-es";function m(e){let t=r(e);if(!t)return!1;let n=new Date(t),i=new Date;return n.getFullYear()===i.getFullYear()&&n.getMonth()===i.getMonth()&&n.getDate()===i.getDate()}function h(r){let h=d(`components.ui.list`),g=o(),{list:_,loading:v,hasMore:y=!1,loadMore:b,isEditMode:x,selectedIds:S,onToggleSelection:C,emptyText:w}=r,T=s(()=>p(_,[`publishTime`],[`desc`]),[_]),{todayList:E,earlierList:D}=s(()=>{if(!g)return{todayList:[],earlierList:T};let e=[],t=[];for(let n of _)m(n.publishTime)?e.push(n):t.push(n);return{todayList:p(e,[`publishTime`],[`desc`]),earlierList:p(t,[`publishTime`],[`desc`])}},[g,_,T]),O=!!v&&_.length===0,k=g;return O?l(e,{className:`bg-bg1`,children:Array.from({length:6}).map((e,t)=>l(i,{isEditMode:x},`post-list-item-skeleton-${t}`))}):u(t,{loading:v,loadMore:b,hasMore:y,empty:`no-content`,emptyText:w||h(`postList.empty`),children:[k&&E.length>0&&u(c,{children:[l(e,{className:` `,children:l(n,{className:`text-lg text-text1`,children:h(`postList.today`)})}),E.map(e=>x?l(a,{...e,isEditMode:x,isSelected:S?.has(e.id),onToggle:()=>C?.(e.id)},e.id):l(f,{href:`/post/${e.id}`,children:l(a,{...e,isEditMode:x,isSelected:S?.has(e.id),onToggle:()=>C?.(e.id)})},e.id))]}),D.length>0&&u(c,{children:[l(e,{className:` `,children:l(n,{className:`text-lg text-text1`,children:h(`postList.earlier`)})}),D.map(e=>x?l(a,{...e,isEditMode:x,isSelected:S?.has(e.id),onToggle:()=>C?.(e.id)},e.id):l(f,{href:`/post/${e.id}`,children:l(a,{...e,isEditMode:x,isSelected:S?.has(e.id),onToggle:()=>C?.(e.id)})},e.id))]})]})}export{h as PostList};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Box as e}from"../../../ui/box.mjs";import{List as t}from"../../../ui/list.mjs";import{Text as n}from"../../../ui/text.mjs";import{normalizeTimeToMilliseconds as r}from"../../../ui/time.mjs";import{VideoListItemSkeleton as i}from"../../skeleton/video-list-item-skeleton.mjs";import{VideoListItem as a}from"./video-list-item.mjs";import{useIsClient as o}from"foxact/use-is-client";import{useMemo as s}from"react";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";import{useTranslations as d}from"next-intl";import f from"next/link";import{orderBy as p}from"lodash-es";function m(e){let t=r(e);if(!t)return!1;let n=new Date(t),i=new Date;return n.getFullYear()===i.getFullYear()&&n.getMonth()===i.getMonth()&&n.getDate()===i.getDate()}function h(r){let h=d(`components.ui.list`),g=o(),{list:_,showVideoProgress:v,loading:y,hasMore:b=!1,loadMore:x,isEditMode:S,selectedIds:C,onToggleSelection:w}=r,
|
|
2
|
+
"use client";import{Box as e}from"../../../ui/box.mjs";import{List as t}from"../../../ui/list.mjs";import{Text as n}from"../../../ui/text.mjs";import{normalizeTimeToMilliseconds as r}from"../../../ui/time.mjs";import{VideoListItemSkeleton as i}from"../../skeleton/video-list-item-skeleton.mjs";import{VideoListItem as a}from"./video-list-item.mjs";import{useIsClient as o}from"foxact/use-is-client";import{useMemo as s}from"react";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";import{useTranslations as d}from"next-intl";import f from"next/link";import{orderBy as p}from"lodash-es";function m(e){let t=r(e);if(!t)return!1;let n=new Date(t),i=new Date;return n.getFullYear()===i.getFullYear()&&n.getMonth()===i.getMonth()&&n.getDate()===i.getDate()}function h(r){let h=d(`components.ui.list`),g=o(),{list:_,showVideoProgress:v,loading:y,hasMore:b=!1,loadMore:x,isEditMode:S,selectedIds:C,onToggleSelection:w,emptyText:T}=r,E=s(()=>p(_,[`publishTime`],[`desc`]),[_]),{todayList:D,earlierList:O}=s(()=>{if(!g)return{todayList:[],earlierList:E};let e=[],t=[];for(let n of _)m(n.publishTime)?e.push(n):t.push(n);return{todayList:p(e,[`publishTime`],[`desc`]),earlierList:p(t,[`publishTime`],[`desc`])}},[g,_,E]),k=!!y&&_.length===0,A=g;return k?l(e,{className:`bg-bg1`,children:Array.from({length:6}).map((e,t)=>l(i,{isEditMode:S,showVideoProgress:v},`video-list-item-skeleton-${t}`))}):u(t,{loading:y,loadMore:x,hasMore:b,empty:`no-content`,emptyText:T||h(`videoList.empty`),children:[A&&D.length>0&&u(c,{children:[l(e,{className:` `,children:l(n,{className:`text-lg text-text1`,children:h(`videoList.today`)})}),D.map(e=>S?l(a,{showVideoProgress:v,isEditMode:S,isSelected:C?.has(e.id),...e,onToggle:()=>w?.(e.id)},e.id):l(f,{href:`/video/${e.id}/${e.title}`,children:l(a,{showVideoProgress:v,isEditMode:S,isSelected:C?.has(e.id),...e,onToggle:()=>w?.(e.id)},e.id)},e.id))]}),O.length>0&&u(c,{children:[l(e,{className:` `,children:l(n,{className:`text-lg text-text1`,children:h(`videoList.earlier`)})}),O.map(e=>S?l(a,{showVideoProgress:v,isEditMode:S,isSelected:C?.has(e.id),...e,onToggle:()=>w?.(e.id)},e.id):l(f,{href:`/video/${e.id}/${e.title}`,children:l(a,{showVideoProgress:v,isEditMode:S,isSelected:C?.has(e.id),...e,onToggle:()=>w?.(e.id)},e.id)},e.id))]})]})}export{h as VideoList};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Button as e}from"../../ui/button.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as n,pCommunityCreateCollection as r,pCommunityUpdateCollection as i}from"../../../service/generated/client.mjs";import{
|
|
2
|
+
"use client";import{Button as e}from"../../ui/button.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as n,pCommunityCreateCollection as r,pCommunityUpdateCollection as i}from"../../../service/generated/client.mjs";import{Box as a}from"../../ui/box.mjs";import{InputGroup as o,InputGroupAddon as s,InputGroupTextarea as c}from"../../ui/input-group.mjs";import{Field as l,FieldLabel as u}from"../../ui/field.mjs";import{useDeleteRequest as d,useRequest as f}from"../../../hooks/query/use-query.mjs";import{HeaderNav as p}from"../../common/header-nav/client.mjs";import{useEffect as m,useRef as h,useState as g}from"react";import{jsx as _,jsxs as v}from"react/jsx-runtime";import{toast as y}from"sonner";import{useTranslations as b}from"next-intl";import{useRouter as x}from"next/navigation";function S({mode:S=`create`,collectionId:C}){let w=b(`components.pages.collectionCreate`),T=x(),{userId:E}=t(),D=d();h(null);let O=S===`edit`&&!!C,k=h(!1),[A,j]=g(!1),[M,N]=g(!1),[P,F]=g(``),[I,L]=g({title:``,description:``}),R=f([`collection-detail`,C],()=>n({collection_id:C}),{enabled:!!(O&&C)}).data?.data?.data?.collection;m(()=>{!O||k.current||!R||(L({title:R.title??``,description:R.description??``}),F(R.cover_image??``),k.current=!0)},[R,O]);function z(e,t){L(n=>({...n,[e]:t}))}async function B(){if(A)return;let e=I.title.trim(),t=I.description.trim();if(!e){y.error(w(`form.titleRequired`));return}if(O&&!C){y.error(w(`form.collectionNotFound`));return}try{j(!0);let n=y.loading(w(O?`form.saving`:`form.creating`)),a=O?await i({collection_id:C,title:e,description:t,cover_image:P}):await r({title:e,description:t,cover_image:P});if(a.code===0){y.success(w(O?`form.saveSuccess`:`form.createSuccess`),{id:n}),E&&D([`user-profile`,`mine`,E,`user-collection-created`,E]),O&&C&&D([`collection-detail`,C]),T.back();return}y.error(a.message||w(O?`form.saveFailed`:`form.createFailed`),{id:n})}catch(e){console.error(O?`编辑合集失败`:`创建合集失败`,e),y.error(w(O?`form.saveFailed`:`form.createFailed`))}finally{j(!1)}}return v(a,{className:`min-h-screen !bg-bg2`,children:[_(p,{title:w(O?`form.editTitle`:`form.createTitle`),className:`!bg-bg2`,rightChild:_(e,{onClick:B,disabled:A||M,children:w(A?O?`form.saving`:`form.creating`:O?`form.save`:`form.create`)})}),v(a,{className:`pb-3`,children:[v(l,{className:`!bg-bg2 px-3 border-none`,children:[_(u,{required:!0,children:w(`form.label`)}),v(o,{children:[_(c,{className:`!bg-bg1 p-2.5`,maxLength:50,placeholder:w(`form.titlePlaceholder`),value:I.title,onChange:e=>z(`title`,e.target.value)}),_(s,{className:`!bg-bg1`,align:`block-end`,children:_(`div`,{className:`text-right w-full`,children:v(`span`,{className:`text-xs`,children:[I.title.length,`/50`]})})})]})]}),v(l,{className:`border-none px-3 bg-bg2! `,children:[_(u,{children:w(`form.descriptionLabel`)}),v(o,{children:[_(c,{className:`!bg-bg1 p-2.5`,maxLength:100,placeholder:w(`form.descriptionPlaceholder`),value:I.description,onChange:e=>z(`description`,e.target.value)}),_(s,{className:`!bg-bg1`,align:`block-end`,children:_(`div`,{className:`text-right w-full`,children:v(`span`,{className:`text-xs`,children:[I.description.length,`/100`]})})})]})]})]})]})}export{S as CollectionCreateForm};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{
|
|
2
|
+
"use client";import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Checkbox as n}from"../../../ui/checkbox.mjs";import{Text as r}from"../../../ui/text.mjs";import{VideoListItem as i}from"../../../common/list/video-list/video-list-item.mjs";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{useTranslations as s}from"next-intl";import c from"next/link";const l=[];function u(e){return Number.isFinite(e)?e.toFixed(1):`--`}function d(e){return e===1}function f(f){let{title:p,coverImage:m,score:h=0,isMovie:g=!1,collectedAt:_,tags:v=l,id:y,type:b,duration:x=0,authorName:S=``,viewCount:C=0,publishTime:w,is_more_link:T=!1,seriesNum:E,isEditMode:D=!1,isSelected:O=!1,onToggleSelection:k}=f,A=s(`components.pages.collectionDetail`);function j(){k?.(y)}function M(e){e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),j())}function N(e){e.stopPropagation(),j()}return d(b)?D?a(t,{role:`button`,tabIndex:0,className:`w-full text-left`,onClick:j,onKeyDown:M,children:o(t,{className:`flex items-start gap-2`,children:[a(`button`,{type:`button`,className:`-m-2 p-2 shrink-0 self-center`,onClick:N,children:a(n,{checked:O,className:`pointer-events-none`})}),a(t,{className:`flex-1 min-w-0`,children:a(i,{id:y,title:p,coverImage:m,duration:x,authorName:S,viewCount:C,publishTime:w??_??``,is_more_link:T,seriesNum:E,showVideoProgress:!1})})]})}):a(c,{className:`block`,href:`/video/${y}/${p}`,children:a(i,{id:y,title:p,coverImage:m,duration:x,authorName:S,viewCount:C,publishTime:w??_??``,is_more_link:T,seriesNum:E,showVideoProgress:!1})}):D?a(t,{role:`button`,tabIndex:0,className:`w-full text-left`,onClick:j,onKeyDown:M,children:o(t,{className:`flex items-start gap-2 py-1.5`,children:[a(`button`,{type:`button`,className:`-m-2 p-2 shrink-0 self-center`,onClick:N,children:a(n,{checked:O,className:`pointer-events-none`})}),o(t,{className:`flex-1 min-w-0 flex items-start gap-3`,children:[a(t,{className:`relative w-32 h-20 shrink-0 rounded-lg overflow-hidden bg-gray-100`,children:a(e,{src:m||`/empty/default-cover.png`,alt:p||A(`detail.coverAlt`),fill:!0,className:`object-cover`})}),o(t,{className:`flex-1 min-w-0 flex flex-col gap-1.5`,children:[o(t,{className:`flex justify-between `,children:[a(r,{className:`text-base font-bold text-text1 line-clamp-1`,dangerouslySetInnerHTML:{__html:p}}),g&&a(r,{className:`text-xl font-bold text-[#ff9f1a]`,children:u(h)})]}),a(t,{className:`flex flex-wrap gap-1`,children:v.map(e=>a(t,{className:`px-2 py-0.5 rounded-full scale-90 text-sm text-[rgb(226,76,37)] bg-[rgba(226,76,37,.3)] `,children:e},e))})]})]})]})}):a(t,{className:`pt-2`,children:o(c,{className:`flex items-start gap-3 py-3`,href:b===1?`/video/${y}/${p}`:`/post/${y}`,children:[a(t,{className:`relative w-32 h-20 shrink-0 rounded-lg overflow-hidden bg-gray-100`,children:a(e,{src:m||`/empty/default-cover.png`,alt:p||A(`detail.coverAlt`),fill:!0,className:`object-cover`})}),o(t,{className:`flex-1 min-w-0 flex flex-col gap-1.5`,children:[o(t,{className:`flex justify-between `,children:[a(r,{className:`text-base font-bold text-text1 line-clamp-1`,dangerouslySetInnerHTML:{__html:p}}),g&&a(r,{className:`text-xl font-bold text-[#ff9f1a]`,children:u(h)})]}),a(t,{className:`flex flex-wrap gap-1`,children:v.map(e=>a(t,{className:`px-2 py-0.5 rounded-full scale-90 text-sm text-[rgb(226,76,37)] bg-[rgba(226,76,37,.3)] `,children:e},e))})]})]})})}export{f as CollectionDetailCard};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{Button as e}from"../../ui/button.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as n,gUserViewUserInfo as r,pCommunityDeleteCollection as i,pCommunityRemoveContentFromCollection as a,pCommunitySubscribeCollection as o}from"../../../service/generated/client.mjs";import{
|
|
2
|
+
"use client";import{Button as e}from"../../ui/button.mjs";import{useUserStore as t}from"../../../store/modules/user-store.mjs";import{gCommunityGetCollectionInfo as n,gUserViewUserInfo as r,pCommunityDeleteCollection as i,pCommunityRemoveContentFromCollection as a,pCommunitySubscribeCollection as o,pInteractionBatchDeleteCollects as s}from"../../../service/generated/client.mjs";import{Box as c}from"../../ui/box.mjs";import{Checkbox as ee}from"../../ui/checkbox.mjs";import{Drawer as te,DrawerContent as ne,DrawerDescription as re,DrawerTitle as ie}from"../../ui/drawer.mjs";import{List as ae}from"../../ui/list.mjs";import{Text as l}from"../../ui/text.mjs";import{useDeleteRequest as oe,useMutation as u,useRequest as d,useUpdateRequest as se}from"../../../hooks/query/use-query.mjs";import{useLoginModalStore as ce}from"../../../store/modules/login-modal-store.mjs";import{ShareDrawer as le}from"../../common/share-popup/share-drawer.mjs";import{SharePlatformEnum as f}from"../../../types/share.mjs";import p from"../../../utils/share-manager.mjs";import{HeaderNav as m}from"../../common/header-nav/client.mjs";import{MoreIcon as h}from"../../common/icons/more.mjs";import{CollectionDetailCard as g}from"./_components/collection-detail-card.mjs";import{useMemo 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 ue}from"next-intl";import{useRouter as S,useSearchParams as de}from"next/navigation";function C(e){if(e.cover_image)return e.cover_image;let t=``;return e.medias?.find(e=>e?(!e.is_video&&!t&&e.media_url&&(t=e.media_url),!!e.cover_image):!1)?.cover_image||t}function w(e){let t=e.detail.info?.video_duration;if(typeof t==`number`&&Number.isFinite(t)&&t>0)return Math.floor(t);let n=e.medias?.find(e=>{let t=e?.video_duration;return typeof t==`number`&&Number.isFinite(t)&&t>0})?.video_duration;return typeof n==`number`&&Number.isFinite(n)&&n>0?Math.floor(n):0}function T(e){let t=e.detail.info?.play_count;if(typeof t==`number`&&Number.isFinite(t))return Math.max(0,Math.floor(t));let n=e.detail.view_count;return typeof n==`number`&&Number.isFinite(n)?Math.max(0,Math.floor(n)):0}function fe(e){let t=e.detail,n=t.info,r=n?.cover_image||t.cover_image||C(e),i=n?.text||n?.title||t.title||t.content||``,a=t.author_score??0,o=t.tags??[];return{id:e.content_id?String(e.content_id):String(e.id),title:i,type:e.type,coverImage:r,score:a,collectedAt:t.create_time,tags:o,duration:w(e),viewCount:T(e),publishTime:t.create_time||t.update_time||``,is_more_link:n?.is_more_link??!1,authorName:``}}function E({id:C}){let w=ue(`components.pages.collectionDetail`),T=S(),E=de(),{userId:D,isLogin:O}=t(),{open:k}=ce(),A=oe();se();let j=d([`collection-detail`,C],()=>n({collection_id:C})),M=j.data?.data?.data?.collection?.user_id,N=!!(M&&D&&String(M)===String(D)),P=d([`user-info`,M],()=>r({target_user_id:M,user_id:M})),[F,I]=v(!1),[L,R]=v(!1),[z,B]=v(!1),[V,H]=v(()=>new Set),[U,W]=v(null),G=j.data?.data?.data?.collection,K=G?.contents,q=_(()=>K?K.map(e=>({content_id:e.content_id,id:Number(e.content_id),detail:e,type:Number(e.source_type??0),medias:e.medias,cover_image:e.cover_image})):[],[K]).map(fe),J=_(()=>new Set(q.map(e=>e.id)),[q]),Y=J.size>0&&V.size===J.size;G?.cover_image,G?.content_count,G?.is_subscribe;let{mutateAsync:pe,isPending:me}=u(async e=>await o({collection_id:C,subscribe:e})),{mutateAsync:he,isPending:ge}=u(async e=>await a({collection_id:C,content_id:e})),{mutateAsync:_e,isPending:X}=u(async e=>await i({collection_id:e})),{mutateAsync:ve,isPending:Z}=u(async e=>await s({app_id:0,user_id:D,folder_id:C,content_type:1,content_ids:e})),Q=P.data?.data;Q?.avatar,Q?.nick_name;let ye=N&&G?.is_default===!1;function be(e){W({kind:`content`,id:e.id,type:e.type,title:e.title,isCollected:!0}),I(!0)}function xe(){if(N){R(!0);return}W({kind:`collection`,id:C}),I(!0)}function Se(){if(!O||!D){x.error(w(`detail.pleaseLogin`)),k();return}if(!N){x.error(w(`detail.operationFailed`));return}R(!1),H(new Set),B(!0)}function Ce(){H(new Set),B(!1)}function we(e){H(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function Te(){if(Y){H(new Set);return}H(new Set(J))}async function Ee(){if(!(V.size===0||Z)){if(!O||!D){x.error(w(`detail.pleaseLogin`)),k();return}try{let e=await ve(Array.from(V));if(e.code===0){x.success(w(`detail.uncollectSuccess`)),A([`collection-detail`,C]),A([`user-profile`,`mine`]),A([`user-profile`,`profile`,M]),H(new Set),B(!1);return}x.error(e.message||w(`detail.uncollectFailed`))}catch(e){console.error(`批量取消收藏失败`,e),x.error(w(`detail.operationFailed`))}}}function De(e){if(typeof window>`u`)return``;if(e.kind===`collection`)return`${window.location.origin}/collection/${e.id}`;let t=e.title?encodeURIComponent(e.title):`detail`,n=e.type===1?`/video/${e.id}/${t}`:`/post/${e.id}`;return`${window.location.origin}${n}`}function $(e){if(!U)return;let t=De(U);t&&p.showSharePopup({type:e,data:{id:U.id},copyUrl:t})}function Oe(){$(f.WECHAT)}function ke(){$(f.QQ)}function Ae(){$(f.WECHAT_MOMENTS)}function je(){if(!ge){if(!O||!D){x.error(w(`detail.pleaseLogin`)),k();return}!U||U.kind!==`content`||he(U.id).then(e=>{if(e.code===0){x.success(w(`detail.uncollectSuccess`)),A([`collection-detail`,C]),W(e=>e&&{...e,isCollected:!1});return}x.error(e.message||w(`detail.uncollectFailed`))}).catch(e=>{console.error(`取消收藏失败`,e),x.error(w(`detail.operationFailed`))})}}function Me(){let e=new URLSearchParams(E.toString());e.set(`id`,C),e.set(`type`,`edit`),T.push(`/collection/create?${e.toString()}`),R(!1),I(!1)}async function Ne(){if(!X){if(!O||!D){x.error(w(`detail.pleaseLogin`)),k();return}if(!ye){x.error(w(`detail.defaultCollectionDeleteNotSupported`));return}try{let e=await _e(C);if(e.code===0){x.success(w(`detail.deleteSuccess`)),A([`collection-detail`,C]),A([`user-profile`,`mine`]),A([`user-profile`,`profile`,M]),R(!1),I(!1),T.back();return}x.error(e.message||w(`detail.deleteFailed`))}catch(e){console.error(`删除合集失败`,e),x.error(w(`detail.operationFailed`))}}}return b(c,{className:`flex flex-col bg-bg1 min-h-screen ${z?`pb-28`:`pb-6`}`,children:[y(m,{title:G?.title??``,rightChild:N?z?y(`button`,{type:`button`,onClick:Ce,className:`px-2 py-1 text-sm text-text1`,children:w(`detail.done`)}):y(`button`,{type:`button`,onClick:xe,className:`p-2`,children:y(h,{})}):void 0}),y(c,{className:`px-4 flex items-start gap-4`,children:b(c,{className:`flex-1 flex flex-col gap-2`,children:[y(c,{className:`flex items-center justify-between`,children:y(l,{className:`text-xl text-text1 font-medium line-clamp-2`,children:G?.title??w(`detail.defaultTitle`)})}),y(c,{className:`text-text2 text-sm`,children:G?.description})]})}),y(c,{className:`px-4 ${z?`pb-20`:``}`,children:y(ae,{loading:j.isLoading,hasMore:!1,emptyText:w(`detail.emptyContent`),className:`divide-y divide-text1/5`,children:q.map(e=>y(g,{...e,onOpenShare:be,isEditMode:z,isSelected:V.has(e.id),onToggleSelection:we},e.id))})}),z&&b(c,{style:{paddingBottom:`calc(12px + env(safe-area-inset-bottom, 0px))`},className:`fixed left-0 right-0 bottom-0 z-10 bg-bg1 border-t border-text1/10 px-4 pt-3 flex items-center justify-between`,children:[b(c,{className:`flex items-center gap-2`,children:[y(ee,{checked:Y,onCheckedChange:Te}),y(l,{className:`text-sm text-text1`,children:w(`detail.selectAll`)})]}),y(e,{className:`rounded-full py-2.5 h-auto px-6.5`,variant:V.size>0?`default`:`outline`,disabled:V.size===0||Z,onClick:Ee,children:w(Z?`detail.deleting`:`detail.delete`)})]}),b(te,{open:L,onOpenChange:R,children:[y(ie,{className:`hidden`,children:w(`detail.collectionManageTitle`)}),y(re,{className:`hidden`,children:w(`detail.collectionManageTitle`)}),b(ne,{className:`z-[2000]`,children:[b(c,{className:`px-4 py-5`,children:[y(l,{className:`text-sm text-text1 text-center font-medium`,children:w(`detail.collectionManageTitle`)}),b(c,{className:`mt-4 border-t border-text1/10`,children:[y(`button`,{className:`w-full text-left py-4 border-b border-text1/10`,onClick:Me,children:y(l,{className:`text-text1`,children:w(`detail.editCollection`)})}),y(`button`,{className:`w-full text-left py-4 border-b border-text1/10`,onClick:Se,children:y(l,{className:`text-text1`,children:w(`detail.manageCollection`)})}),y(`button`,{className:`w-full text-left py-4 ${X?`opacity-60 cursor-not-allowed`:``}`,onClick:Ne,disabled:X,children:y(l,{className:`text-destructive`,children:w(X?`detail.deleting`:`detail.deleteCollection`)})})]})]}),y(e,{className:`w-full h-auto py-4 text-lg text-text1`,size:`lg`,onClick:()=>R(!1),variant:`secondary`,children:w(`detail.cancel`)})]})]}),y(le,{isShowCollect:U?.kind===`content`&&N&&O,isCollected:U?.isCollected,open:F,onOpenChange:I,onShareWeChat:Oe,onShareQQ:ke,onShareMoments:Ae,onUncollect:je})]})}export{E as CollectionDetail};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{Button as t}from"../../../ui/button.mjs";import{useUserStore as n}from"../../../../store/modules/user-store.mjs";import{pUserUserFeedback as r}from"../../../../service/generated/client.mjs";import{compressImage as i}from"../../../../utils/image-compression.mjs";import{uploadFile as a}from"../../../../utils/upload-file.mjs";import{Image as o}from"../../../ui/image.mjs";import{Box as s}from"../../../ui/box.mjs";import{InputGroup as c,InputGroupAddon as l,InputGroupInput as u,InputGroupTextarea as d}from"../../../ui/input-group.mjs";import{Field as f,FieldLabel as p}from"../../../ui/field.mjs";import{Text as m}from"../../../ui/text.mjs";import{HeaderNav as h}from"../../../common/header-nav/client.mjs";import{AddIcon as g}from"../../../common/icons/add.mjs";import{useRef as _,useState as v}from"react";import{XIcon as y}from"lucide-react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{toast as S}from"sonner";import{useTranslations as C}from"next-intl";import{useRouter as w}from"next/navigation";const T=new Set([`image/jpeg`,`image/jpg`,`image/png`]),E=new Set([`jpg`,`jpeg`,`png`]);function D(e){let t=e.type.toLowerCase(),n=e.name.split(`.`).pop()?.toLowerCase()||``;return t?T.has(t):E.has(n)}function O({className:T}={}){let E=C(`components.pages.feedback.components`),O=w(),{userId:k}=n(),A=_(null),[j,M]=v({content:``,contact:``}),[N,P]=v([]),[F,I]=v(!1),[L,R]=v(!1),z=!j.content.trim();function B(e,t){M(n=>({...n,[e]:t}))}function V(){L||F||N.length>=3||A.current?.click()}async function H(e){let t=Array.from(e.target.files??[]);if(!t.length)return;let n=3-N.length;if(n<=0){e.target&&(e.target.value=``);return}let r=t.slice(0,n),o=r.filter(D);if(!o.length){S.error(E(`feedbackForm.imageTypeInvalid`)),e.target&&(e.target.value=``);return}o.length!==r.length&&S.error(E(`feedbackForm.imageTypeInvalid`));try{R(!0);let e=[],t=!1;for(let n of o)try{let t=await a(await i(n),1);e.push(t.objectKey)}catch(e){console.error(`上传截图失败`,e),t=!0}e.length&&P(t=>[...t,...e].slice(0,3)),t&&S.error(E(`feedbackForm.screenshotUploadFailed`))}catch(e){console.error(`上传截图失败`,e),S.error(E(`feedbackForm.screenshotUploadFailed`))}finally{R(!1),e.target&&(e.target.value=``)}}function U(e){L||F||P(t=>t.filter((t,n)=>n!==e))}async function W(){let e=j.content.trim(),t=j.contact.trim();if(!e){S.error(E(`feedbackForm.missingFeedback`));return}if(e.length<4){S.error(E(`feedbackForm.contentMinLength`));return}if(!N.length){S.error(E(`feedbackForm.missingScreenshot`));return}if(F)return;let n=S.loading(E(`feedbackForm.loading`));try{I(!0);let i=await r({user_id:k,feedback_content:e,feedback_screenshots:N.length?N:void 0,contact_info:t||void 0});if(i.code===0){M({content:``,contact:``}),P([]),O.push(`/settings`),S.success(E(`feedbackForm.submitsuccess`),{id:n});return}S.error(i.message||E(`feedbackForm.message`),{id:n})}catch(e){console.error(`提交反馈失败`,e),S.error(e.message||E(`feedbackForm.message`),{id:n})}finally{I(!1)}}return x(s,{className:e(`min-h-screen bg-bg2`,T),children:[b(h,{title:E(`feedbackForm.title`),className:`!bg-bg2`,rightChild:b(t,{onClick:W,disabled:F||L||z,children:E(F?`feedbackForm.loading`:`feedbackForm.submit`)})}),x(s,{className:`pb-3`,children:[x(f,{className:`bg-bg2 px-3 border-none`,children:[b(p,{required:!0,children:E(`feedbackForm.label`)}),x(c,{children:[b(d,{className:`!bg-bg1 p-2.5`,maxLength:500,placeholder:E(`feedbackForm.placeholder`),value:j.content,onChange:e=>B(`content`,e.target.value)}),b(l,{className:`!bg-bg1`,align:`block-end`,children:b(`div`,{className:`text-right w-full`,children:x(`span`,{className:`text-xs`,children:[j.content.length,`/500`]})})})]})]}),x(f,{className:`bg-bg2 px-3 border-none`,children:[b(p,{required:!0,children:E(`feedbackForm.screenshotLabel`)}),b(`input`,{ref:A,type:`file`,multiple:!0,accept:`image/jpeg,image/jpg,image/png,.jpg,.jpeg,.png`,className:`hidden`,onChange:H}),x(s,{className:`mt-2 grid grid-cols-3 gap-2`,children:[N.map((e,n)=>x(s,{className:`relative overflow-hidden rounded-lg border border-line1 !bg-bg1 aspect-
|
|
2
|
+
"use client";import{cn as e}from"../../../../utils/cn.mjs";import{Button as t}from"../../../ui/button.mjs";import{useUserStore as n}from"../../../../store/modules/user-store.mjs";import{pUserUserFeedback as r}from"../../../../service/generated/client.mjs";import{compressImage as i}from"../../../../utils/image-compression.mjs";import{uploadFile as a}from"../../../../utils/upload-file.mjs";import{Image as o}from"../../../ui/image.mjs";import{Box as s}from"../../../ui/box.mjs";import{InputGroup as c,InputGroupAddon as l,InputGroupInput as u,InputGroupTextarea as d}from"../../../ui/input-group.mjs";import{Field as f,FieldLabel as p}from"../../../ui/field.mjs";import{Text as m}from"../../../ui/text.mjs";import{HeaderNav as h}from"../../../common/header-nav/client.mjs";import{AddIcon as g}from"../../../common/icons/add.mjs";import{useRef as _,useState as v}from"react";import{XIcon as y}from"lucide-react";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{toast as S}from"sonner";import{useTranslations as C}from"next-intl";import{useRouter as w}from"next/navigation";const T=new Set([`image/jpeg`,`image/jpg`,`image/png`]),E=new Set([`jpg`,`jpeg`,`png`]);function D(e){let t=e.type.toLowerCase(),n=e.name.split(`.`).pop()?.toLowerCase()||``;return t?T.has(t):E.has(n)}function O({className:T}={}){let E=C(`components.pages.feedback.components`),O=w(),{userId:k}=n(),A=_(null),[j,M]=v({content:``,contact:``}),[N,P]=v([]),[F,I]=v(!1),[L,R]=v(!1),z=!j.content.trim();function B(e,t){M(n=>({...n,[e]:t}))}function V(){L||F||N.length>=3||A.current?.click()}async function H(e){let t=Array.from(e.target.files??[]);if(!t.length)return;let n=3-N.length;if(n<=0){e.target&&(e.target.value=``);return}let r=t.slice(0,n),o=r.filter(D);if(!o.length){S.error(E(`feedbackForm.imageTypeInvalid`)),e.target&&(e.target.value=``);return}o.length!==r.length&&S.error(E(`feedbackForm.imageTypeInvalid`));try{R(!0);let e=[],t=!1;for(let n of o)try{let t=await a(await i(n),1);e.push(t.objectKey)}catch(e){console.error(`上传截图失败`,e),t=!0}e.length&&P(t=>[...t,...e].slice(0,3)),t&&S.error(E(`feedbackForm.screenshotUploadFailed`))}catch(e){console.error(`上传截图失败`,e),S.error(E(`feedbackForm.screenshotUploadFailed`))}finally{R(!1),e.target&&(e.target.value=``)}}function U(e){L||F||P(t=>t.filter((t,n)=>n!==e))}async function W(){let e=j.content.trim(),t=j.contact.trim();if(!e){S.error(E(`feedbackForm.missingFeedback`));return}if(e.length<4){S.error(E(`feedbackForm.contentMinLength`));return}if(!N.length){S.error(E(`feedbackForm.missingScreenshot`));return}if(F)return;let n=S.loading(E(`feedbackForm.loading`));try{I(!0);let i=await r({user_id:k,feedback_content:e,feedback_screenshots:N.length?N:void 0,contact_info:t||void 0});if(i.code===0){M({content:``,contact:``}),P([]),O.push(`/settings`),S.success(E(`feedbackForm.submitsuccess`),{id:n});return}S.error(i.message||E(`feedbackForm.message`),{id:n})}catch(e){console.error(`提交反馈失败`,e),S.error(e.message||E(`feedbackForm.message`),{id:n})}finally{I(!1)}}return x(s,{className:e(`min-h-screen bg-bg2`,T),children:[b(h,{title:E(`feedbackForm.title`),className:`!bg-bg2`,rightChild:b(t,{onClick:W,disabled:F||L||z,children:E(F?`feedbackForm.loading`:`feedbackForm.submit`)})}),x(s,{className:`pb-3`,children:[x(f,{className:`bg-bg2 px-3 border-none`,children:[b(p,{required:!0,children:E(`feedbackForm.label`)}),x(c,{children:[b(d,{className:`!bg-bg1 p-2.5 rounded-md`,maxLength:500,placeholder:E(`feedbackForm.placeholder`),value:j.content,onChange:e=>B(`content`,e.target.value)}),b(l,{className:`!bg-bg1`,align:`block-end`,children:b(`div`,{className:`text-right w-full`,children:x(`span`,{className:`text-xs`,children:[j.content.length,`/500`]})})})]})]}),x(f,{className:`bg-bg2 px-3 border-none`,children:[b(p,{required:!0,children:E(`feedbackForm.screenshotLabel`)}),b(`input`,{ref:A,type:`file`,multiple:!0,accept:`image/jpeg,image/jpg,image/png,.jpg,.jpeg,.png`,className:`hidden`,onChange:H}),x(s,{className:`mt-2 grid grid-cols-3 gap-2`,children:[N.map((e,n)=>x(s,{className:`relative overflow-hidden rounded-lg border border-line1 !bg-bg1 aspect-square`,children:[b(o,{src:e,alt:E(`feedbackForm.alt`),fill:!0,className:`object-cover`}),b(t,{size:`icon-xs`,variant:`secondary`,className:`absolute right-1 top-1 rounded-full bg-bg1/85`,onClick:()=>U(n),"aria-label":E(`feedbackForm.delete`),children:b(y,{})})]},`${e}-${n}`)),N.length<3&&x(s,{className:`flex flex-col aspect-square items-center justify-center gap-2 rounded-lg border border-dashed border-text1/10 !bg-bg1 py-3 text-center`,onClick:V,children:[b(g,{}),b(m,{className:`text-xs text-text3`,children:E(L?`feedbackForm.uploading`:`feedbackForm.addScreenshot`)})]})]})]}),x(f,{className:`bg-bg2 px-3 border-none `,children:[b(p,{children:E(`feedbackForm.contactLabel`)}),b(c,{children:b(u,{className:`!bg-bg1 p-2.5 h-auto rounded-md`,placeholder:E(`feedbackForm.placeholder1_6d0242`),value:j.contact,onChange:e=>B(`contact`,e.target.value)})})]})]})]})}export{O as FeedbackForm};
|
|
@@ -8,7 +8,7 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
|
|
|
8
8
|
/** buttonVariants 工具定义。 */
|
|
9
9
|
declare const buttonVariants: (props?: ({
|
|
10
10
|
variant?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
|
|
11
|
-
size?: "default" | "
|
|
11
|
+
size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
12
12
|
} & class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
13
13
|
/** Button 组件属性。 */
|
|
14
14
|
type ButtonProps = Button.Props & VariantProps<typeof buttonVariants> & {
|
package/dist/hooks.d.mts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
|
|
2
|
-
import { AppContextValue, appContextCookieKey, appContextValues, defaultAppContextValue, getLockedAppContext, lockAppContext, normalizeAppContextValue } from "./hooks/app-context.mjs";
|
|
3
|
-
import { getAppContext, getAppContextResolved } from "./hooks/get-app-context.mjs";
|
|
4
2
|
import { HydrationBoundary, PrefetchInfiniteItem, PrefetchItem, PrefetchQueryItem } from "./hooks/query/hydration-boundary.mjs";
|
|
5
3
|
import { useDeleteRequest, useMutation, usePaginated, usePrefetchQuery, useRefetchQuery, useRequest, useUpdateRequest } from "./hooks/query/use-query.mjs";
|
|
6
|
-
import { useAppContext } from "./hooks/use-app-context/index.mjs";
|
|
7
4
|
import { AuthFields, useAuth, useCloseLogin, useExpireTime, useIsLoggedIn, useLoginModalOpen, useLogout, useOpenLogin, useOpenLoginAsync, useOpenResetPassword, useRequireLogin, useSetAuthFields, useToken, useUserId, useUserInfo } from "./hooks/use-auth.mjs";
|
|
8
5
|
import { UseBrowseReportOptions, useBrowseReport } from "./hooks/use-browse-report.mjs";
|
|
9
6
|
import { useFollow } from "./hooks/use-follow.mjs";
|
|
@@ -13,4 +10,4 @@ import { LikeableItem, useLikeDislike } from "./hooks/use-like-dislike.mjs";
|
|
|
13
10
|
import { useSearchHistory } from "./hooks/use-search-history.mjs";
|
|
14
11
|
import { useSticky } from "./hooks/use-sticky.mjs";
|
|
15
12
|
import { useKeepAliveEffect, useKeepAliveState } from "./components/common/keep-scroll-position/index.mjs";
|
|
16
|
-
export {
|
|
13
|
+
export { AuthFields, HydrationBoundary, LikeableItem, PrefetchInfiniteItem, PrefetchItem, PrefetchQueryItem, UseBrowseReportOptions, useAuth, useBrowseReport, useCloseLogin, useDeleteRequest, useExpireTime, useFollow, useFullscreenGestures, useIsLoggedIn, useKeepAliveEffect, useKeepAliveState, useKeyboardOpen, useLikeDislike, useLoginModalOpen, useLogout, useMutation, useOpenLogin, useOpenLoginAsync, useOpenResetPassword, usePaginated, usePrefetchQuery, useRefetchQuery, useRequest, useRequireLogin, useSearchHistory, useSetAuthFields, useSticky, useToken, useUpdateRequest, useUserId, useUserInfo };
|
package/dist/hooks.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{
|
|
2
|
+
import{HydrationBoundary as e}from"./hooks/query/hydration-boundary.mjs";import{useDeleteRequest as t,useMutation as n,usePaginated as r,usePrefetchQuery as i,useRefetchQuery as a,useRequest as o,useUpdateRequest as s}from"./hooks/query/use-query.mjs";import{useAuth as c,useCloseLogin as l,useExpireTime as u,useIsLoggedIn as d,useLoginModalOpen as f,useLogout as p,useOpenLogin as m,useOpenLoginAsync as h,useOpenResetPassword as g,useRequireLogin as _,useSetAuthFields as v,useToken as y,useUserId as b,useUserInfo as x}from"./hooks/use-auth.mjs";import{useBrowseReport as S}from"./hooks/use-browse-report.mjs";import{useFollow as C}from"./hooks/use-follow.mjs";import{useFullscreenGestures as w}from"./hooks/use-fullscreen-gestures.mjs";import{useKeyboardOpen as T}from"./hooks/use-keyboard-open.mjs";import{useLikeDislike as E}from"./hooks/use-like-dislike.mjs";import{useSearchHistory as D}from"./hooks/use-search-history.mjs";import{useSticky as O}from"./hooks/use-sticky.mjs";import{useKeepAliveEffect as k,useKeepAliveState as A}from"./components/common/keep-scroll-position/index.mjs";export{e as HydrationBoundary,c as useAuth,S as useBrowseReport,l as useCloseLogin,t as useDeleteRequest,u as useExpireTime,C as useFollow,w as useFullscreenGestures,d as useIsLoggedIn,k as useKeepAliveEffect,A as useKeepAliveState,T as useKeyboardOpen,E as useLikeDislike,f as useLoginModalOpen,p as useLogout,n as useMutation,m as useOpenLogin,h as useOpenLoginAsync,g as useOpenResetPassword,r as usePaginated,i as usePrefetchQuery,a as useRefetchQuery,o as useRequest,_ as useRequireLogin,D as useSearchHistory,v as useSetAuthFields,O as useSticky,y as useToken,s as useUpdateRequest,b as useUserId,x as useUserInfo};
|
package/dist/i18n/locales/en.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
2
|
var e={components:{biz:{basics:{fullscreenFeed:{runtime:{bottomInfo:{collapse:`Collapse`,expand:`Expand`,nextItem:`Next`,seriesAction:`Episodes · {title}`,seriesActionWithEpisode:`Episodes · {title} {episodeName}`},commentModal:{comment:`Comments`},userAction:{collectAction:`Collect`,commentAction:`Comment`,followFailed:`Follow failed`,like:`Like`,likeAction:`Like`,loginRequired:`Please log in first`,shareAction:`Share`},videoSlide:{watchFullscreen:`Watch full screen`}}}},business:{comment:{commentInput:{cannotSelectVideoWhenImageSelected:`Cannot select a video after choosing images`,dragFileNotSupported:`Drag-and-drop images/files is not supported. Please use the upload button below`,image:`Pictures`,imageUploadFailed:`Image upload failed`,partialImageUploadFailed:`Some images failed to upload`,pasteFileNotSupported:`Pasting images/files is not supported. Please use the upload button below`,placeholder:`Say something...`,publishCommentFailed:`Failed to publish comment`,publishDefault:`Publish`,publishSuccess:`Published successfully`,publishing:`Publishing...`,video:`Video`,videoUploadFailed:`Video upload failed`},commentItem:{contentInReview:`Content in review`,dislike:`Dislike`,like:`Like`,reply:`Reply`,replyCount:`{count} replies`},commentList:{dislikeHint:`Already disliked`,emptyPrompt:`No comments yet. Be the first one!`,fetchCommentsFailed:`Failed to fetch comments`,invalidReplyTarget:`Invalid reply target`,loading:`Loading...`,loginRequired:`Please log in first`,noMore:`No more`,publishCommentFailed:`Failed to publish comment`,publishReplyFailed:`Failed to publish reply`,viewMore:`View more`},replyDetail:{commentDetail:`Comment details`,dislike:`Dislike`,dislikeHint:`Already disliked`,fetchRepliesFailed:`Failed to fetch replies`,follow:`Follow`,followFailed:`Failed to follow`,followed:`Following`,invalidReplyTarget:`Invalid reply target`,like:`Like`,loginRequired:`Please log in first`,publishReplyFailed:`Failed to publish reply`,reply:`Reply`,underReview:`Content in review`,unfollowFailed:`Failed to unfollow`}},contact:{contactList:{myFollowing:`Following`,noFollowingUsers:`You are not following any users yet`,noMore:`No more`,noSearchResult:`No results found`},contactSearch:{cancel:`Cancel`,close:`Close`,placeholder:`Search users you want to @`}},detail:{detailFollowAction:{follow:`Follow`,following:`Following`},detailGuessLike:{title:`Guess you like it`},detailIntroduction:{collapse:`Collapse`,expand:`Expand`,score:`Score`},detailOperate:{collectAdded:`Added`,collectFailed:`Failed to collect`,collection:`Collection`,defaultCollection:`Default Collection`,like:`Like`,modifyCollection:`Change`,modifyCollectionSuccess:`Collection updated`,operateFailed:`Operation failed, please try again`,share:`Bagikan`},detailPopularComments:{emptyPrompt:`Looking forward to your first comment`,like:`Like`,mediaPlaceholder:`[Image/Video]`,popularComments:`Pop comments`},detailTabs:{discussion:`DISCUSSION`,video:`Video`},postRecommendList:{title:`Related Posts`},videoHero:{coverAlt:`Video player cover`,noVideos:`No videos available`}},fullscreenFeed:{variants:{fullscreenVideoFeed:{runtime:{client:{contentLoading:`Loading content...`}}}}},navBar:{variants:{basicNavBar:{runtime:{channelFilterDialog:{add:`Add`,allAddedTo:`All have been added to`,allChannels:`All channels`,delete:`Delete`,moreChannels:`More channels`,myChannels:`My channels`,resetDefault:`Reset to default`}}}}},searchHistory:{clear:`Clear`,clearAllHistory:`Delete all history`,confirmClearDescription:`Are you sure you want to delete all search history?`},videoHorizontalList:{allEpisodes:`All {count} episodes`,defaultTitle:`Recommended Videos`,updatedTo:`Updated to {count} episodes`}}},common:{blockedDialog:{contactSupport:`Contact Support`,description:`Due to: {remark}, your account has been restricted from logging in.
|
|
3
3
|
Unblock time: {unblockTime}
|
|
4
|
-
If this was not you, please contact support or file an appeal.`,gotIt:`Got it`,remarkDefault:`Abnormal behavior detected`,title:`Account Restricted`,unblockTimePermanent:`Permanent`},collectionPopup:{collectSuccess:`Added to collection`,coverAlt:`Cover image`,createCollection:`Create Collection`,createCollectionHint:`to create your collection.`,createModalAction:`Done`,createModalTitle:`New Collection`,favoriteToCollectionTitle:`Favorite to Collection`,newCollection:`New`,noCollections:`No collections yet`,postsCountSuffix:`Posts`,selectTitle:`Select Collection`,updateSuccess:`Collection updated`},debugLocaleSwitcher:{current:`Current`,languageDebugging:`Language Debugging`},deleteConfirmDialog:{cancel:`Cancel`,confirm:`Delete`,description:`This action cannot be undone.`},followButton:{follow:`Follow`,followFailed:`Failed to follow`,following:`Following`,loginFailed:`Login failed`,loginRequired:`Please log in first`,unfollowConfirmDialog:{cancel:`cancel`,confirm:`OK`,confirmUnfollow:`Are you sure you want to unfollow`},unfollowFailed:`Failed to unfollow`},imageCropModal:{cancel:`Cancel`,confirm:`Confirm`,processing:`Processing...`},infoCard:{cardBottom:{comment:`Comment`,dislike:`Dislike`,like:`Like`,share:`Share`}},list:{collectionList:{collectionListItem:{contentCountSuffix:`content`,movieLabel:`Movie`}}},photoGrid:{episodeLoading:`Episode Loading`,missingEpisode:`Missing valid episode`,noEpisodes:`No episodes available`},picker:{genderPicker:{cancel:`Cancel`,confirm:`Confirm`,options:{female:`Female`,male:`Male`,secret:`Secret`},title:`Select Gender`},pickerDrawer:{cancel:`Cancel`,confirm:`Confirm`,title:`Please Select`}},seriesEpisodes:{completedSeriesTotal:`Completed series: {total} episodes`,episodeLabel:`Episode {episode}`,episodeNotFound:`Episode not found`,episodeSwitchFailed:`Failed to switch episode`,episodeTitle:`Episode title`,ongoingSeriesTotal:`Ongoing series: {total} episodes`,ongoingSeriesUpdatedTo:`Ongoing series: updated to {total} episodes`,selectorTitle:`Episodes`,singleContent:`Single episode`},sharePopup:{shareContent:{copyFailed:`Copy failed`,copyShareLink:`Copy link`,copySuccess:`Copied`,shareHint:`Can paste a link to share with friends`,shareLinksTitle:`Share Links`},shareDrawer:{cancel:`Cancel`,collectionLabel:`Collection`,label:`Uncollect`,moments:`Moments`,wechat:`WeChat`,wechatFriend:`WeChat Friend`}},skeleton:{loading:`Loading`},title:`Are you sure you want to delete this content?`},pages:{collectionAdd:{page:{collectionNotFound:`Collection not found`,done:`Done`,emptyPublish:`No posts available to add`,selectPostFirst:`Please select posts first`,submitFailed:`Add failed, please try again later`,submitSuccess:`Added successfully`,submitting:`Adding...`,title:`Add posts to collection`,userNotFound:`User not found`}},collectionCreate:{form:{addCover:`Add cover`,collectionNotFound:`Collection not found`,coverAlt:`Collection cover`,coverLabel:`Cover`,coverUploadFailed:`Failed to upload cover`,create:`Create`,createFailed:`Create failed`,createSuccess:`Created successfully`,createTitle:`Create Collection`,creating:`Creating...`,descriptionLabel:`Description`,descriptionPlaceholder:`Add a description for this collection`,editTitle:`Edit Collection`,label:`Title`,save:`Save`,saveFailed:`Save failed`,saveSuccess:`Saved successfully`,saving:`Saving...`,signatureLabel:`Description`,titlePlaceholder:`Please enter collection title`,titleRequired:`Please enter collection title`,uploading:`Uploading...`}},collectionDetail:{components:{collectionDetailCard:{collectedInLabel:`Collected in:`}},detail:{add:`Add Content`,contentCountSuffix:`Section Contents`,coverAlt:`Collection cover`,defaultCollectionDeleteNotSupported:`Default collection cannot be deleted`,defaultTitle:`Collection`,deleteCollection:`Delete collection`,deleteFailed:`Delete failed`,deleteSuccess:`Collection deleted`,deleting:`Deleting...`,editCollection:`Edit Collection`,emptyContent:`No content yet`,operationFailed:`Operation failed, please try again later`,ownerAvatarAlt:`Collection owner`,pleaseLogin:`Please log in first`,subscribe:`Subscribe`,subscribeOperateFailed:`Subscription action failed`,subscribeProcessing:`Processing...`,subscribeSuccess:`Subscribed successfully`,subscribed:`Subscribed`,uncollectFailed:`Failed to remove from collection`,uncollectSuccess:`Removed from collection`,unsubscribeSuccess:`Unsubscribed`,updatedSuffix:`Update`}},edit:{page:{avatarUpdateSuccess:`Updated successfully`,avatarUploadFailed:`Failed to upload avatar. Please try again later.`,avatarUploading:`Uploading...`,clickToChangeAvatar:`Tap to change avatar`,displayIdLabel:`Display ID`,genderFemale:`Female`,genderLabel:`Gender`,genderMale:`Male`,genderSecret:`Private`,genderSelect:`Please select`,genderUpdateSuccess:`Gender updated successfully`,imageTypeInvalid:`Only JPG/JPEG/PNG formats are supported`,label:`Nickname`,loading:`Loading`,nicknameInvalidChars:`Nickname only supports _, - and .`,nicknamePlaceholder:`Enter your nickname`,nicknameRequired:`Please enter a nickname`,nicknameTooShort:`Nickname must be at least 2 characters`,nicknameUpdateSuccess:`Nickname updated successfully`,save:`Save`,saveFailed:`Save failed. Please try again later.`,saveSuccess:`Saved successfully`,signatureLabel:`Signature`,signaturePlaceholder:`Enter your bio`,signatureTooShort:`Bio must be at least 2 characters`,signatureUpdateSuccess:`Bio updated successfully`,submit:`Submit`,title:`Edit profile`,updateFailed:`Update failed. Please try again later.`,userNotFound:`User info not found`}},feedSeries:{feedSeriesClient:{episodeLoading:`Episode Loading`,episodeSelectorTitle:`Episodes`,missingEpisode:`Missing valid episode`,noEpisodes:`No episodes available`},page:{videoLoading:`Loading video...`}},feedback:{components:{feedbackForm:{addScreenshot:`Add screenshot`,alt:`Screenshot of feedback`,contactLabel:`Contact`,contentMinLength:`Problem description must be at least 4 characters.`,delete:`Delete`,imageTypeInvalid:`Only JPG/JPEG/PNG formats are supported`,label:`Feedback content`,loading:`Submitting...`,message:`Update failed, please try again later.`,missingContact:`Enter your contact information.`,missingFeedback:`Please enter your feedback`,missingScreenshot:`Please upload a screenshot`,placeholder:`obtain SMS verification code`,placeholder1_6d0242:`Please enter your email or phone number so we can resolve your issue.`,screenshotLabel:`Upload Screenshot`,screenshotUploadFailed:`Screenshot upload failed, please try again later`,submit:`SUBMIT`,submitsuccess:`Feedback submitted successfully. We will resolve it as soon as possible.`,title:`Feedback`,uploading:`UPLOADING...`}}},follow:{components:{followButton:{follow:`Follow`,following:`Following`},interactionTabs:{fans:`Fans`,follow:`Follow`},userList:{follow:`Follow`,followBack:`Follow back`,followNow:`Follow now`,noFans:`No fans yet`,noFollowedUsers:`Not following any users`}},pages:{fans:{privateListUnavailable:`This fan list is not publicly available`},followed:{privateListUnavailable:`This following list is not publicly available`}}},fullscreenFeed:{page:{episodeSelectorTitle:`Episodes`,missingParams:`Missing testimonial bit or episode parameter`}},login:{forgot:{back:`Back`,emailPlaceholder:`Enter your email`,getCode:`Get verification code`,loginLink:`Remembered your password? Log in`,or:`or`,sendFailed:`Failed to send, please try again later`,sending:`Sending...`,title:`Forgot your password?`},index:{loginFailed:`Login failed. Please try again later.`,loginSuccess:`Logged in successfully`},loginClient:{agreeToTerms:`I have read and agree to the Terms of Service and Privacy Policy`,agreeToTermsPrefix:`I have read and agree to the `,and:` and `,close:`Close`,emailPlaceholder:`Enter your email`,forgotPassword:`Forgot Password`,hidePassword:`Hide password`,loggingIn:`Logging in...`,login:`Log in`,noAccount:`Don't have an account?`,passwordPlaceholder:`Enter your password`,privacyPolicy:`Privacy Policy`,registerLink:`Create a new account`,showPassword:`Show password`,title:`Log in to your account`,userAgreement:`Terms of Service`},password:{back:`Back`,confirmModify:`Confirm changes`,confirmPasswordPlaceholder:`Re-enter your password`,confirmReset:`Confirm reset`,passwordPlaceholder:`Enter a password (6-18 characters)`,passwordSetSuccess:`Password updated`,passwordTooLong:`Password must be no more than 18 characters`,passwordTooShort:`Password must be at least 6 characters`,passwordsNotMatch:`Passwords do not match`,register:`Register`,setLoginPassword:`Set a login password`,setNewPassword:`Set a new password`,submitFailed:`Failed to submit. Please try again later.`,submitting:`Submitting...`},register:{back:`Back`,emailPlaceholder:`Enter your email`,getCode:`Get verification code`,hasAccount:`Already have an account?`,invalidEmail:`Please enter a valid email`,loginLink:`Log in`,sendFailed:`Failed to send`,sending:`Sending...`,title:`Create your account`},resetPassword:{back:`Back`,codePlaceholder:`Enter the verification code`,resend:`Resend`,sendCode:`Send code`,sendFailed:`Failed to send`,title:`Reset password`,verifyEmail:`Verify email`,verifyFailed:`Verification failed. Please try again later.`,verifyHint:`Verify your identity`,verifyViaEmail:`Verify via email`,verifying:`Verifying...`},verify:{back:`Back`,invalidCode:`Invalid verification code`,nextStep:`Next`,resend:`Resend`,sentTo:`Sent to`,title:`Enter the verification code`,verifying:`Verifying...`}},postDetail:{postDetailClient:{comment:`Comments`,postDeleted:`This post has been deleted`,postOffline:`This post is no longer available`,reactions:`Reactions`}},profile:{client:{collect:`Collect`,collectionNotPublic:`This collection is private`,editProfile:`Edit profile`,exploreAdventures:`Explore amazing adventures.`,follow:`Follow`,followFailed:`Follow failed`,followSuccess:`Followed successfully`,followed:`Following`,history:`History`,like:`Like`,likeNotPublic:`Likes are private`,loginNow:`Log in`,loginToView:`Please log in to view`,operationFailed:`Operation failed. Please try again later.`,processing:`Processing...`,publish:`Publish`,unfollowFailed:`Unfollow failed`,unfollowSuccess:`Unfollowed`,welcomeToPlanet:`Welcome`},components:{tabs:{collectTab:{cancel:`Cancel`,collections:`Collections`,created:`Created`,delete:`Delete`,edit:`Edit`,noCreatedCollections:`No created collections yet`,noSubscribedCollections:`No subscribed collections yet`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,subscribed:`Subscribed`,uncollectFailed:`Failed to uncollect`,uncollectedSuccess:`Uncollected successfully`,video:`Video`},historyTab:{cancel:`Cancel`,delete:`Delete`,deleteFailed:`Deletion failed.`,edit:`Edit`,historyDeletedSuccess:`Browsing history deleted`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,video:`Video`},likeTab:{cancel:`Cancel`,delete:`Delete`,edit:`Edit`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,unlikeFailed:`Failed to unlike`,unlikedSuccess:`Unliked successfully`,video:`Video`},publishTab:{deleteFailed:`Delete failed`,deleteSuccess:`Deleted`,emptyText:`No published content yet`}},userProfileHeader:{fans:`Fans`,follow:`Follow`,likesReceived:`Likes Received`}}},publish:{components:{collection:{createCollection:`Create Collection`,moreCollections:`More collections`,syncToCollection:`Sync to collection`},collectionCard:{contentCountSuffix:`Bar Contents`},collectionPopup:{noCollections:`No collections yet`,syncToCollection:`Sync to collection`},coverItem:{coverAlt:`Cover`,editCover:`Edit cover`,uploadImage:`Upload Image`},editor:{headlineHint:`With Headline`},header:{publish:`Publish`},materialItem:{deleteMaterial:`Delete media`,uploadImage:`Uploaded image`,videoCover:`Video cover`},mediaPreview:{previewAlt:`Preview`},uploadProgress:{uploading:`Uploading`}},pageClient:{cancel:`cancel`,editContentFirst:`Please edit the content first`,maxMaterialCount:`You can upload up to 9 materials`,publishFailed:`Publish failed, please try again later`,publishSuccess:`Published successfully`,resume:`Continued`,switchToPostConfirm:`Switching to post will clear the main video. Continue?`,switchToVideoConfirm:`Switching to video will clear existing materials. Continue?`,title:`Confirm toggle`,uploadFailedCount:`{count} files failed to upload`}},search:{hotRecommend:{hotPostsTitle:`Popular Posts`,hotVideosTitle:`Popular Videos`},hotSearch:{recommendedSearches:`Recommended searches`},pageClient:{searchHistory:`Search History`,tabs:{all:`All`,post:`Posts`,user:`Users`,video:`Videos`}},searchResult:{searchAll:{emptyResult:`No related content found`,more:`MORE`,relatedSuffix:`Related`},searchUser:{emptyResult:`No related content found`,followersSuffix:`Followers`},searchVideoInfo:{noRelevantContent:`No relevant content found`}},topHeader:{placeholder:`Please enter keywords`,search:`Cari`}},settings:{components:{resetPasswordDrawer:{boundEmailNotice:`The email address is currently bound`,codeSentSuccess:`Verification code sent`,confirmPasswordPlaceholder:`Please enter the login password again`,passwordPlaceholder:`Enter password (6-18 characters)`,passwordResetSuccess:`Password changed successfully`,resendAfter:`resend after`,resetFailed:`Modification failed, please try again later`,resetPassword:`Change Password`,sendCode:`Send verification code`,sendFailed:`Failed to send, please try again later`,sending:`Sending...`,setNewPasswordHint:`Set a new login password`,submitting:`Submitting...`,title:`Reset Password`,verifyEmailButton:`Validate Email`,verifyFailed:`Verification failed, please check the code`,verifyHint:`Perform verification`,verifySuccess:`Verification successful`,verifying:`Verifying...`},settings:{button:`Log Out`,cancel:`Cancel`,collectionsTitle:`Collections`,confirm:`Confirm`,feedbackTitle:`Feedback`,follow:`Following`,followersTitle:`Followers`,languageTitle:`Language`,like:`Likes`,listPrivateHint:`This list will be private`,logoutConfirmMessage:`Are you sure you want to log out?`,privacySettingsTitle:`Privacy Settings`,resetPasswordTitle:`Reset Password`,switchTo:`Switch to`,title:`Settings`,whenOff:`When turned off`}}},userFollow:{components:{comprehensiveTab:{empty:`No content yet, try somewhere else.`,postsFeed:`Posts Feed`},contentItem:{filmAndTv:`Film and television related`},followNoLogin:{login:`Log in`,notLoggedIn:`You are not logged in`},followNoUser:{empty:`You haven't followed anyone yet`},followedList:{newUpdate:`New update`,seeAll:`See All`},postTab:{empty:`Not following any posts`}},page:{tabs:{posts:`Posts`}}},videoDetail:{videoDetailClient:{videoDeleted:`This video has been deleted`,videoUnavailable:`This video is unavailable`}}},ui:{infiniteScroll:{failed:`Load failed, click to retry`,loading:`Loading`,noMore:`No more`},list:{empty:`No content yet`,loading:`Loading...`,postList:{earlier:`Earlier`,empty:`No browsing history`,postListItem:{coverAlt:`Post cover`},today:`Today`},userActivityList:{earlier:`Earlier`,empty:`No browsing history`,today:`Today`,userActivityListActions:{comment:`Comment`,dislike:`Dislike`,like:`Like`,likeFailed:`Like failed`,share:`Share`},userActivityListItem:{collapse:`Collapse`,collectFailed:`Collection failed`,expand:`Expand`,mediaAlt:`Feed image`}},videoList:{earlier:`Earlier`,empty:`No viewing history`,today:`Today`,videoListItem:{coverAlt:`Video cover`,movie:`Movie`,series:`Series`,watchUntil:`Watched `}}},loading:{label:`Loading...`}}},tabBar:{follow:`Follow`,home:`Home`,message:`Message`,mine:`Mine`}};export{e as default};
|
|
4
|
+
If this was not you, please contact support or file an appeal.`,gotIt:`Got it`,remarkDefault:`Abnormal behavior detected`,title:`Account Restricted`,unblockTimePermanent:`Permanent`},collectionPopup:{collectSuccess:`Added to collection`,coverAlt:`Cover image`,createCollection:`Create Collection`,createCollectionHint:`to create your collection.`,createModalAction:`Done`,createModalTitle:`New Collection`,favoriteToCollectionTitle:`Favorite to Collection`,newCollection:`New`,noCollections:`No collections yet`,postsCountSuffix:`Posts`,selectTitle:`Select Collection`,updateSuccess:`Collection updated`},debugLocaleSwitcher:{current:`Current`,languageDebugging:`Language Debugging`},deleteConfirmDialog:{cancel:`Cancel`,confirm:`Delete`,description:`This action cannot be undone.`},followButton:{follow:`Follow`,followFailed:`Failed to follow`,following:`Following`,loginFailed:`Login failed`,loginRequired:`Please log in first`,unfollowConfirmDialog:{cancel:`cancel`,confirm:`OK`,confirmUnfollow:`Are you sure you want to unfollow`},unfollowFailed:`Failed to unfollow`},imageCropModal:{cancel:`Cancel`,confirm:`Confirm`,processing:`Processing...`},infoCard:{cardBottom:{comment:`Comment`,dislike:`Dislike`,like:`Like`,share:`Share`}},list:{collectionList:{collectionListItem:{contentCountSuffix:`content`,movieLabel:`Movie`}}},photoGrid:{episodeLoading:`Episode Loading`,missingEpisode:`Missing valid episode`,noEpisodes:`No episodes available`},picker:{genderPicker:{cancel:`Cancel`,confirm:`Confirm`,options:{female:`Female`,male:`Male`,secret:`Secret`},title:`Select Gender`},pickerDrawer:{cancel:`Cancel`,confirm:`Confirm`,title:`Please Select`}},seriesEpisodes:{completedSeriesTotal:`Completed series: {total} episodes`,episodeLabel:`Episode {episode}`,episodeNotFound:`Episode not found`,episodeSwitchFailed:`Failed to switch episode`,episodeTitle:`Episode title`,ongoingSeriesTotal:`Ongoing series: {total} episodes`,ongoingSeriesUpdatedTo:`Ongoing series: updated to {total} episodes`,selectorTitle:`Episodes`,singleContent:`Single episode`},sharePopup:{shareContent:{copyFailed:`Copy failed`,copyShareLink:`Copy link`,copySuccess:`Copied`,shareHint:`Can paste a link to share with friends`,shareLinksTitle:`Share Links`},shareDrawer:{cancel:`Cancel`,collectionLabel:`Collection`,label:`Uncollect`,moments:`Moments`,wechat:`WeChat`,wechatFriend:`WeChat Friend`}},skeleton:{loading:`Loading`},title:`Are you sure you want to delete this content?`},pages:{collectionAdd:{page:{collectionNotFound:`Collection not found`,done:`Done`,emptyPublish:`No posts available to add`,selectPostFirst:`Please select posts first`,submitFailed:`Add failed, please try again later`,submitSuccess:`Added successfully`,submitting:`Adding...`,title:`Add posts to collection`,userNotFound:`User not found`}},collectionCreate:{form:{addCover:`Add cover`,collectionNotFound:`Collection not found`,coverAlt:`Collection cover`,coverLabel:`Cover`,coverUploadFailed:`Failed to upload cover`,create:`Create`,createFailed:`Create failed`,createSuccess:`Created successfully`,createTitle:`Create Collection`,creating:`Creating...`,descriptionLabel:`Description`,descriptionPlaceholder:`Add a description for this collection`,editTitle:`Edit Collection`,label:`Title`,save:`Save`,saveFailed:`Save failed`,saveSuccess:`Saved successfully`,saving:`Saving...`,signatureLabel:`Description`,titlePlaceholder:`Please enter collection title`,titleRequired:`Please enter collection title`,uploading:`Uploading...`}},collectionDetail:{components:{collectionDetailCard:{collectedInLabel:`Collected in:`}},detail:{add:`Add Content`,cancel:`Cancel`,collectionManageTitle:`Collection Management`,contentCountSuffix:`Section Contents`,coverAlt:`Collection cover`,defaultCollectionDeleteNotSupported:`Default collection cannot be deleted`,defaultTitle:`Collection`,delete:`Delete`,deleteCollection:`Delete collection`,deleteFailed:`Delete failed`,deleteSuccess:`Collection deleted`,deleting:`Deleting...`,done:`Done`,editCollection:`Edit Collection`,emptyContent:`No content yet`,manageCollection:`Manage Collection`,operationFailed:`Operation failed, please try again later`,ownerAvatarAlt:`Collection owner`,pleaseLogin:`Please log in first`,selectAll:`Select all`,subscribe:`Subscribe`,subscribeOperateFailed:`Subscription action failed`,subscribeProcessing:`Processing...`,subscribeSuccess:`Subscribed successfully`,subscribed:`Subscribed`,uncollectFailed:`Failed to remove from collection`,uncollectSuccess:`Removed from collection`,unsubscribeSuccess:`Unsubscribed`,updatedSuffix:`Update`}},edit:{page:{avatarUpdateSuccess:`Updated successfully`,avatarUploadFailed:`Failed to upload avatar. Please try again later.`,avatarUploading:`Uploading...`,clickToChangeAvatar:`Tap to change avatar`,displayIdLabel:`Display ID`,genderFemale:`Female`,genderLabel:`Gender`,genderMale:`Male`,genderSecret:`Private`,genderSelect:`Please select`,genderUpdateSuccess:`Gender updated successfully`,imageTypeInvalid:`Only JPG/JPEG/PNG formats are supported`,label:`Nickname`,loading:`Loading`,nicknameInvalidChars:`Nickname only supports _, - and .`,nicknamePlaceholder:`Enter your nickname`,nicknameRequired:`Please enter a nickname`,nicknameTooShort:`Nickname must be at least 2 characters`,nicknameUpdateSuccess:`Nickname updated successfully`,save:`Save`,saveFailed:`Save failed. Please try again later.`,saveSuccess:`Saved successfully`,signatureLabel:`Signature`,signaturePlaceholder:`Enter your bio`,signatureTooShort:`Bio must be at least 2 characters`,signatureUpdateSuccess:`Bio updated successfully`,submit:`Submit`,title:`Edit profile`,updateFailed:`Update failed. Please try again later.`,userNotFound:`User info not found`}},feedSeries:{feedSeriesClient:{episodeLoading:`Episode Loading`,episodeSelectorTitle:`Episodes`,missingEpisode:`Missing valid episode`,noEpisodes:`No episodes available`},page:{videoLoading:`Loading video...`}},feedback:{components:{feedbackForm:{addScreenshot:`Add screenshot`,alt:`Screenshot of feedback`,contactLabel:`Contact`,contentMinLength:`Problem description must be at least 4 characters.`,delete:`Delete`,imageTypeInvalid:`Only JPG/JPEG/PNG formats are supported`,label:`Feedback content`,loading:`Submitting...`,message:`Update failed, please try again later.`,missingContact:`Enter your contact information.`,missingFeedback:`Please enter your feedback`,missingScreenshot:`Please upload a screenshot`,placeholder:`obtain SMS verification code`,placeholder1_6d0242:`Please enter your email or phone number so we can resolve your issue.`,screenshotLabel:`Upload Screenshot`,screenshotUploadFailed:`Screenshot upload failed, please try again later`,submit:`SUBMIT`,submitsuccess:`Feedback submitted successfully. We will resolve it as soon as possible.`,title:`Feedback`,uploading:`UPLOADING...`}}},follow:{components:{followButton:{follow:`Follow`,following:`Following`},interactionTabs:{fans:`Fans`,follow:`Follow`},userList:{follow:`Follow`,followBack:`Follow back`,followNow:`Follow now`,noFans:`No fans yet`,noFollowedUsers:`Not following any users`}},pages:{fans:{privateListUnavailable:`This fan list is not publicly available`},followed:{privateListUnavailable:`This following list is not publicly available`}}},fullscreenFeed:{page:{episodeSelectorTitle:`Episodes`,missingParams:`Missing testimonial bit or episode parameter`}},login:{forgot:{back:`Back`,emailPlaceholder:`Enter your email`,getCode:`Get verification code`,loginLink:`Remembered your password? Log in`,or:`or`,sendFailed:`Failed to send, please try again later`,sending:`Sending...`,title:`Forgot your password?`},index:{loginFailed:`Login failed. Please try again later.`,loginSuccess:`Logged in successfully`},loginClient:{agreeToTerms:`I have read and agree to the Terms of Service and Privacy Policy`,agreeToTermsPrefix:`I have read and agree to the `,and:` and `,close:`Close`,emailPlaceholder:`Enter your email`,forgotPassword:`Forgot Password`,hidePassword:`Hide password`,loggingIn:`Logging in...`,login:`Log in`,noAccount:`Don't have an account?`,passwordPlaceholder:`Enter your password`,privacyPolicy:`Privacy Policy`,registerLink:`Create a new account`,showPassword:`Show password`,title:`Log in to your account`,userAgreement:`Terms of Service`},password:{back:`Back`,confirmModify:`Confirm changes`,confirmPasswordPlaceholder:`Re-enter your password`,confirmReset:`Confirm reset`,passwordPlaceholder:`Enter a password (6-18 characters)`,passwordSetSuccess:`Password updated`,passwordTooLong:`Password must be no more than 18 characters`,passwordTooShort:`Password must be at least 6 characters`,passwordsNotMatch:`Passwords do not match`,register:`Register`,setLoginPassword:`Set a login password`,setNewPassword:`Set a new password`,submitFailed:`Failed to submit. Please try again later.`,submitting:`Submitting...`},register:{back:`Back`,emailPlaceholder:`Enter your email`,getCode:`Get verification code`,hasAccount:`Already have an account?`,invalidEmail:`Please enter a valid email`,loginLink:`Log in`,sendFailed:`Failed to send`,sending:`Sending...`,title:`Create your account`},resetPassword:{back:`Back`,codePlaceholder:`Enter the verification code`,resend:`Resend`,sendCode:`Send code`,sendFailed:`Failed to send`,title:`Reset password`,verifyEmail:`Verify email`,verifyFailed:`Verification failed. Please try again later.`,verifyHint:`Verify your identity`,verifyViaEmail:`Verify via email`,verifying:`Verifying...`},verify:{back:`Back`,invalidCode:`Invalid verification code`,nextStep:`Next`,resend:`Resend`,sentTo:`Sent to`,title:`Enter the verification code`,verifying:`Verifying...`}},postDetail:{postDetailClient:{comment:`Comments`,postDeleted:`This post has been deleted`,postOffline:`This post is no longer available`,reactions:`Reactions`}},profile:{client:{collect:`Collect`,collectionNotPublic:`This collection is private`,editProfile:`Edit profile`,exploreAdventures:`Explore amazing adventures.`,follow:`Follow`,followFailed:`Follow failed`,followSuccess:`Followed successfully`,followed:`Following`,history:`History`,like:`Like`,likeNotPublic:`Likes are private`,loginNow:`Log in`,loginToView:`Please log in to view`,operationFailed:`Operation failed. Please try again later.`,processing:`Processing...`,publish:`Publish`,unfollowFailed:`Unfollow failed`,unfollowSuccess:`Unfollowed`,welcomeToPlanet:`Welcome`},components:{tabs:{collectTab:{cancel:`Cancel`,collections:`Collections`,created:`Created`,delete:`Delete`,edit:`Edit`,emptyContent:`You haven't collected any content yet`,noCreatedCollections:`No created collections yet`,noSubscribedCollections:`No subscribed collections yet`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,subscribed:`Subscribed`,uncollectFailed:`Failed to uncollect`,uncollectedSuccess:`Uncollected successfully`,video:`Video`},historyTab:{cancel:`Cancel`,delete:`Delete`,deleteFailed:`Deletion failed.`,edit:`Edit`,emptyContent:`You have no watch history yet`,historyDeletedSuccess:`Browsing history deleted`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,video:`Video`},likeTab:{cancel:`Cancel`,delete:`Delete`,edit:`Edit`,emptyContent:`You haven't liked any content yet`,operationFailed:`Operation failed, please try again later`,pleaseLogin:`Please log in first`,posts:`Posts`,processing:`Processing...`,selectAll:`Select All`,unlikeFailed:`Failed to unlike`,unlikedSuccess:`Unliked successfully`,video:`Video`},publishTab:{deleteFailed:`Delete failed`,deleteSuccess:`Deleted`,emptyText:`No published content yet`}},userProfileHeader:{fans:`Fans`,follow:`Follow`,likesReceived:`Likes Received`}}},publish:{components:{collection:{createCollection:`Create Collection`,moreCollections:`More collections`,syncToCollection:`Sync to collection`},collectionCard:{contentCountSuffix:`Bar Contents`},collectionPopup:{noCollections:`No collections yet`,syncToCollection:`Sync to collection`},coverItem:{coverAlt:`Cover`,editCover:`Edit cover`,uploadImage:`Upload Image`},editor:{headlineHint:`With Headline`},header:{publish:`Publish`},materialItem:{deleteMaterial:`Delete media`,uploadImage:`Uploaded image`,videoCover:`Video cover`},mediaPreview:{previewAlt:`Preview`},uploadProgress:{uploading:`Uploading`}},pageClient:{cancel:`cancel`,editContentFirst:`Please edit the content first`,maxMaterialCount:`You can upload up to 9 materials`,publishFailed:`Publish failed, please try again later`,publishSuccess:`Published successfully`,resume:`Continued`,switchToPostConfirm:`Switching to post will clear the main video. Continue?`,switchToVideoConfirm:`Switching to video will clear existing materials. Continue?`,title:`Confirm toggle`,uploadFailedCount:`{count} files failed to upload`}},search:{hotRecommend:{hotPostsTitle:`Popular Posts`,hotVideosTitle:`Popular Videos`},hotSearch:{recommendedSearches:`Recommended searches`},pageClient:{searchHistory:`Search History`,tabs:{all:`All`,post:`Posts`,user:`Users`,video:`Videos`}},searchResult:{searchAll:{emptyResult:`No related content found`,more:`MORE`,relatedSuffix:`Related`},searchUser:{emptyResult:`No related content found`,followersSuffix:`Followers`},searchVideoInfo:{noRelevantContent:`No relevant content found`}},topHeader:{placeholder:`Please enter keywords`,search:`Cari`}},settings:{components:{resetPasswordDrawer:{boundEmailNotice:`The email address is currently bound`,codeSentSuccess:`Verification code sent`,confirmPasswordPlaceholder:`Please enter the login password again`,passwordPlaceholder:`Enter password (6-18 characters)`,passwordResetSuccess:`Password changed successfully`,resendAfter:`resend after`,resetFailed:`Modification failed, please try again later`,resetPassword:`Change Password`,sendCode:`Send verification code`,sendFailed:`Failed to send, please try again later`,sending:`Sending...`,setNewPasswordHint:`Set a new login password`,submitting:`Submitting...`,title:`Reset Password`,verifyEmailButton:`Validate Email`,verifyFailed:`Verification failed, please check the code`,verifyHint:`Perform verification`,verifySuccess:`Verification successful`,verifying:`Verifying...`},settings:{button:`Log Out`,cancel:`Cancel`,collectionsTitle:`Collections`,confirm:`Confirm`,feedbackTitle:`Feedback`,follow:`Following`,followersTitle:`Followers`,languageTitle:`Language`,like:`Likes`,listPrivateHint:`This list will be private`,logoutConfirmMessage:`Are you sure you want to log out?`,privacySettingsTitle:`Privacy Settings`,resetPasswordTitle:`Reset Password`,switchTo:`Switch to`,title:`Settings`,whenOff:`When turned off`}}},userFollow:{components:{comprehensiveTab:{empty:`No content yet, try somewhere else.`,postsFeed:`Posts Feed`},contentItem:{filmAndTv:`Film and television related`},followNoLogin:{login:`Log in`,notLoggedIn:`You are not logged in`},followNoUser:{empty:`You haven't followed anyone yet`},followedList:{newUpdate:`New update`,seeAll:`See All`},postTab:{empty:`Not following any posts`}},page:{tabs:{posts:`Posts`}}},videoDetail:{videoDetailClient:{videoDeleted:`This video has been deleted`,videoUnavailable:`This video is unavailable`}}},ui:{infiniteScroll:{failed:`Load failed, click to retry`,loading:`Loading`,noMore:`No more`},list:{empty:`No content yet`,loading:`Loading...`,postList:{earlier:`Earlier`,empty:`No browsing history`,postListItem:{coverAlt:`Post cover`},today:`Today`},userActivityList:{earlier:`Earlier`,empty:`No browsing history`,today:`Today`,userActivityListActions:{comment:`Comment`,dislike:`Dislike`,like:`Like`,likeFailed:`Like failed`,share:`Share`},userActivityListItem:{collapse:`Collapse`,collectFailed:`Collection failed`,expand:`Expand`,mediaAlt:`Feed image`}},videoList:{earlier:`Earlier`,empty:`No viewing history`,today:`Today`,videoListItem:{coverAlt:`Video cover`,movie:`Movie`,series:`Series`,watchUntil:`Watched `}}},loading:{label:`Loading...`}}},tabBar:{follow:`Follow`,home:`Home`,message:`Message`,mine:`Mine`}};export{e as default};
|