From 2e0ed5e3bba44916455f4aa071c2897cc1f0c69c Mon Sep 17 00:00:00 2001 From: christian Date: Mon, 10 Jun 2024 01:27:15 +0200 Subject: [PATCH] added apply button and proper dimensions to icons --- package-lock.json | 1 + package.json | 1 + src/app/_jobcard/JobCard.tsx | 12 +++++-- src/app/_jobcard/JobCardIcon.tsx | 10 ++++-- src/app/page.tsx | 6 ++++ src/components/ui/button.tsx | 56 ++++++++++++++++++++++++++++++++ 6 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 src/components/ui/button.tsx diff --git a/package-lock.json b/package-lock.json index 2bce8d4..24d4441 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "@radix-ui/react-accordion": "^1.1.2", + "@radix-ui/react-slot": "^1.0.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "html-react-parser": "^5.1.10", diff --git a/package.json b/package.json index b9a70ae..5bbd060 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "@radix-ui/react-accordion": "^1.1.2", + "@radix-ui/react-slot": "^1.0.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "html-react-parser": "^5.1.10", diff --git a/src/app/_jobcard/JobCard.tsx b/src/app/_jobcard/JobCard.tsx index 43ca06c..e2a76e7 100644 --- a/src/app/_jobcard/JobCard.tsx +++ b/src/app/_jobcard/JobCard.tsx @@ -8,6 +8,7 @@ import parse from "html-react-parser"; import styles from "./JobCardDescription.module.css"; import Image from "next/image"; import JobCardIconContainer from "./JobCardIconContainer"; +import { Button } from "@/components/ui/button"; interface JobPosting { title: string; @@ -72,8 +73,15 @@ export default async function JobCard(props: { job: JobPosting }) { -
- {parsedDescription} +
+
+ {parsedDescription} +
+
+ + + +
diff --git a/src/app/_jobcard/JobCardIcon.tsx b/src/app/_jobcard/JobCardIcon.tsx index 39c31d4..6e2d259 100644 --- a/src/app/_jobcard/JobCardIcon.tsx +++ b/src/app/_jobcard/JobCardIcon.tsx @@ -3,8 +3,14 @@ import Image from "next/image"; export default function JobCardIcon(props: { src: string }) { const { src } = props; return ( -
- {`${src} +
+ {`${src}
); } diff --git a/src/app/page.tsx b/src/app/page.tsx index 9ca0cdd..f8fb520 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -4,6 +4,12 @@ export default async function Home() { return (
+

Software Developer Jobs

+

+ Get entry- and mid level software developer jobs in Denmark as soon as + they are posted! +

+
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx new file mode 100644 index 0000000..304787f --- /dev/null +++ b/src/components/ui/button.tsx @@ -0,0 +1,56 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-stone-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 dark:ring-offset-stone-950 dark:focus-visible:ring-stone-300", + { + variants: { + variant: { + default: "bg-stone-900 text-stone-50 hover:bg-stone-900/90 dark:bg-stone-50 dark:text-stone-900 dark:hover:bg-stone-50/90", + destructive: + "bg-red-500 text-stone-50 hover:bg-red-500/90 dark:bg-red-900 dark:text-stone-50 dark:hover:bg-red-900/90", + outline: + "border border-stone-200 bg-white hover:bg-stone-100 hover:text-stone-900 dark:border-stone-800 dark:bg-stone-950 dark:hover:bg-stone-800 dark:hover:text-stone-50", + secondary: + "bg-stone-100 text-stone-900 hover:bg-stone-100/80 dark:bg-stone-800 dark:text-stone-50 dark:hover:bg-stone-800/80", + ghost: "hover:bg-stone-100 hover:text-stone-900 dark:hover:bg-stone-800 dark:hover:text-stone-50", + link: "text-stone-900 underline-offset-4 hover:underline dark:text-stone-50", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + + ) + } +) +Button.displayName = "Button" + +export { Button, buttonVariants }