3.0 KiB
Agente React — Regole e Convenzioni
Questo file definisce le istruzioni specifiche, le regole e le convenzioni per lo sviluppo e la manutenzione delle pagine custom e dei componenti scritti in React e TypeScript nel monorepo react/.
Gestione ID dei Form Element
Gli ID dei campi del form (es. nel Dropdown, Checkbox, TextField) creati tramite i metodi create... in ElixFormsComponentAbstract.tsx non devono mai essere cambiati o manipolati (ad es. aggiungendo suffissi come _dropdown), in quanto la piattaforma elixForms si basa sul loro nome ed ID esatto.
In caso di conflitti di ID (ad esempio con input hidden), applicare il suffisso _hidden all'input hidden e mantenere l'ID originale senza suffissi sull'elemento principale visibile.
Convenzioni di Codice e Framework
-
Libreria Common (
react/common/):- Scritta in TypeScript (
.tsxo.ts). - Usa React Class Components (non hooks/functional components) ereditando da
React.Component. - Lo stato è gestito in modo immutabile tramite
this.setState. - I checkbox mantengono uno stato locale tramite un
Map<string, number[]>interno.
- Scritta in TypeScript (
-
Pagine Custom (
react/<nome-pagina>/):- Possono essere in
.jsxo.tsx(TypeScript concheckJs: true). - Usano Functional Components ed eventualmente Hooks se necessario.
- Istanziano la pagina tramite la classe:
new ElixForms.ElixFormsReact(props).render().
- Possono essere in
-
Import di Tipi:
- Avendo
verbatimModuleSyntax: trueabilitato in TypeScript, è obbligatorio usareimport typeper i tipi (es.import type { JSX } from 'react';).
- Avendo
Configurazione di Build e Sviluppo
- Ogni pagina è un'applicazione Vite autonoma configurata in
vite.config.js. - La build deve produrre un singolo bundle JS autolimitato (
codeSplitting: false,manualChunks: undefined). - I CSS locali e SCSS moduli devono essere iniettati nel bundle finale tramite il plugin
vite-plugin-css-injected-by-js. - I CSS globali del design system di UniPR non vanno inclusi nella build ma caricati a runtime via
@import url(...)inApp.css.
Skill React Correlate
Fai riferimento alle seguenti skill per maggiori dettagli operativi:
- elixforms-common-library: Documentazione componenti e factory.
- elixforms-create-new-page: Scaffolding di una nuova pagina React.
- elixforms-typescript-conventions: Linee guida di tipizzazione.
- elixforms-vite-build-config: Bundling e build singola.
- elixforms-dev-workflow: Comandi dev, build e debug in VS Code.