1
0
forked from baron/baron-sso

fix(adminfront): fix ReferenceErrors and null checks in UI components

- Import and initialize 'navigate' in TenantUsersPage and TenantAdminsAndOwnersTab.
- Use optional chaining for 'user.id' in UserDetailPage to prevent runtime errors during initial load.
This commit is contained in:
2026-05-13 15:08:36 +09:00
parent 9681945f5a
commit f047c24a38
3 changed files with 5 additions and 3 deletions

View File

@@ -11,7 +11,7 @@ import {
} from "lucide-react"; } from "lucide-react";
import { useState } from "react"; import { useState } from "react";
import { useAuth } from "react-oidc-context"; import { useAuth } from "react-oidc-context";
import { useParams } from "react-router-dom"; import { useNavigate, useParams } from "react-router-dom";
import { Badge } from "../../../components/ui/badge"; import { Badge } from "../../../components/ui/badge";
import { Button } from "../../../components/ui/button"; import { Button } from "../../../components/ui/button";
import { import {
@@ -66,6 +66,7 @@ function mergePendingMembers(
export function TenantAdminsAndOwnersTab() { export function TenantAdminsAndOwnersTab() {
const auth = useAuth(); const auth = useAuth();
const navigate = useNavigate();
const currentUserId = auth.user?.profile.sub; const currentUserId = auth.user?.profile.sub;
const { tenantId } = useParams<{ tenantId: string }>(); const { tenantId } = useParams<{ tenantId: string }>();
const queryClient = useQueryClient(); const queryClient = useQueryClient();

View File

@@ -9,7 +9,7 @@ import {
UserMinus, UserMinus,
UserPlus, UserPlus,
} from "lucide-react"; } from "lucide-react";
import { Link, useParams } from "react-router-dom"; import { Link, useNavigate, useParams } from "react-router-dom";
import { Badge } from "../../../components/ui/badge"; import { Badge } from "../../../components/ui/badge";
import { Button } from "../../../components/ui/button"; import { Button } from "../../../components/ui/button";
import { import {
@@ -38,6 +38,7 @@ import { t } from "../../../lib/i18n";
function TenantUsersPage() { function TenantUsersPage() {
const params = useParams<{ tenantId: string }>(); const params = useParams<{ tenantId: string }>();
const navigate = useNavigate();
const tenantId = params.tenantId ?? ""; const tenantId = params.tenantId ?? "";
const queryClient = useQueryClient(); const queryClient = useQueryClient();

View File

@@ -1078,7 +1078,7 @@ function UserDetailPage() {
id="role" id="role"
className="flex h-11 w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary disabled:opacity-50" className="flex h-11 w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary disabled:opacity-50"
{...register("role")} {...register("role")}
disabled={profile?.role !== "super_admin" || profile?.id === user.id} disabled={profile?.role !== "super_admin" || profile?.id === user?.id}
> >
<option value="super_admin"> <option value="super_admin">
{t("ui.admin.role.super_admin", "시스템 관리자")} {t("ui.admin.role.super_admin", "시스템 관리자")}