Skip to content

Commit ebc6fd4

Browse files
Fix redirect routes: preserve objectName param, use absolute paths
- Add ObjectRedirect helper component that preserves :objectName URL param - /system/objects/account → /system/metadata/object/account - Fix missing leading slash in Navigate to props - Remove duplicate useParams import Agent-Logs-Url: https://github.com/objectstack-ai/objectui/sessions/089aad95-279a-44ed-852a-464a710ba509 Co-authored-by: xuyushun441-sys <255036401+xuyushun441-sys@users.noreply.github.com>
1 parent f9f9f51 commit ebc6fd4

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

apps/console/src/App.tsx

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BrowserRouter, Routes, Route, Navigate, useNavigate, useLocation } from 'react-router-dom';
1+
import { BrowserRouter, Routes, Route, Navigate, useNavigate, useLocation, useParams } from 'react-router-dom';
22
import { useState, useEffect, useCallback, lazy, Suspense, useMemo, type ReactNode } from 'react';
33
import { ModalForm } from '@object-ui/plugin-form';
44
import { Empty, EmptyTitle, EmptyDescription, Button } from '@object-ui/components';
@@ -60,7 +60,6 @@ const ProfilePage = lazy(() => import('./pages/system/ProfilePage').then(m => ({
6060
const HomePage = lazy(() => import('./pages/home/HomePage').then(m => ({ default: m.HomePage })));
6161
const HomeLayout = lazy(() => import('./pages/home/HomeLayout').then(m => ({ default: m.HomeLayout })));
6262

63-
import { useParams } from 'react-router-dom';
6463
import { ThemeProvider } from './components/theme-provider';
6564
import { ConsoleToaster } from './components/ConsoleToaster';
6665

@@ -294,7 +293,7 @@ export function AppContent() {
294293
<Route path="system" element={<SystemHubPage />} />
295294
<Route path="system/apps" element={<AppManagementPage />} />
296295
<Route path="system/objects" element={<Navigate to="/system/metadata/object" replace />} />
297-
<Route path="system/objects/:objectName" element={<Navigate to="/system/metadata/object" replace />} />
296+
<Route path="system/objects/:objectName" element={<ObjectRedirect />} />
298297
<Route path="system/users" element={<UserManagementPage />} />
299298
<Route path="system/organizations" element={<OrgManagementPage />} />
300299
<Route path="system/roles" element={<RoleManagementPage />} />
@@ -389,8 +388,8 @@ export function AppContent() {
389388
{/* System Administration Routes */}
390389
<Route path="system" element={<SystemHubPage />} />
391390
<Route path="system/apps" element={<AppManagementPage />} />
392-
<Route path="system/objects" element={<Navigate to="system/metadata/object" replace />} />
393-
<Route path="system/objects/:objectName" element={<Navigate to="system/metadata/object" replace />} />
391+
<Route path="system/objects" element={<Navigate to="/system/metadata/object" replace />} />
392+
<Route path="system/objects/:objectName" element={<ObjectRedirect />} />
394393
<Route path="system/users" element={<UserManagementPage />} />
395394
<Route path="system/organizations" element={<OrgManagementPage />} />
396395
<Route path="system/roles" element={<RoleManagementPage />} />
@@ -475,6 +474,19 @@ function RootRedirect() {
475474
return <Navigate to="/home" replace />;
476475
}
477476

477+
/**
478+
* Redirect helper for legacy `/system/objects/:objectName` routes.
479+
* Preserves the `objectName` URL param so that
480+
* `/system/objects/account` → `/system/metadata/object/account`.
481+
*/
482+
function ObjectRedirect() {
483+
const { objectName } = useParams<{ objectName?: string }>();
484+
const target = objectName
485+
? `/system/metadata/object/${objectName}`
486+
: '/system/metadata/object';
487+
return <Navigate to={target} replace />;
488+
}
489+
478490
/**
479491
* SystemRoutes — Top-level system admin routes accessible without any app context.
480492
* Provides a minimal layout with system navigation sidebar.
@@ -486,7 +498,7 @@ function SystemRoutes() {
486498
<Route path="/" element={<SystemHubPage />} />
487499
<Route path="apps" element={<AppManagementPage />} />
488500
<Route path="objects" element={<Navigate to="/system/metadata/object" replace />} />
489-
<Route path="objects/:objectName" element={<Navigate to="/system/metadata/object" replace />} />
501+
<Route path="objects/:objectName" element={<ObjectRedirect />} />
490502
<Route path="users" element={<UserManagementPage />} />
491503
<Route path="organizations" element={<OrgManagementPage />} />
492504
<Route path="roles" element={<RoleManagementPage />} />

0 commit comments

Comments
 (0)