diff --git a/app/projects/page.tsx b/app/projects/page.tsx index 876c935..8c99303 100644 --- a/app/projects/page.tsx +++ b/app/projects/page.tsx @@ -4,6 +4,8 @@ import Link from "next/link"; import { Project } from "@/types/models"; import { Button, buttonVariants } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; +import { Badge } from "@/components/ui/badge"; +import { X } from "lucide-react"; import { Dialog, DialogContent, @@ -14,6 +16,7 @@ import { } from "@/components/ui/dialog"; import { Form, + FormDescription, FormControl, FormField, FormItem, @@ -160,6 +163,29 @@ export default function Projects() { onKeyDown={keyHandler} /> + + {form.getValues("stack").map((stack) => ( + + {stack}{" "} + + setValue( + "stack", + form + .getValues("stack") + .filter((s) => s !== stack) + ) + } + /> + + ))} + )} diff --git a/components/ui/badge.tsx b/components/ui/badge.tsx new file mode 100644 index 0000000..f000e3e --- /dev/null +++ b/components/ui/badge.tsx @@ -0,0 +1,36 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const badgeVariants = cva( + "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
+ ) +} + +export { Badge, badgeVariants }