Localize shared modal, overlay and deployment-progress components.

Localize the confirm modal, delete button, deleting overlays/modal, the
build-progress modal, deployment progress bar/manager and the resource
upgrade modal via a shared components dictionary. Build-phase labels now
resolve from the dictionary; deleting overlays take name/kind and build
their own localized message (callers updated).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
keyhan
2026-06-11 13:23:44 +03:30
parent f8ee1ca168
commit e99ab789ba
14 changed files with 205 additions and 86 deletions
@@ -12,7 +12,6 @@ import { DeleteButtonLabel } from '@/components/delete-button-label';
import {
DeletingCardOverlay,
DeletingTableRowOverlay,
deletingResourceMessage,
deletingRowContentClass,
} from '@/components/deleting-overlay';
import { TruncatedText } from '@/components/truncated-text';
@@ -442,7 +441,8 @@ export default function AdminAppsPage() {
{rowDeleting && (
<DeletingTableRowOverlay
colSpan={8}
message={deletingResourceMessage('application', app.name)}
name={app.name}
kind="application"
/>
)}
</tr>
@@ -467,7 +467,7 @@ export default function AdminAppsPage() {
className={`relative card space-y-3 ${lifecycle === 'suspended' ? 'border-amber-200/80' : lifecycle === 'pending_deletion' ? 'border-red-200/80' : ''} ${cardDeleting ? 'bg-gray-50' : ''}`}
>
{cardDeleting && (
<DeletingCardOverlay message={deletingResourceMessage('application', app.name)} />
<DeletingCardOverlay name={app.name} kind="application" />
)}
<div className={cardDeleting ? deletingRowContentClass : undefined}>
<div className="flex items-start justify-between gap-3">
@@ -11,7 +11,6 @@ import { useConfirm } from '@/components/confirm-modal';
import { DeleteButtonLabel } from '@/components/delete-button-label';
import {
DeletingTableRowOverlay,
deletingResourceMessage,
deletingRowContentClass,
} from '@/components/deleting-overlay';
import { filterApplications } from '@/lib/product-type';
@@ -203,7 +202,8 @@ export default function AppsPage() {
{rowDeleting && (
<DeletingTableRowOverlay
colSpan={6}
message={deletingResourceMessage('application', app.name)}
name={app.name}
kind="application"
/>
)}
</tr>
@@ -12,7 +12,6 @@ import { useConfirm } from '@/components/confirm-modal';
import { DeleteButtonLabel } from '@/components/delete-button-label';
import {
DeletingCardOverlay,
deletingResourceMessage,
deletingRowContentClass,
} from '@/components/deleting-overlay';
import { filterManagedServices } from '@/lib/product-type';
@@ -140,7 +139,7 @@ export default function ServicesPage() {
} ${lifecycle === 'pending_deletion' ? 'border-l-4 border-l-red-400' : ''} ${cardDeleting ? 'bg-gray-50' : ''}`}
>
{cardDeleting && (
<DeletingCardOverlay message={deletingResourceMessage('service', svc.name)} />
<DeletingCardOverlay name={svc.name} kind="service" />
)}
<div
className={`flex flex-col sm:flex-row sm:items-center gap-4 flex-1 w-full min-w-0 ${cardDeleting ? deletingRowContentClass : ''}`}