Gerar componentes React
Gere componentes React com visões do seu modelo de arquitetura.
Instalação
Seção intitulada “Instalação”Certifique-se de incluir likec4 nas dependências do projeto:
npm i likec4pnpm add likec4yarn add likec4bun add likec4O comando a seguir gera um bundle JavaScript com o componente React e seu arquivo de declarações de tipos (.d.ts):
npx likec4 codegen react --outfile ./src/likec4.generated.jspnpx likec4 codegen react --outfile ./src/likec4.generated.jsyarn dlx likec4 codegen react --outfile ./src/likec4.generated.jsbunx likec4 codegen react --outfile ./src/likec4.generated.js# Aliasesnpx likec4 generate react -o ./src/likec4.generated.jsnpx likec4 gen react -o ./src/likec4.generated.jsPara utilizar o componente:
import { LikeC4View } from './likec4.generated'
const App = () => { return ( <div> <LikeC4View viewId="index" /> </div> )}| Propriedade | Descrição |
|---|---|
viewId |
Enumeração tipada das suas visões |
where |
Opcional; consulte filtro |
injectFontCss |
Injeta CSS com a fonte IBM Plex Sans Variable pela CDN. O padrão é true |
where utiliza o mesmo conceito de predicado de visão, mas é aplicado dinamicamente e permite exibir ou ocultar elementos conforme o contexto. Por exemplo:
import { LikeC4View } from './likec4.generated'
// Keeps elements and relationships where:// - tag is not 'legacy'// - and// - tag is 'v1' or 'v2'const App = () => { return ( <div> <LikeC4View viewId="index" where={{ and: [ { tag: { neq: 'legacy' } }, { or: [ { tag: { eq: 'v1' } }, { tag: { eq: 'v2' } } ] } ] }}/> </div> )}O layout permanece inalterado, ou seja, os elementos não são reorganizados.
Atenção: where é aplicado tanto a elementos quanto a relacionamentos.
ReactLikeC4
Seção intitulada “ReactLikeC4”LikeC4View renderiza as visões do modelo e permite explorá-las em uma janela de navegação.
O componente atende à maioria dos casos de uso, mas, se precisar de mais funcionalidades, utilize ReactLikeC4:
import { ReactLikeC4, type $ViewId } from './likec4.generated'import { useState } from 'react'
const App = () => { const [viewId, setViewId] = useState<$ViewId>('index') return ( <ReactLikeC4 viewId={viewId} pannable zoomable={false} keepAspectRatio showNavigationButtons enableDynamicViewWalkthrough={false} enableElementDetails enableRelationshipDetails onNavigateTo={setViewId} onNodeClick={...} /> )}ReactLikeC4 é um componente de baixo nível que oferece mais controle e permite reagir aos eventos.
Consulte o código-fonte para conhecer as opções disponíveis.
Compartilhe suas ideias ou tire dúvidas nas discussões do GitHub.