diff --git a/frontend/packages/core/src/pages/playground/components/KeyStatusCard.tsx b/frontend/packages/core/src/pages/playground/components/KeyStatusNode.tsx similarity index 91% rename from frontend/packages/core/src/pages/playground/components/KeyStatusCard.tsx rename to frontend/packages/core/src/pages/playground/components/KeyStatusNode.tsx index 4597446f..df69c9d3 100644 --- a/frontend/packages/core/src/pages/playground/components/KeyStatusCard.tsx +++ b/frontend/packages/core/src/pages/playground/components/KeyStatusNode.tsx @@ -8,16 +8,17 @@ interface KeyStatus { priority?: number } -interface KeyStatusCardProps { - keys: KeyStatus[] +interface KeyStatusNodeData { title: string + keys: KeyStatus[] } const KEY_SIZE = '1.25rem' // 20px const KEY_GAP = '0.25rem' // 4px const MAX_KEYS = 10 -const KeyStatusCard: React.FC = ({ keys = [], title }) => { +export const KeyStatusNode: React.FC<{ data: KeyStatusNodeData }> = ({ data }) => { + const { title, keys = [] } = data const totalKeys = keys.length const keyWidth = totalKeys > 5 ? `calc((100% - ${(totalKeys - 1) * 0.25}rem) / ${totalKeys})` : KEY_SIZE @@ -54,5 +55,3 @@ const KeyStatusCard: React.FC = ({ keys = [], title }) => { ) } - -export default KeyStatusCard diff --git a/frontend/packages/core/src/pages/playground/components/ModelCard.tsx b/frontend/packages/core/src/pages/playground/components/ModelCard.tsx deleted file mode 100644 index 7ec74018..00000000 --- a/frontend/packages/core/src/pages/playground/components/ModelCard.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { Icon } from '@iconify/react' -import { Handle, Position } from '@xyflow/react' -import React from 'react' -import { ModelCardStatus } from './types' - -interface ModelCardProps { - title: string - status: ModelCardStatus - defaultModel: string - onSettingClick?: () => void -} - -const ModelCard: React.FC = ({ title, status, defaultModel, onSettingClick }) => ( -
- - -
-
- - {title} - -
- -
-
{defaultModel}
-
-) - -export default ModelCard diff --git a/frontend/packages/core/src/pages/playground/components/ModelCardNode.tsx b/frontend/packages/core/src/pages/playground/components/ModelCardNode.tsx new file mode 100644 index 00000000..e5fd28c0 --- /dev/null +++ b/frontend/packages/core/src/pages/playground/components/ModelCardNode.tsx @@ -0,0 +1,37 @@ +import { Icon } from '@iconify/react' +import { Handle, Position } from '@xyflow/react' +import React from 'react' +import { ModelCardStatus } from './types' + +interface ModelCardData { + title: string + status: ModelCardStatus + defaultModel: string +} + +type ModelCardNodeData = ModelCardData & { + id: string + position: { x: number; y: number } +} + +export const ModelCardNode: React.FC<{ data: ModelCardNodeData }> = ({ data }) => { + const { title, status, defaultModel } = data + return ( +
+ + +
+
+ + {title} + +
+ +
+
{defaultModel}
+
+ ) +} diff --git a/frontend/packages/core/src/pages/playground/components/NodeComponents.tsx b/frontend/packages/core/src/pages/playground/components/NodeComponents.tsx index 950e7b2d..e2626cc2 100644 --- a/frontend/packages/core/src/pages/playground/components/NodeComponents.tsx +++ b/frontend/packages/core/src/pages/playground/components/NodeComponents.tsx @@ -1,103 +1,3 @@ -import { Icon } from '@iconify/react' -import { Handle, NodeProps, Position } from '@xyflow/react' -import React from 'react' -import { ModelCardStatus } from './types' - -interface KeyStatus { - status: ModelCardStatus - keyID: number | string - priority?: number -} - -interface KeyStatusNodeData { - title: string - keys: KeyStatus[] -} - -interface ModelCardData { - title: string - status: ModelCardStatus - defaultModel: string -} - -type ModelCardNodeData = ModelCardData & { - id: string - position: { x: number; y: number } -} - -const KEY_SIZE = '1.25rem' // 20px -const KEY_GAP = '0.25rem' // 4px -const MAX_KEYS = 10 - -export const KeyStatusNode: React.FC<{ data: KeyStatusNodeData }> = ({ data }) => { - const { title, keys = [] } = data - const totalKeys = keys.length - const keyWidth = totalKeys > 5 ? `calc((100% - ${(totalKeys - 1) * 0.25}rem) / ${totalKeys})` : KEY_SIZE - - return ( -
- -
-
{title}
-
- {keys - .sort((a, b) => (a.priority || 0) - (b.priority || 0)) - .map((key) => ( -
- ))} -
-
-
- ) -} - -export const ModelCardNode: React.FC<{ data: ModelCardNodeData }> = ({ data }) => { - const { title, status, defaultModel } = data - return ( -
- - -
-
- - {title} - -
- -
-
{defaultModel}
-
- ) -} - -export const ServiceCardNode: React.FC = () => { - return ( -
- -
- - AI Service -
-
- ) -} +export { KeyStatusNode } from './KeyStatusNode' +export { ModelCardNode } from './ModelCardNode' +export { ServiceCardNode } from './ServiceCardNode' diff --git a/frontend/packages/core/src/pages/playground/components/ServiceCard.tsx b/frontend/packages/core/src/pages/playground/components/ServiceCard.tsx deleted file mode 100644 index 8b1e340f..00000000 --- a/frontend/packages/core/src/pages/playground/components/ServiceCard.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Icon } from '@iconify/react' -import { Handle, Position } from '@xyflow/react' -import React from 'react' - -const ServiceCard: React.FC = () => ( -
- -
- - AI Service -
-
-) - -export default ServiceCard diff --git a/frontend/packages/core/src/pages/playground/components/ServiceCardNode.tsx b/frontend/packages/core/src/pages/playground/components/ServiceCardNode.tsx new file mode 100644 index 00000000..5b513048 --- /dev/null +++ b/frontend/packages/core/src/pages/playground/components/ServiceCardNode.tsx @@ -0,0 +1,15 @@ +import { Icon } from '@iconify/react' +import { Handle, NodeProps, Position } from '@xyflow/react' +import React from 'react' + +export const ServiceCardNode: React.FC = () => { + return ( +
+ +
+ + AI Service +
+
+ ) +}