import React from 'react'; import { Modal, Button, Stack, Text, Code, ScrollArea, Group, Badge, Alert, Loader } from '@mantine/core'; import { useAppConfig } from '../../hooks/useAppConfig'; interface AppConfigModalProps { opened: boolean; onClose: () => void; } const AppConfigModal: React.FC = ({ opened, onClose }) => { const { config, loading, error, refetch } = useAppConfig(); const renderConfigSection = (title: string, data: any) => { if (!data || typeof data !== 'object') return null; return ( {title} {Object.entries(data).map(([key, value]) => ( {key}: {typeof value === 'boolean' ? ( {value ? 'true' : 'false'} ) : typeof value === 'object' ? ( {JSON.stringify(value, null, 2)} ) : ( String(value) || 'null' )} ))} ); }; const basicConfig = config ? { appName: config.appName, appNameNavbar: config.appNameNavbar, baseUrl: config.baseUrl, contextPath: config.contextPath, serverPort: config.serverPort, } : null; const securityConfig = config ? { enableLogin: config.enableLogin, } : null; const systemConfig = config ? { enableAlphaFunctionality: config.enableAlphaFunctionality, enableAnalytics: config.enableAnalytics, } : null; const premiumConfig = config ? { premiumEnabled: config.premiumEnabled, premiumKey: config.premiumKey ? '***hidden***' : null, runningProOrHigher: config.runningProOrHigher, runningEE: config.runningEE, license: config.license, } : null; const integrationConfig = config ? { GoogleDriveEnabled: config.GoogleDriveEnabled, SSOAutoLogin: config.SSOAutoLogin, } : null; const legalConfig = config ? { termsAndConditions: config.termsAndConditions, privacyPolicy: config.privacyPolicy, cookiePolicy: config.cookiePolicy, impressum: config.impressum, accessibilityStatement: config.accessibilityStatement, } : null; return ( This modal shows the current application configuration for testing purposes only. {loading && ( Loading configuration... )} {error && ( {error} )} {config && ( {renderConfigSection('Basic Configuration', basicConfig)} {renderConfigSection('Security Configuration', securityConfig)} {renderConfigSection('System Configuration', systemConfig)} {renderConfigSection('Premium/Enterprise Configuration', premiumConfig)} {renderConfigSection('Integration Configuration', integrationConfig)} {renderConfigSection('Legal Configuration', legalConfig)} {config.error && ( {config.error} )} Raw Configuration {JSON.stringify(config, null, 2)} )} ); }; export default AppConfigModal;