Components
Architettura
I componenti seguono il pattern Presentational + Connected. I presentational ricevono attachments via prop ed emettono eventi; i Connected fanno il fetch via useAttachments e inoltrano UI ai presentational equivalenti.
| Strato | Presentational | Connected | Ruolo |
|---|---|---|---|
| Manager | AttachmentsManager | AttachmentsManagerConnected | UI completa: toolbar + grid/list + paginazione + delete bulk |
| Popover | AttachmentPopover | AttachmentPopoverConnected | Indicatore compatto con lista + dettagli su click |
| Dialog | — | AttachmentDialog | Modal che wrappa AttachmentsManagerConnected |
| Layout | AttachmentsList, AttachmentsGrid, AttachmentsToolbar | — | Componenti di disposizione |
| Item | AttachmentRow, AttachmentCard | — | Singolo allegato (lista/griglia) |
Quando usare i Connected
- Hai già configurato il plugin con un adapter (caso più comune in app).
- Vuoi delegare alla libreria fetch iniziale, refresh, upload toast, gestione errori.
- L'entità owner è identificata da
referenceTable+referenceColumn+referenceValue.
Quando usare i Presentational
- Storybook / preview live / SSR senza backend reale.
- Dati provenienti da uno store (Pinia) o da una cache già popolata.
- Vuoi controllare manualmente il flusso di upload/download/delete (es. workflow custom con conferma).
Sotto-pagine
AttachmentCard
Card singola per la vista a griglia — thumbnail/icona, nome troncato, azioni.
AttachmentDialog
Modal che wrappa AttachmentsManagerConnected per gestione allegati in popup. v-model:visible.
AttachmentPopover
Popover compatto con lista allegati + pannello dettagli. Componente presentational (riceve attachments via prop).
AttachmentPopoverConnected
Container che wrappa AttachmentPopover e fa fetch/download/delete automatico via useAttachments + adapter.
AttachmentRow
Singola riga di lista — icona, nome, dimensione, data, azioni.
AttachmentsGrid
Vista a griglia degli allegati con AttachmentCard responsive.
AttachmentsList
Lista verticale di allegati con AttachmentRow per ogni elemento.
AttachmentsManager
Componente presentational completo — toolbar, list/grid, paginazione, delete bulk. Riceve attachments via prop ed emette eventi.
AttachmentsManagerConnected
Container che wrappa AttachmentsManager e fa fetch/upload/delete automatico via useAttachments + adapter.
AttachmentsToolbar
Barra di azioni per gestire allegati — upload, ricerca, filtri, switch list/grid, refresh, delete bulk.