From 6143ca03fbce5ae0d6d76e7d63b61817e8dcda0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Wei=C3=9F?= Date: Tue, 25 Feb 2025 17:07:29 +0100 Subject: [PATCH] refactor: replace interface with type --- resources/js/components/app-content.tsx | 2 +- resources/js/components/app-header.tsx | 2 +- resources/js/components/app-shell.tsx | 2 +- resources/js/components/icon.tsx | 2 +- resources/js/components/ui/badge.tsx | 2 +- resources/js/components/ui/button.tsx | 2 +- resources/js/components/ui/icon.tsx | 2 +- resources/js/components/ui/placeholder-pattern.tsx | 2 +- resources/js/components/ui/sheet.tsx | 2 +- resources/js/components/user-menu-content.tsx | 2 +- resources/js/layouts/app-layout.tsx | 2 +- resources/js/layouts/app/app-header-layout.tsx | 2 +- resources/js/layouts/auth/auth-simple-layout.tsx | 2 +- resources/js/layouts/auth/auth-split-layout.tsx | 2 +- resources/js/pages/auth/login.tsx | 4 ++-- resources/js/pages/auth/register.tsx | 2 +- resources/js/pages/auth/reset-password.tsx | 4 ++-- resources/js/types/index.ts | 12 ++++++------ 18 files changed, 25 insertions(+), 25 deletions(-) diff --git a/resources/js/components/app-content.tsx b/resources/js/components/app-content.tsx index ae43d9e6..3d845863 100644 --- a/resources/js/components/app-content.tsx +++ b/resources/js/components/app-content.tsx @@ -1,7 +1,7 @@ import { SidebarInset } from '@/components/ui/sidebar'; import * as React from 'react'; -interface AppContentProps extends React.ComponentProps<'div'> { +type AppContentProps = React.ComponentProps<'div'> & { variant?: 'header' | 'sidebar'; } diff --git a/resources/js/components/app-header.tsx b/resources/js/components/app-header.tsx index d151697c..acf663ad 100644 --- a/resources/js/components/app-header.tsx +++ b/resources/js/components/app-header.tsx @@ -38,7 +38,7 @@ const rightNavItems: NavItem[] = [ const activeItemStyles = 'text-neutral-900 dark:bg-neutral-800 dark:text-neutral-100'; -interface AppHeaderProps { +type AppHeaderProps = { breadcrumbs?: BreadcrumbItem[]; } diff --git a/resources/js/components/app-shell.tsx b/resources/js/components/app-shell.tsx index 1e576119..9a514437 100644 --- a/resources/js/components/app-shell.tsx +++ b/resources/js/components/app-shell.tsx @@ -1,7 +1,7 @@ import { SidebarProvider } from '@/components/ui/sidebar'; import { useState } from 'react'; -interface AppShellProps { +type AppShellProps = { children: React.ReactNode; variant?: 'header' | 'sidebar'; } diff --git a/resources/js/components/icon.tsx b/resources/js/components/icon.tsx index fe958b46..b988b831 100644 --- a/resources/js/components/icon.tsx +++ b/resources/js/components/icon.tsx @@ -1,7 +1,7 @@ import { cn } from '@/lib/utils'; import { type LucideProps } from 'lucide-react'; -interface IconProps extends Omit { +type IconProps = Omit & { iconNode: React.ComponentType; } diff --git a/resources/js/components/ui/badge.tsx b/resources/js/components/ui/badge.tsx index 4e6c1c8f..67aa929c 100644 --- a/resources/js/components/ui/badge.tsx +++ b/resources/js/components/ui/badge.tsx @@ -20,7 +20,7 @@ const badgeVariants = cva( }, ); -export interface BadgeProps extends React.HTMLAttributes, VariantProps {} +export type BadgeProps = React.HTMLAttributes & VariantProps; function Badge({ className, variant, ...props }: BadgeProps) { return
; diff --git a/resources/js/components/ui/button.tsx b/resources/js/components/ui/button.tsx index 315a2b16..b49a84a1 100644 --- a/resources/js/components/ui/button.tsx +++ b/resources/js/components/ui/button.tsx @@ -30,7 +30,7 @@ const buttonVariants = cva( }, ); -export interface ButtonProps extends React.ButtonHTMLAttributes, VariantProps { +export type ButtonProps = React.ButtonHTMLAttributes & VariantProps & { asChild?: boolean; } diff --git a/resources/js/components/ui/icon.tsx b/resources/js/components/ui/icon.tsx index bb8b3a06..1bfbd534 100644 --- a/resources/js/components/ui/icon.tsx +++ b/resources/js/components/ui/icon.tsx @@ -1,6 +1,6 @@ import { LucideIcon } from 'lucide-react'; -interface IconProps { +type IconProps = { iconNode?: LucideIcon | null; className?: string; } diff --git a/resources/js/components/ui/placeholder-pattern.tsx b/resources/js/components/ui/placeholder-pattern.tsx index b7b78677..e58528ed 100644 --- a/resources/js/components/ui/placeholder-pattern.tsx +++ b/resources/js/components/ui/placeholder-pattern.tsx @@ -1,6 +1,6 @@ import { useId } from 'react'; -interface PlaceholderPatternProps { +type PlaceholderPatternProps = { className?: string; } diff --git a/resources/js/components/ui/sheet.tsx b/resources/js/components/ui/sheet.tsx index b08d83af..5b8c6533 100644 --- a/resources/js/components/ui/sheet.tsx +++ b/resources/js/components/ui/sheet.tsx @@ -46,7 +46,7 @@ const sheetVariants = cva( }, ); -interface SheetContentProps extends React.ComponentPropsWithoutRef, VariantProps {} +type SheetContentProps = React.ComponentPropsWithoutRef & VariantProps const SheetContent = React.forwardRef, SheetContentProps>( ({ side = 'right', className, children, ...props }, ref) => ( diff --git a/resources/js/components/user-menu-content.tsx b/resources/js/components/user-menu-content.tsx index a3d29478..cf08e4b7 100644 --- a/resources/js/components/user-menu-content.tsx +++ b/resources/js/components/user-menu-content.tsx @@ -5,7 +5,7 @@ import { type User } from '@/types'; import { Link } from '@inertiajs/react'; import { LogOut, Settings } from 'lucide-react'; -interface UserMenuContentProps { +type UserMenuContentProps = { user: User; } diff --git a/resources/js/layouts/app-layout.tsx b/resources/js/layouts/app-layout.tsx index 29b27ae2..eb4b354a 100644 --- a/resources/js/layouts/app-layout.tsx +++ b/resources/js/layouts/app-layout.tsx @@ -1,7 +1,7 @@ import AppLayoutTemplate from '@/layouts/app/app-sidebar-layout'; import { type BreadcrumbItem } from '@/types'; -interface AppLayoutProps { +type AppLayoutProps = { children: React.ReactNode; breadcrumbs?: BreadcrumbItem[]; } diff --git a/resources/js/layouts/app/app-header-layout.tsx b/resources/js/layouts/app/app-header-layout.tsx index d3616aff..49e1ca01 100644 --- a/resources/js/layouts/app/app-header-layout.tsx +++ b/resources/js/layouts/app/app-header-layout.tsx @@ -3,7 +3,7 @@ import { AppHeader } from '@/components/app-header'; import { AppShell } from '@/components/app-shell'; import { type BreadcrumbItem } from '@/types'; -interface AppHeaderLayoutProps { +type AppHeaderLayoutProps = { children: React.ReactNode; breadcrumbs?: BreadcrumbItem[]; } diff --git a/resources/js/layouts/auth/auth-simple-layout.tsx b/resources/js/layouts/auth/auth-simple-layout.tsx index 015e333c..bf1e7ceb 100644 --- a/resources/js/layouts/auth/auth-simple-layout.tsx +++ b/resources/js/layouts/auth/auth-simple-layout.tsx @@ -1,7 +1,7 @@ import AppLogoIcon from '@/components/app-logo-icon'; import { Link } from '@inertiajs/react'; -interface AuthLayoutProps { +type AuthLayoutProps = { children: React.ReactNode; name?: string; title?: string; diff --git a/resources/js/layouts/auth/auth-split-layout.tsx b/resources/js/layouts/auth/auth-split-layout.tsx index 2544f4ff..5331ff31 100644 --- a/resources/js/layouts/auth/auth-split-layout.tsx +++ b/resources/js/layouts/auth/auth-split-layout.tsx @@ -2,7 +2,7 @@ import AppLogoIcon from '@/components/app-logo-icon'; import { type SharedData } from '@/types'; import { Link, usePage } from '@inertiajs/react'; -interface AuthLayoutProps { +type AuthLayoutProps = { children: React.ReactNode; title?: string; description?: string; diff --git a/resources/js/pages/auth/login.tsx b/resources/js/pages/auth/login.tsx index 0c329cd7..04bfd9cb 100644 --- a/resources/js/pages/auth/login.tsx +++ b/resources/js/pages/auth/login.tsx @@ -10,13 +10,13 @@ import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import AuthLayout from '@/layouts/auth-layout'; -interface LoginForm { +type LoginForm = { email: string; password: string; remember: boolean; } -interface LoginProps { +type LoginProps = { status?: string; canResetPassword: boolean; } diff --git a/resources/js/pages/auth/register.tsx b/resources/js/pages/auth/register.tsx index 39fd4117..a69400c1 100644 --- a/resources/js/pages/auth/register.tsx +++ b/resources/js/pages/auth/register.tsx @@ -9,7 +9,7 @@ import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import AuthLayout from '@/layouts/auth-layout'; -interface RegisterForm { +type RegisterForm = { name: string; email: string; password: string; diff --git a/resources/js/pages/auth/reset-password.tsx b/resources/js/pages/auth/reset-password.tsx index 220d2ff9..05b582e6 100644 --- a/resources/js/pages/auth/reset-password.tsx +++ b/resources/js/pages/auth/reset-password.tsx @@ -8,12 +8,12 @@ import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import AuthLayout from '@/layouts/auth-layout'; -interface ResetPasswordProps { +type ResetPasswordProps = { token: string; email: string; } -interface ResetPasswordForm { +type ResetPasswordForm = { token: string; email: string; password: string; diff --git a/resources/js/types/index.ts b/resources/js/types/index.ts index 9929c24d..55c3dd8f 100644 --- a/resources/js/types/index.ts +++ b/resources/js/types/index.ts @@ -1,34 +1,34 @@ import { LucideIcon } from 'lucide-react'; -export interface Auth { +export type Auth = { user: User; } -export interface BreadcrumbItem { +export type BreadcrumbItem = { title: string; href: string; } -export interface NavGroup { +export type NavGroup = { title: string; items: NavItem[]; } -export interface NavItem { +export type NavItem = { title: string; url: string; icon?: LucideIcon | null; isActive?: boolean; } -export interface SharedData { +export type SharedData = { name: string; quote: { message: string; author: string }; auth: Auth; [key: string]: unknown; } -export interface User { +export type User = { id: number; name: string; email: string;