Hey is a decentralized and permissionless social media app built with Lens Protocol 馃尶
1import { cva, type VariantProps } from "class-variance-authority";
2import type { HTMLAttributes, ReactNode } from "react";
3import { forwardRef, memo } from "react";
4import cn from "@/helpers/cn";
5
6const badgeVariants = cva("rounded-md border text-white text-xs shadow-xs", {
7 defaultVariants: { size: "sm", variant: "primary" },
8 variants: {
9 size: { sm: "px-2" },
10 variant: { primary: "border-black bg-black" }
11 }
12});
13
14interface BadgeProps
15 extends HTMLAttributes<HTMLDivElement>,
16 VariantProps<typeof badgeVariants> {
17 children?: ReactNode;
18}
19
20const Badge = forwardRef<HTMLDivElement, BadgeProps>(
21 ({ children, className, variant, size, ...rest }, ref) => {
22 return (
23 <span
24 className={cn(badgeVariants({ size, variant }), className)}
25 ref={ref}
26 {...rest}
27 >
28 {children}
29 </span>
30 );
31 }
32);
33
34export default memo(Badge);