/
pv_hum
/
schemaforge
Обзор
Документация
Войти
/
pv_hum
/
schemaforge
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/components/EntityNode.tsx
37 строк
2 KB
pv_hum
Initial commit
21 май 2026, 22:25
21 май 2026, 22:25
0de9fa8
Код
Авторство
О чём код?
import { Handle, Position } from '@xyflow/react'; import { KeyRound, Link2, ShieldCheck } from 'lucide-react'; import { Entity } from '../types/schema'; export default function EntityNode({ data }: { data: { entity: Entity } }) { const { entity } = data; return ( <div className="entity-card"> <div className="entity-card__header"> <div> <div className="entity-card__name">{entity.displayName ?? entity.name}</div> <div className="entity-card__meta">{entity.attributes.length} fields</div> </div> </div> <div className="entity-card__rows"> {entity.attributes.map((attr) => ( <div className="entity-row" key={attr.name}> <Handle id={`target-${attr.name}`} type="target" position={Position.Left} className="field-handle" /> <div className="entity-row__left"> <div className="entity-row__icons"> {attr.primaryKey ? <KeyRound size={12} /> : null} {attr.foreignKey ? <Link2 size={12} /> : null} {attr.unique ? <ShieldCheck size={12} /> : null} </div> <span className="entity-row__name">{attr.name}</span> </div> <div className="entity-row__right"> <span className="entity-row__type">{attr.type}</span> <span className={`entity-row__null ${attr.nullable ? 'is-null' : 'is-not-null'}`}>{attr.nullable ? 'NULL' : 'NOT NULL'}</span> </div> <Handle id={`source-${attr.name}`} type="source" position={Position.Right} className="field-handle" /> </div> ))} </div> </div> ); }