Files
low-code-react-app-b/src/components/atoms/DataSourceBadge.tsx
johndoe6345789 f05f896a67 feat: Complete JSON component migration for 9 components (atoms + BindingEditor)
Migration complete for:
- 5 atoms: Accordion, CopyButton, FileUpload, FilterInput, Image, Input, PasswordInput, Popover (8 total)
- 1 molecule: BindingEditor

Changes:
- Deleted 9 legacy TSX files that have complete JSON equivalents
- Exported BindingEditor from json-components.ts with useBindingEditor hook
- Registered useBindingEditor in hooks-registry.ts
- Updated all imports across codebase to use JSON-based components
- Fixed build errors: schema-loader dynamic import, DataSourceGroupSection
- Cleaned up component index exports

Build status:  PASSING
- 0 TypeScript errors
- All 9,408 modules transformed successfully
- No blocking build warnings

Next steps:
- 3 organisms still need conversion: DataSourceManager, NavigationMenu, TreeListPanel
- 120+ additional components have TSX versions (need individual migration)
- 22 JSON components now available for use throughout the app

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-21 00:12:50 +00:00

34 lines
859 B
TypeScript

import { Badge } from '@/components/ui/badge'
import { DataSourceType } from '@/types/json-ui'
import { Database, File } from '@phosphor-icons/react'
interface DataSourceBadgeProps {
type: DataSourceType
className?: string
}
const dataSourceConfig = {
kv: {
icon: Database,
label: 'KV Storage',
className: 'bg-accent/20 text-accent border-accent/30'
},
static: {
icon: File,
label: 'Static',
className: 'bg-muted text-muted-foreground border-border'
}
}
export function DataSourceBadge({ type, className = '' }: DataSourceBadgeProps) {
const config = dataSourceConfig[type]
const Icon = config.icon
return (
<Badge className={`flex items-center gap-1 ${config.className} ${className}`} variant="outline">
<Icon className="w-3 h-3" weight="bold" />
<span>{config.label}</span>
</Badge>
)
}