fix: Correct the 'Apps' tab translation key and update existing tab labels when re-opening.
This commit is contained in:
@@ -42,3 +42,5 @@ File riassuntivo dello stato di sviluppo di Zentral.
|
||||
- Miglioramento UX tab: chiusura con middle-click, drag & drop, gruppi di tab personalizzati.
|
||||
- [2025-12-06 Tab Flicker Fix](./devlog/2025-12-06-011500_tab_flicker_fix.md) - **Completato**
|
||||
- Risolto problema di flicker rimuovendo l'aggiornamento manuale dello stato attivo e affidandosi esclusivamente alla sincronizzazione con l'URL.
|
||||
- [2025-12-06 Fix Apps Tab Translation](./devlog/2025-12-06-013500_fix_apps_tab_translation.md) - **Completato**
|
||||
- Corretta chiave di traduzione errata per la tab "Gestione Applicazioni" e migliorata la gestione dell'aggiornamento etichette tab.
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# Fix Apps Tab Translation
|
||||
|
||||
## Stato
|
||||
Completato
|
||||
|
||||
## Descrizione
|
||||
Risolto un problema per cui la tab "Gestione Applicazioni" mostrava il titolo "menu.modules" (chiave di traduzione errata) invece di "Applicazioni".
|
||||
|
||||
## Modifiche
|
||||
- Aggiornato `src/frontend/src/components/widgets/WelcomeWidget.tsx` per usare la chiave di traduzione corretta `menu.apps` invece di `menu.modules`.
|
||||
- Aggiornato `src/frontend/src/contexts/TabContext.tsx` per aggiornare l'etichetta della tab se questa è già aperta ma con un'etichetta diversa. Questo corregge il problema anche per le tab già aperte o salvate in cache con l'etichetta errata.
|
||||
|
||||
## Verifica
|
||||
- Verificato tramite browser che cliccando sul link nel widget o nella sidebar, la tab mostra ora correttamente "Applicazioni".
|
||||
@@ -32,7 +32,7 @@ export default function WelcomeWidget() {
|
||||
variant="contained"
|
||||
color="secondary"
|
||||
startIcon={<SettingsIcon />}
|
||||
onClick={() => openTab('/apps', t('menu.modules'))}
|
||||
onClick={() => openTab('/apps', t('menu.apps'))}
|
||||
sx={{ bgcolor: 'white', color: 'primary.main', '&:hover': { bgcolor: 'grey.100' }, alignSelf: 'flex-start' }}
|
||||
>
|
||||
Manage Modules
|
||||
|
||||
@@ -97,9 +97,18 @@ export function TabProvider({ children }: { children: ReactNode }) {
|
||||
}, [location.pathname, tabs]);
|
||||
|
||||
const openTab = (path: string, label: string, closable: boolean = true) => {
|
||||
if (!tabs.find((t) => t.path === path)) {
|
||||
setTabs((prev) => [...prev, { path, label, closable }]);
|
||||
}
|
||||
setTabs((prev) => {
|
||||
const existingTabIndex = prev.findIndex((t) => t.path === path);
|
||||
if (existingTabIndex !== -1) {
|
||||
if (prev[existingTabIndex].label !== label) {
|
||||
const newTabs = [...prev];
|
||||
newTabs[existingTabIndex] = { ...newTabs[existingTabIndex], label };
|
||||
return newTabs;
|
||||
}
|
||||
return prev;
|
||||
}
|
||||
return [...prev, { path, label, closable }];
|
||||
});
|
||||
navigate(path);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user