Skip to content

Commit a7bbda0

Browse files
committed
[feat] [frontend] migrate basic components, toolkits, etc (#159)
* feat(biz-components): migration * feat(components): migration * feat(guard): migration * feat(prompt): migration * feat(toolkit): migration * feat(i18n): update types
1 parent 2f6ee24 commit a7bbda0

170 files changed

Lines changed: 13052 additions & 1805 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

frontend/packages/cozeloop/api-schema/src/api/idl/prompt/domain/prompt.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,9 @@ export interface ContentPart {
106106
image_url?: ImageURL,
107107
}
108108
export enum ContentType {
109-
Text = "text",
110-
ImageURL = "image_url",
109+
Text = 'text',
110+
ImageURL = 'image_url',
111+
MultiPartVariable = 'multi_part',
111112
}
112113
export interface ImageURL {
113114
uri?: string,
@@ -214,4 +215,4 @@ export enum Scenario {
214215
}
215216
export interface OverridePromptParams {
216217
model_config?: ModelConfig
217-
}
218+
}
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
// Copyright (c) 2025 coze-dev Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
import { I18n } from '@cozeloop/i18n-adapter';
4+
import { handleCopy } from '@cozeloop/components';
5+
import {
6+
type Message,
7+
type Role,
8+
type Prompt,
9+
ContentType,
10+
} from '@cozeloop/api-schema/prompt';
11+
import { IconCozCopy, IconCozTrashCan } from '@coze-arch/coze-design/icons';
12+
import { IconButton, Popconfirm, Space } from '@coze-arch/coze-design';
13+
14+
export type PromptMessage<R = Role> = Omit<Message, 'role'> & {
15+
role?: R;
16+
id?: string;
17+
key?: string;
18+
optimize_key?: string;
19+
};
20+
21+
interface EditorToolsProps<R> {
22+
onDelete?: (id?: string | number) => void;
23+
message?: PromptMessage<R>;
24+
disabled?: boolean;
25+
promptInfo?: Prompt;
26+
optimizeBtnHidden?: boolean;
27+
onMessageChange?: (message: PromptMessage<R>) => void;
28+
}
29+
30+
export function EditorTools<R>({
31+
onDelete,
32+
message,
33+
disabled,
34+
}: EditorToolsProps<R>) {
35+
const handleInfo = () => {
36+
if (message?.parts?.length) {
37+
return message?.parts
38+
?.map(it => {
39+
if (it.type === ContentType.MultiPartVariable && it?.text) {
40+
return `<multimodal-variable>${it.text}</multimodal-variable>`;
41+
}
42+
return it.text;
43+
})
44+
.join('');
45+
}
46+
return message?.content;
47+
};
48+
return (
49+
<Space>
50+
<IconButton
51+
icon={<IconCozCopy />}
52+
color="secondary"
53+
size="mini"
54+
onClick={() => {
55+
const info = handleInfo() ?? '';
56+
handleCopy(info);
57+
}}
58+
/>
59+
{!onDelete ? null : disabled ? (
60+
<IconButton
61+
icon={<IconCozTrashCan />}
62+
color="secondary"
63+
size="mini"
64+
disabled={disabled}
65+
/>
66+
) : (
67+
<Popconfirm
68+
title={I18n.t('delete_prompt_template')}
69+
content={I18n.t('confirm_delete_current_prompt_template')}
70+
cancelText={I18n.t('Cancel')}
71+
okText={I18n.t('delete')}
72+
okButtonProps={{ color: 'red' }}
73+
onConfirm={() => onDelete?.(`${message?.key || message?.id || ''}`)}
74+
>
75+
<IconButton
76+
icon={<IconCozTrashCan />}
77+
color="secondary"
78+
size="mini"
79+
/>
80+
</Popconfirm>
81+
)}
82+
</Space>
83+
);
84+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Copyright (c) 2025 coze-dev Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
declare module '*.module.less' {
4+
const classes: { readonly [key: string]: string };
5+
export default classes;
6+
}

frontend/packages/cozeloop/biz-components/src/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ export {
77
BenefitBannerScene,
88
} from './benefit';
99
export { UserSelect } from './user-select';
10+
11+
export { EditorTools } from './editor-tools';
12+
13+
export { MessageToolBtns } from './message-tool-btns';
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Copyright (c) 2025 coze-dev Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
.tool-btns {
4+
display: flex;
5+
gap: 4px;
6+
align-items: center;
7+
justify-content: flex-end;
8+
9+
margin-left: -4px;
10+
11+
12+
.icon-button {
13+
background: transparent;
14+
15+
&:hover {
16+
color: var(--semi-color-primary);
17+
}
18+
19+
&-active{
20+
background-color:rgba(var(--coze-bg-6), var(--coze-bg-6-alpha))!important;
21+
}
22+
}
23+
24+
:global {
25+
.semi-button-disabled {
26+
color: var(--semi-color-disabled-text) !important;
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)