[refactor] Refactor Settings tab

This commit is contained in:
Sergey Konovalov
2026-01-04 12:20:47 +03:00
parent a192bb5ee0
commit e9a5708681
3 changed files with 9 additions and 8 deletions

View File

@ -21,11 +21,14 @@ const ConfigViewer = () => {
return config ? JSON.stringify(config, null, 2) : '';
}, [config]);
const copyToClipboard = () => {
if (jsonString) {
navigator.clipboard.writeText(jsonString);
const copyToClipboard = async () => {
if (!jsonString) return;
try {
await navigator.clipboard.writeText(jsonString);
setCopySuccess(true);
setTimeout(() => setCopySuccess(false), 2000);
} catch {
// Clipboard API may fail on HTTP or restricted contexts
}
};

View File

@ -21,14 +21,14 @@ const ShutdownTab = () => {
const shutdownMutation = useMutation({
mutationFn: enterMaintenanceMode,
onSuccess: () => {
queryClient.setQueryData(['maintenanceStatus'], prev => ({...(prev || {}), shutdown: true}));
queryClient.invalidateQueries({queryKey: ['maintenanceStatus']});
}
});
const resumeMutation = useMutation({
mutationFn: exitMaintenanceMode,
onSuccess: () => {
queryClient.setQueryData(['maintenanceStatus'], prev => ({...(prev || {}), shutdown: false}));
queryClient.invalidateQueries({queryKey: ['maintenanceStatus']});
}
});

View File

@ -233,9 +233,7 @@ function redactSensitiveParams(config, sensitivePaths) {
*/
function getFullConfigRedacted(ctx) {
const cfg = ctx.getFullCfg();
const configCopy = JSON.parse(JSON.stringify(cfg));
return redactSensitiveParams(configCopy, SENSITIVE_PARAM_PATHS);
return redactSensitiveParams(cfg, SENSITIVE_PARAM_PATHS);
}
module.exports = {validateScoped, getScopedBaseConfig, filterAdmin, getDiffFromBase, getFullConfigRedacted, getScopedConfig};