feat: align Report Designer dialogs with theme and add devlog entry for theme alignment

This commit is contained in:
2025-12-03 02:15:06 +01:00
parent 92330b75c6
commit 8a735e1443
4 changed files with 47 additions and 8 deletions

View File

@@ -14,3 +14,5 @@ File riassuntivo dello stato di sviluppo di Zentral.
- Refinement logica attivazione/acquisto moduli, gestione dipendenze e UI.
- [2025-12-03 Move Reports Menu](./devlog/2025-12-03_move_reports_menu.md) - **Completato**
- Spostamento voce menu Report sotto Amministrazione.
- [2025-12-03 Report Designer Theme](./devlog/2025-12-03_report_designer_theme.md) - **Completato**
- Allineamento completo del Report Designer al tema scuro (Canvas, Toolbar, Dialogs).

View File

@@ -0,0 +1,34 @@
# Report Designer Theme Alignment
## Obiettivo
Allineare completamente il Report Designer al tema scuro dell'applicazione. L'obiettivo è eliminare incongruenze visive come sfondi bianchi hardcoded, griglie poco visibili e componenti non adattivi in modalità dark.
## Stato Attuale
**Completato**
## Modifiche Apportate
### 1. Editor Canvas (`EditorCanvas.tsx`)
- **Sfondo Canvas**: Implementata logica dinamica per utilizzare `#1e1e1e` (dark) o `#ffffff` (light) in base al tema.
- **Griglia**: Colore delle linee della griglia reso dinamico (`#333333` in dark mode) per garantire visibilità.
- **Shadows & Selection**: Aggiornati colori di selezione e ombre per essere coerenti con il tema.
### 2. Toolbar (`EditorToolbar.tsx`)
- **Background Pulsanti**: Sostituiti i colori hardcoded `grey.100` e `grey.200` con i token del tema `action.hover` e `action.selected`.
- **Visibilità**: Migliorato il contrasto delle icone e dei testi nella toolbar.
### 3. Designer Page (`ReportEditorPage.tsx`)
- **Sfondo Workspace**: Lo sfondo del contenitore principale (dietro il foglio) ora utilizza `theme.palette.background.default` in dark mode invece di un grigio scuro hardcoded, uniformandosi al resto dell'app.
### 4. Pannelli Laterali (`DataBindingPanel.tsx`, `DatasetSelector.tsx`)
- **Empty States**: Sostituiti sfondi `grey.50` con `background.default` per le schermate di "Nessun dataset selezionato".
- **Liste e Header**: Aggiornati i colori di sfondo degli header e degli elementi delle liste per utilizzare `action.hover` e colori primari con opacità corretta.
### 5. Dialogs (`PreviewDialog.tsx`, `ImageUploadDialog.tsx`)
- **Preview**: Sfondi delle liste e delle sezioni di dettaglio aggiornati a `background.default`.
- **Image Upload**: Corretti sfondi dell'area di drag & drop e dei pannelli per supportare il dark mode.
- **Fix Tecnici**: Aggiunta importazione mancante `alpha` in `ImageUploadDialog.tsx`.
## Prossimi Passi Suggeriti
- Verificare eventuali altri dialoghi minori nel report editor (es. impostazioni avanzate) per assicurare copertura totale.
- Testare l'export PDF per assicurarsi che i colori di sfondo (se non desiderati) non vengano esportati erroneamente (il canvas background è solo visuale).

View File

@@ -17,6 +17,7 @@ import {
useTheme,
AppBar,
Toolbar,
alpha,
} from "@mui/material";
import {
CloudUpload as UploadIcon,
@@ -324,7 +325,9 @@ export default function ImageUploadDialog({
borderRadius: 2,
p: isMobile ? 3 : 4,
textAlign: "center",
bgcolor: isDragging ? "primary.50" : "grey.50",
bgcolor: isDragging
? (theme) => alpha(theme.palette.primary.main, 0.08)
: "background.default",
cursor: "pointer",
transition: "all 0.2s",
minHeight: isMobile ? 150 : "auto",
@@ -425,7 +428,7 @@ export default function ImageUploadDialog({
border: 1,
borderColor: "divider",
borderRadius: 2,
bgcolor: "grey.50",
bgcolor: "background.default",
}}
>
<Typography variant="subtitle2" color="primary" gutterBottom>
@@ -436,7 +439,7 @@ export default function ImageUploadDialog({
display: "flex",
justifyContent: "center",
alignItems: "center",
bgcolor: "white",
bgcolor: "background.paper",
borderRadius: 1,
p: 1,
mb: 1,

View File

@@ -240,8 +240,8 @@ export default function PreviewDialog({
const query = entityQueries[index];
const selectedEntity = isSelected
? ((query.data as EntityListItemDto[]) || []).find(
(e) => e.id === selections[dataset.id],
)
(e) => e.id === selections[dataset.id],
)
: null;
return (
@@ -319,7 +319,7 @@ export default function PreviewDialog({
p: 2,
borderBottom: 1,
borderColor: "divider",
bgcolor: "grey.50",
bgcolor: "background.default",
}}
>
{isMobile && (
@@ -478,7 +478,7 @@ export default function PreviewDialog({
p: 1,
borderTop: 1,
borderColor: "divider",
bgcolor: "grey.50",
bgcolor: "background.default",
}}
>
<Typography variant="caption" color="text.secondary">
@@ -571,7 +571,7 @@ export default function PreviewDialog({
<Box
sx={{
p: 2,
bgcolor: "grey.50",
bgcolor: "background.default",
borderBottom: 1,
borderColor: "divider",
}}