mirror of
https://github.com/linsa-io/linsa.git
synced 2026-01-12 12:20:23 +01:00
31 lines
614 B
TypeScript
31 lines
614 B
TypeScript
import * as React from "react"
|
|
import { cn } from "@/lib/utils"
|
|
import { icons } from "lucide-react"
|
|
|
|
export type IconProps = {
|
|
name: keyof typeof icons
|
|
className?: string
|
|
strokeWidth?: number
|
|
[key: string]: any
|
|
}
|
|
|
|
export const Icon = React.memo(
|
|
({ name, className, size, strokeWidth, ...props }: IconProps) => {
|
|
const IconComponent = icons[name]
|
|
|
|
if (!IconComponent) {
|
|
return null
|
|
}
|
|
|
|
return (
|
|
<IconComponent
|
|
className={cn(!size ? "size-4" : size, className)}
|
|
strokeWidth={strokeWidth || 2}
|
|
{...props}
|
|
/>
|
|
)
|
|
},
|
|
)
|
|
|
|
Icon.displayName = "Icon"
|