diff --git a/app/common/src/main/java/stirling/software/common/model/ApplicationProperties.java b/app/common/src/main/java/stirling/software/common/model/ApplicationProperties.java index 14704d825..df8d2648f 100644 --- a/app/common/src/main/java/stirling/software/common/model/ApplicationProperties.java +++ b/app/common/src/main/java/stirling/software/common/model/ApplicationProperties.java @@ -440,21 +440,9 @@ public class ApplicationProperties { @Data public static class Ui { - private String appName; - private String homeDescription; private String appNameNavbar; private List languages; - public String getAppName() { - return appName != null && appName.trim().length() > 0 ? appName : null; - } - - public String getHomeDescription() { - return homeDescription != null && homeDescription.trim().length() > 0 - ? homeDescription - : null; - } - public String getAppNameNavbar() { return appNameNavbar != null && appNameNavbar.trim().length() > 0 ? appNameNavbar diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/SettingsController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/SettingsController.java index 0c8c55655..b316c8ae6 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/SettingsController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/SettingsController.java @@ -72,14 +72,6 @@ public class SettingsController { // Update UI settings if (settings.containsKey("ui")) { Map ui = (Map) settings.get("ui"); - if (ui.containsKey("appName")) { - GeneralUtils.saveKeyToSettings("ui.appName", ui.get("appName")); - applicationProperties.getUi().setAppName(ui.get("appName")); - } - if (ui.containsKey("homeDescription")) { - GeneralUtils.saveKeyToSettings("ui.homeDescription", ui.get("homeDescription")); - applicationProperties.getUi().setHomeDescription(ui.get("homeDescription")); - } if (ui.containsKey("appNameNavbar")) { GeneralUtils.saveKeyToSettings("ui.appNameNavbar", ui.get("appNameNavbar")); applicationProperties.getUi().setAppNameNavbar(ui.get("appNameNavbar")); diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ConfigController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ConfigController.java index 072471e5c..0611e24e3 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ConfigController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ConfigController.java @@ -51,9 +51,7 @@ public class ConfigController { configData.put("serverPort", appConfig.getServerPort()); // Extract values from ApplicationProperties - configData.put("appName", applicationProperties.getUi().getAppName()); configData.put("appNameNavbar", applicationProperties.getUi().getAppNameNavbar()); - configData.put("homeDescription", applicationProperties.getUi().getHomeDescription()); configData.put("languages", applicationProperties.getUi().getLanguages()); // Security settings diff --git a/app/core/src/main/resources/settings.yml.template b/app/core/src/main/resources/settings.yml.template index 8143ba4c2..eecd815b1 100644 --- a/app/core/src/main/resources/settings.yml.template +++ b/app/core/src/main/resources/settings.yml.template @@ -153,8 +153,6 @@ system: cleanupSystemTemp: false # Whether to clean broader system temp directory ui: - appName: '' # application's visible name - homeDescription: '' # short description or tagline shown on the homepage appNameNavbar: '' # name displayed on the navigation bar languages: [] # If empty, all languages are enabled. To display only German and Polish ["de_DE", "pl_PL"]. British English is always enabled. diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 5db513d4a..eabb24932 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -9,6 +9,7 @@ import { SidebarProvider } from "./contexts/SidebarContext"; import { PreferencesProvider } from "./contexts/PreferencesContext"; import ErrorBoundary from "./components/shared/ErrorBoundary"; import HomePage from "./pages/HomePage"; +import AppConfigLoader from "./components/shared/AppConfigLoader"; // Import global styles import "./styles/tailwind.css"; @@ -43,6 +44,7 @@ export default function App() { + diff --git a/frontend/src/components/layout/Workbench.tsx b/frontend/src/components/layout/Workbench.tsx index 62fc48667..4fcf82bc9 100644 --- a/frontend/src/components/layout/Workbench.tsx +++ b/frontend/src/components/layout/Workbench.tsx @@ -6,6 +6,7 @@ import { useFileHandler } from '../../hooks/useFileHandler'; import { useFileState } from '../../contexts/FileContext'; import { useNavigationState, useNavigationActions } from '../../contexts/NavigationContext'; import { useViewer } from '../../contexts/ViewerContext'; +import { useAppConfig } from '../../hooks/useAppConfig'; import './Workbench.css'; import TopControls from '../shared/TopControls'; @@ -20,6 +21,7 @@ import DismissAllErrorsButton from '../shared/DismissAllErrorsButton'; // No props needed - component uses contexts directly export default function Workbench() { const { isRainbowMode } = useRainbowThemeContext(); + const { config } = useAppConfig(); // Use context-based hooks to eliminate all prop drilling const { selectors } = useFileState(); @@ -180,7 +182,14 @@ export default function Workbench() { {renderMainContent()} -