feat(ApplicationDetail): implement ArgoCD Application Detail view

- New component: src/components/ApplicationDetail.tsx
  - Route: /argocd/applications/:name
  - Header: app name, health/sync badges, project, namespace, target revision, repo URL
  - Resource Tree: table of Application.status.resources[] with kind, name, namespace, health, sync
  - Sync History: table of Application.status.history[] (last 10) with revision, deployedAt, initiatedBy
  - Events: K8s events via fieldSelector=involvedObject.name={appName}
- Updated src/components/ApplicationsList.tsx: App Name column links to detail view
- Updated src/index.tsx: added ApplicationDetail route
- Unit tests: 11 tests covering pure functions and component smoke tests

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit was merged in pull request #4.
This commit is contained in:
Test User
2026-04-21 20:46:46 +00:00
parent 908df705c0
commit 8009f616bc
4 changed files with 691 additions and 2 deletions
+4 -2
View File
@@ -11,7 +11,7 @@ import InputLabel from "@mui/material/InputLabel";
import MenuItem from "@mui/material/MenuItem";
import Select from "@mui/material/Select";
import React, { useEffect, useMemo, useState } from "react";
import { useLocation } from "react-router-dom";
import { Link, useLocation } from "react-router-dom";
import { ArgoCDApplication, ArgoCDApplicationsList } from "../api/argocd";
// --- Types ---
@@ -165,7 +165,9 @@ export default function ApplicationsList() {
const columns = [
{
label: "App Name",
getter: (row: ApplicationRow) => row.name,
getter: (row: ApplicationRow) => (
<Link to={`/argocd/applications/${row.name}`}>{row.name}</Link>
),
},
{
label: "Namespace",