Skip to content

Commit

Permalink
feat: add share component to bean details
Browse files Browse the repository at this point in the history
  • Loading branch information
marcelblijleven committed Dec 31, 2023
1 parent 7a6784d commit 4a6db23
Showing 1 changed file with 6 additions and 12 deletions.
18 changes: 6 additions & 12 deletions src/app/coffee/[coffeeId]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
import {currentUser} from "@clerk/nextjs";
import {type User} from "@clerk/nextjs/api";
import {type Metadata, type ResolvingMetadata} from "next";
import Image from "next/image";
import Link from "next/link";
import {notFound} from "next/navigation";

import {BeanDetail} from "@/components/detail-pages/bean-detail";
import {Title} from "@/components/layout/title";
import {Button, buttonVariants} from "@/components/ui/button";
import {buttonVariants} from "@/components/ui/button";
import {getBeanDetails, getBeanDetailsWithFreezeEntries} from "@/lib/db/beans/get-bean-details";
import {canView} from "@/lib/perms";
import {cn} from "@/lib/utils";
import {ShareComponent} from "@/components/coffee/share";

type PageProps = {
params: { coffeeId: string}
}

type BeanDetails = Awaited<ReturnType<typeof getBeanDetails>>

export async function generateMetadata({params}: PageProps, parent: ResolvingMetadata,): Promise<Metadata> {
// read route params
const id = params.coffeeId;
Expand All @@ -37,7 +39,7 @@ export async function generateMetadata({params}: PageProps, parent: ResolvingMet
};
}

function Buttons({user, bean} :{user: User | null, bean: Awaited<ReturnType<typeof getBeanDetails>>}) {
function Buttons({user, bean} :{user: User | null, bean: BeanDetails}) {
if (!bean || !user || user.publicMetadata.databaseId !== bean.userId) return null;

return (
Expand All @@ -51,19 +53,11 @@ function Buttons({user, bean} :{user: User | null, bean: Awaited<ReturnType<type
>
Freeze
</Link>
{/*<BeanConquerorButton bean={bean} />*/}
<ShareComponent bean={bean} />
</div>
);
}

function BeanConquerorButton({bean}: {bean:Awaited<ReturnType<typeof getBeanDetails>>}) {
return (
<Button variant={"outline"} size={"sm"}>
<Image src={"/beanconqueror_logo.png"} alt={"Beanconqueror logo"} height={20} width={20} />
</Button>
);
}

export default async function CoffeeDetailPage({ params }: { params: { coffeeId: string } }) {
const user: User | null = await currentUser();
const bean = await getBeanDetailsWithFreezeEntries(params.coffeeId, user?.publicMetadata?.databaseId as number || undefined);
Expand Down

0 comments on commit 4a6db23

Please sign in to comment.