diff --git a/ui/src/pages/AppsTab/AppDeploymentPage/hooks/useDeploymentPageState.ts b/ui/src/pages/AppsTab/AppDeploymentPage/hooks/useDeploymentPageState.ts index 1e8b7dcb..a570de1a 100644 --- a/ui/src/pages/AppsTab/AppDeploymentPage/hooks/useDeploymentPageState.ts +++ b/ui/src/pages/AppsTab/AppDeploymentPage/hooks/useDeploymentPageState.ts @@ -96,7 +96,9 @@ export function useDeploymentPageState( agentLogLevel: (agentConfig?.agentLogLevel as string) ?? defaultForm.monitoring.agentLogLevel, metricsEnabled: agentConfig?.metricsEnabled ?? defaultForm.monitoring.metricsEnabled, metricsInterval: defaultForm.monitoring.metricsInterval, - samplingRate: agentConfig?.samplingRate !== undefined ? String(agentConfig.samplingRate) : defaultForm.monitoring.samplingRate, + samplingRate: agentConfig?.samplingRate !== undefined + ? (Number.isInteger(agentConfig.samplingRate) ? `${agentConfig.samplingRate}.0` : String(agentConfig.samplingRate)) + : defaultForm.monitoring.samplingRate, compressSuccess: agentConfig?.compressSuccess ?? defaultForm.monitoring.compressSuccess, replayEnabled: defaultForm.monitoring.replayEnabled, routeControlEnabled: defaultForm.monitoring.routeControlEnabled, diff --git a/ui/src/pages/AppsTab/AppDeploymentPage/index.tsx b/ui/src/pages/AppsTab/AppDeploymentPage/index.tsx index 3ae36f6d..9325042e 100644 --- a/ui/src/pages/AppsTab/AppDeploymentPage/index.tsx +++ b/ui/src/pages/AppsTab/AppDeploymentPage/index.tsx @@ -113,7 +113,7 @@ export default function AppDeploymentPage() { const dirty = useFormDirty(form, serverState, stagedJar); const { dialogOpen: blockerOpen, confirm: blockerConfirm, cancel: blockerCancel } = useUnsavedChangesBlocker(dirty.anyLocalEdit); - const serverDirtyAgainstDeploy = dirtyState?.dirty ?? false; + const serverDirtyAgainstDeploy = dirtyState?.dirty ?? true; const deploymentInProgress = !!activeDeployment; const primaryMode = computeMode({ deploymentInProgress, @@ -220,6 +220,8 @@ export default function AppDeploymentPage() { setStagedJar(null); + toast({ title: 'Configuration saved', variant: 'success' }); + // Invalidate dirty-state so the button reflects the new saved state await queryClient.invalidateQueries({ queryKey: ['apps', envSlug, targetApp.slug, 'dirty-state'] });