diff --git a/ui/src/pages/AppsTab/AppsTab.tsx b/ui/src/pages/AppsTab/AppsTab.tsx index 320f768d..94e62985 100644 --- a/ui/src/pages/AppsTab/AppsTab.tsx +++ b/ui/src/pages/AppsTab/AppsTab.tsx @@ -617,6 +617,7 @@ function OverviewSubTab({ app, deployments, versions, environments, envMap, sele const isSelectedEnv = !selectedEnvId || d.environmentId === selectedEnvId; const canAct = isSelectedEnv && (d.status === 'RUNNING' || d.status === 'STARTING'); const canStart = isSelectedEnv && d.status === 'STOPPED'; + const configChanged = canAct && d.deployedAt && new Date(app.updatedAt) > new Date(d.deployedAt); const url = dEnv ? `/${dEnv.slug}/${app.slug}/` : ''; return ( @@ -641,7 +642,8 @@ function OverviewSubTab({ app, deployments, versions, environments, envMap, sele )} {d.deployedAt ? timeAgo(d.deployedAt) : '—'} - + + {configChanged && } {canAct && } {canStart && } {!isSelectedEnv && switch env to manage} @@ -820,7 +822,7 @@ function ConfigSubTab({ app, environment }: { app: App; environment?: Environmen }; try { await updateContainerConfig.mutateAsync({ appId: app.slug, config: containerConfig }); - toast({ title: 'Configuration saved', variant: 'success' }); + toast({ title: 'Configuration saved', description: 'Redeploy to apply changes to running deployments.', variant: 'success' }); setEditing(false); } catch { toast({ title: 'Failed to save container config', variant: 'error', duration: 86_400_000 }); } }