From 5e79bec7b06c7adc1513c39ff3f8cfac60dd724d Mon Sep 17 00:00:00 2001 From: mschwab Date: Fri, 24 Jul 2026 08:27:26 -0700 Subject: [PATCH 1/3] feat(studio): point /anonymizer/:name at a job-detail placeholder [ASTD-327] The :name route rendered the builder form (shared component). Split it: /new keeps the builder, /:name renders a job-detail placeholder showing the job name. Full detail page is ASTD-330. Signed-off-by: mschwab --- .../routes/AnonymizerJobDetailRoute/index.tsx | 29 +++++++++++++++++++ .../src/routes/groups/anonymizerRoutes.tsx | 9 +++++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 web/packages/studio/src/routes/AnonymizerJobDetailRoute/index.tsx diff --git a/web/packages/studio/src/routes/AnonymizerJobDetailRoute/index.tsx b/web/packages/studio/src/routes/AnonymizerJobDetailRoute/index.tsx new file mode 100644 index 00000000000..08b006f47e7 --- /dev/null +++ b/web/packages/studio/src/routes/AnonymizerJobDetailRoute/index.tsx @@ -0,0 +1,29 @@ +// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { PageHeader, Stack, Text } from '@nvidia/foundations-react-core'; +import { AccessibleTitle } from '@studio/components/AccessibleTitle'; +import { ANONYMIZER_ENABLED } from '@studio/constants/environment'; +import { ROUTE_PARAMS } from '@studio/constants/routes'; +import { useBreadcrumbs } from '@studio/providers/breadcrumbs/useBreadcrumbs'; +import { FC } from 'react'; +import { useParams } from 'react-router-dom'; + +export const AnonymizerJobDetailRoute: FC | null = ANONYMIZER_ENABLED + ? () => { + const { [ROUTE_PARAMS.anonymizerJobName]: jobName } = useParams(); + + useBreadcrumbs({ + items: [{ slotLabel: 'Anonymizer' }, { slotLabel: jobName ?? 'Job' }], + }); + + return ( + + + + Job details coming soon. + + + ); + } + : null; diff --git a/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx b/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx index 00fb640337c..067df50ef30 100644 --- a/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx +++ b/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx @@ -22,6 +22,13 @@ const AnonymizerBuilderRoute = default: m.AnonymizerBuilderRoute as FC, })) ); +const AnonymizerJobDetailRoute = + ANONYMIZER_ENABLED && + lazy(() => + import('@studio/routes/AnonymizerJobDetailRoute').then((m) => ({ + default: m.AnonymizerJobDetailRoute as FC, + })) + ); export const anonymizerRoutes: RouteObject[] = gateAnonymizerRoutes([ { @@ -36,7 +43,7 @@ export const anonymizerRoutes: RouteObject[] = gateAnonymizerRoutes([ }, { path: ROUTES.workspace.anonymizerJob, - element: AnonymizerBuilderRoute ? : null, + element: AnonymizerJobDetailRoute ? : null, errorElement: , }, ]); From 0cde4a7511b438017c2615d62bf823683b72edd6 Mon Sep 17 00:00:00 2001 From: mschwab Date: Fri, 24 Jul 2026 09:26:35 -0700 Subject: [PATCH 2/3] refactor(studio): type-only FC import in anonymizer routes [ASTD-331] Signed-off-by: mschwab --- .../studio/src/routes/AnonymizerJobDetailRoute/index.tsx | 2 +- web/packages/studio/src/routes/groups/anonymizerRoutes.tsx | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/web/packages/studio/src/routes/AnonymizerJobDetailRoute/index.tsx b/web/packages/studio/src/routes/AnonymizerJobDetailRoute/index.tsx index 08b006f47e7..1f21d049f25 100644 --- a/web/packages/studio/src/routes/AnonymizerJobDetailRoute/index.tsx +++ b/web/packages/studio/src/routes/AnonymizerJobDetailRoute/index.tsx @@ -6,7 +6,7 @@ import { AccessibleTitle } from '@studio/components/AccessibleTitle'; import { ANONYMIZER_ENABLED } from '@studio/constants/environment'; import { ROUTE_PARAMS } from '@studio/constants/routes'; import { useBreadcrumbs } from '@studio/providers/breadcrumbs/useBreadcrumbs'; -import { FC } from 'react'; +import type { FC } from 'react'; import { useParams } from 'react-router-dom'; export const AnonymizerJobDetailRoute: FC | null = ANONYMIZER_ENABLED diff --git a/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx b/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx index 067df50ef30..628233f2d75 100644 --- a/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx +++ b/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx @@ -5,7 +5,8 @@ import { ErrorPanel } from '@studio/components/ErrorPanel'; import { ANONYMIZER_ENABLED } from '@studio/constants/environment'; import { ROUTES } from '@studio/constants/routes'; import { gateAnonymizerRoutes } from '@studio/routes/utils'; -import { FC, lazy } from 'react'; +import { lazy } from 'react'; +import type { FC } from 'react'; import type { RouteObject } from 'react-router-dom'; const AnonymizerListRoute = From 032de70edd1ebec5a971b9d21251a6a15dcf2926 Mon Sep 17 00:00:00 2001 From: mschwab Date: Fri, 24 Jul 2026 09:54:59 -0700 Subject: [PATCH 3/3] fix(studio): merge duplicate react import in anonymizer routes [ASTD-331] Signed-off-by: mschwab --- web/packages/studio/src/routes/groups/anonymizerRoutes.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx b/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx index 628233f2d75..02e474f0e54 100644 --- a/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx +++ b/web/packages/studio/src/routes/groups/anonymizerRoutes.tsx @@ -5,8 +5,7 @@ import { ErrorPanel } from '@studio/components/ErrorPanel'; import { ANONYMIZER_ENABLED } from '@studio/constants/environment'; import { ROUTES } from '@studio/constants/routes'; import { gateAnonymizerRoutes } from '@studio/routes/utils'; -import { lazy } from 'react'; -import type { FC } from 'react'; +import { lazy, type FC } from 'react'; import type { RouteObject } from 'react-router-dom'; const AnonymizerListRoute =