1
0
forked from baron/baron-sso

adminfront 린트 적용

This commit is contained in:
2026-02-23 17:23:11 +09:00
parent 4dc4e19c27
commit 2da570f42c
14 changed files with 29 additions and 27 deletions

View File

@@ -26,8 +26,7 @@ const badgeVariants = cva(
); );
export interface BadgeProps export interface BadgeProps
extends extends React.HTMLAttributes<HTMLDivElement>,
React.HTMLAttributes<HTMLDivElement>,
VariantProps<typeof badgeVariants> {} VariantProps<typeof badgeVariants> {}
function Badge({ className, variant, ...props }: BadgeProps) { function Badge({ className, variant, ...props }: BadgeProps) {

View File

@@ -34,8 +34,7 @@ const buttonVariants = cva(
); );
export interface ButtonProps export interface ButtonProps
extends extends React.ButtonHTMLAttributes<HTMLButtonElement>,
React.ButtonHTMLAttributes<HTMLButtonElement>,
VariantProps<typeof buttonVariants> { VariantProps<typeof buttonVariants> {
asChild?: boolean; asChild?: boolean;
} }

View File

@@ -1,7 +1,8 @@
import * as React from "react"; import * as React from "react";
import { cn } from "../../lib/utils"; import { cn } from "../../lib/utils";
export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {} export interface InputProps
extends React.InputHTMLAttributes<HTMLInputElement> {}
const Input = React.forwardRef<HTMLInputElement, InputProps>( const Input = React.forwardRef<HTMLInputElement, InputProps>(
({ className, type, ...props }, ref) => { ({ className, type, ...props }, ref) => {

View File

@@ -1,7 +1,8 @@
import * as React from "react"; import * as React from "react";
import { cn } from "../../lib/utils"; import { cn } from "../../lib/utils";
export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {} export interface TextareaProps
extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}
const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>( const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
({ className, ...props }, ref) => { ({ className, ...props }, ref) => {

View File

@@ -192,7 +192,7 @@ export function TenantAdminsTab() {
</div> </div>
) : usersQuery.isLoading ? ( ) : usersQuery.isLoading ? (
<div className="p-10 text-center"> <div className="p-10 text-center">
<div className="animate-spin rounded-full h-6 w-6 border-b-2 border-primary mx-auto"></div> <div className="animate-spin rounded-full h-6 w-6 border-b-2 border-primary mx-auto" />
</div> </div>
) : searchResults.length === 0 ? ( ) : searchResults.length === 0 ? (
<div className="p-10 text-center text-muted-foreground"> <div className="p-10 text-center text-muted-foreground">
@@ -279,7 +279,7 @@ export function TenantAdminsTab() {
{adminsQuery.isLoading ? ( {adminsQuery.isLoading ? (
<TableRow> <TableRow>
<TableCell colSpan={3} className="h-32 text-center"> <TableCell colSpan={3} className="h-32 text-center">
<div className="animate-spin rounded-full h-6 w-6 border-b-2 border-primary mx-auto"></div> <div className="animate-spin rounded-full h-6 w-6 border-b-2 border-primary mx-auto" />
</TableCell> </TableCell>
</TableRow> </TableRow>
) : currentAdmins.length === 0 ? ( ) : currentAdmins.length === 0 ? (

View File

@@ -11,8 +11,10 @@ import {
UserPlus, UserPlus,
Users, Users,
} from "lucide-react"; } from "lucide-react";
import React, { useState } from "react"; import type React from "react";
import { useState } from "react";
import { useParams } from "react-router-dom"; import { useParams } from "react-router-dom";
import { toast } from "sonner";
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 {
@@ -33,15 +35,14 @@ import {
TableRow, TableRow,
} from "../../../components/ui/table"; } from "../../../components/ui/table";
import { import {
type GroupSummary,
addGroupMember, addGroupMember,
createGroup, createGroup,
deleteGroup, deleteGroup,
fetchGroups, fetchGroups,
removeGroupMember, removeGroupMember,
type GroupSummary,
} from "../../../lib/adminApi"; } from "../../../lib/adminApi";
import { t } from "../../../lib/i18n"; import { t } from "../../../lib/i18n";
import { toast } from "sonner";
type UserGroupNode = GroupSummary & { type UserGroupNode = GroupSummary & {
children: UserGroupNode[]; children: UserGroupNode[];

View File

@@ -1,7 +1,7 @@
import { useMutation, useQuery } from "@tanstack/react-query"; import { useMutation, useQuery } from "@tanstack/react-query";
import type { AxiosError } from "axios"; import type { AxiosError } from "axios";
import { CornerDownRight, Pencil, Plus, RefreshCw, Trash2 } from "lucide-react"; import { CornerDownRight, Pencil, Plus, RefreshCw, Trash2 } from "lucide-react";
import React from "react"; import type React from "react";
import { Link, useNavigate } from "react-router-dom"; import { Link, useNavigate } 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";
@@ -21,9 +21,9 @@ import {
TableRow, TableRow,
} from "../../../components/ui/table"; } from "../../../components/ui/table";
import { import {
type TenantSummary,
deleteTenant, deleteTenant,
fetchTenants, fetchTenants,
type TenantSummary,
} from "../../../lib/adminApi"; } from "../../../lib/adminApi";
import { t } from "../../../lib/i18n"; import { t } from "../../../lib/i18n";

View File

@@ -11,7 +11,8 @@ import {
UserPlus, UserPlus,
Users, Users,
} from "lucide-react"; } from "lucide-react";
import React, { useState } from "react"; import type React from "react";
import { useState } from "react";
import { useParams } from "react-router-dom"; import { useParams } from "react-router-dom";
import { toast } from "sonner"; import { toast } from "sonner";
import { Badge } from "../../../components/ui/badge"; import { Badge } from "../../../components/ui/badge";
@@ -34,12 +35,12 @@ import {
TableRow, TableRow,
} from "../../../components/ui/table"; } from "../../../components/ui/table";
import { import {
type GroupSummary,
addGroupMember, addGroupMember,
createGroup, createGroup,
deleteGroup, deleteGroup,
fetchGroups, fetchGroups,
removeGroupMember, removeGroupMember,
type GroupSummary,
} from "../../../lib/adminApi"; } from "../../../lib/adminApi";
import { t } from "../../../lib/i18n"; import { t } from "../../../lib/i18n";

View File

@@ -156,7 +156,7 @@ export function UserGroupDetailPage() {
if (isGroupLoading) if (isGroupLoading)
return ( return (
<div className="flex items-center justify-center p-12"> <div className="flex items-center justify-center p-12">
<div className="animate-spin rounded-full h-8 w-8 border-b-2 border-primary"></div> <div className="animate-spin rounded-full h-8 w-8 border-b-2 border-primary" />
<span className="ml-3 text-muted-foreground"> <span className="ml-3 text-muted-foreground">
{t("msg.common.loading", "로딩 중...")} {t("msg.common.loading", "로딩 중...")}
</span> </span>
@@ -534,7 +534,7 @@ export function UserGroupDetailPage() {
{isRolesLoading ? ( {isRolesLoading ? (
<TableRow> <TableRow>
<TableCell colSpan={3} className="text-center py-8"> <TableCell colSpan={3} className="text-center py-8">
<div className="animate-spin rounded-full h-5 w-5 border-b-2 border-primary mx-auto"></div> <div className="animate-spin rounded-full h-5 w-5 border-b-2 border-primary mx-auto" />
</TableCell> </TableCell>
</TableRow> </TableRow>
) : !groupRoles || groupRoles.length === 0 ? ( ) : !groupRoles || groupRoles.length === 0 ? (

View File

@@ -26,8 +26,7 @@ const badgeVariants = cva(
); );
export interface BadgeProps export interface BadgeProps
extends extends React.HTMLAttributes<HTMLDivElement>,
React.HTMLAttributes<HTMLDivElement>,
VariantProps<typeof badgeVariants> {} VariantProps<typeof badgeVariants> {}
function Badge({ className, variant, ...props }: BadgeProps) { function Badge({ className, variant, ...props }: BadgeProps) {

View File

@@ -34,8 +34,7 @@ const buttonVariants = cva(
); );
export interface ButtonProps export interface ButtonProps
extends extends React.ButtonHTMLAttributes<HTMLButtonElement>,
React.ButtonHTMLAttributes<HTMLButtonElement>,
VariantProps<typeof buttonVariants> { VariantProps<typeof buttonVariants> {
asChild?: boolean; asChild?: boolean;
} }

View File

@@ -1,7 +1,8 @@
import * as React from "react"; import * as React from "react";
import { cn } from "../../lib/utils"; import { cn } from "../../lib/utils";
export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {} export interface InputProps
extends React.InputHTMLAttributes<HTMLInputElement> {}
const Input = React.forwardRef<HTMLInputElement, InputProps>( const Input = React.forwardRef<HTMLInputElement, InputProps>(
({ className, type, ...props }, ref) => { ({ className, type, ...props }, ref) => {

View File

@@ -1,7 +1,8 @@
import * as React from "react"; import * as React from "react";
import { cn } from "../../lib/utils"; import { cn } from "../../lib/utils";
export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {} export interface TextareaProps
extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}
const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>( const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
({ className, ...props }, ref) => { ({ className, ...props }, ref) => {

View File

@@ -1,4 +1,4 @@
import { ShieldHalf, LogIn, ExternalLink } from "lucide-react"; import { ExternalLink, LogIn, ShieldHalf } from "lucide-react";
import { useAuth } from "react-oidc-context"; import { useAuth } from "react-oidc-context";
import { Button } from "../../components/ui/button"; import { Button } from "../../components/ui/button";
import { import {
@@ -71,9 +71,9 @@ function LoginPage() {
</Card> </Card>
<div className="flex justify-center gap-4"> <div className="flex justify-center gap-4">
<div className="h-1 w-1 rounded-full bg-primary/30"></div> <div className="h-1 w-1 rounded-full bg-primary/30" />
<div className="h-1 w-1 rounded-full bg-primary/30"></div> <div className="h-1 w-1 rounded-full bg-primary/30" />
<div className="h-1 w-1 rounded-full bg-primary/30"></div> <div className="h-1 w-1 rounded-full bg-primary/30" />
</div> </div>
<p className="px-8 text-center text-sm text-muted-foreground"> <p className="px-8 text-center text-sm text-muted-foreground">