From b6b3b7543469dcd356268560d5e8febaea71d341 Mon Sep 17 00:00:00 2001 From: zmeyer44 Date: Wed, 1 Nov 2023 12:10:52 -0400 Subject: [PATCH] adding metadata --- app/(app)/event/[naddr]/layout.tsx | 53 +++++++++++++++++++++++ app/(app)/event/[naddr]/page.tsx | 29 +++++++++++-- bun.lockb | Bin 401816 -> 402556 bytes lib/clients/redis/index.ts | 8 ++++ lib/server-actions/events/cache/index.ts | 34 +++++++++++++++ next.config.js | 4 ++ package.json | 1 + 7 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 app/(app)/event/[naddr]/layout.tsx create mode 100644 lib/clients/redis/index.ts create mode 100644 lib/server-actions/events/cache/index.ts diff --git a/app/(app)/event/[naddr]/layout.tsx b/app/(app)/event/[naddr]/layout.tsx new file mode 100644 index 0000000..dbc37cc --- /dev/null +++ b/app/(app)/event/[naddr]/layout.tsx @@ -0,0 +1,53 @@ +import type { Metadata, ResolvingMetadata } from "next"; +import { get } from "@/lib/server-actions/events/cache"; + +type Props = { + params: { naddr: string }; + searchParams: { [key: string]: string | string[] | undefined }; +}; + +export async function generateMetadata( + { params, searchParams }: Props, + parent: ResolvingMetadata, +): Promise { + // read route params + const identifier = params.naddr; + + // fetch data + const event = await get(identifier); + + // optionally access and extend (rather than replace) parent metadata + const previousImages = (await parent).openGraph?.images || []; + if (!event) { + return { + title: "Flockstr Event", + openGraph: { + images: previousImages, + }, + }; + } + const title = `${event.name} | Flockstr`; + return { + title: title, + description: event.description, + openGraph: { + title: title, + description: event.description, + images: [event.image, ...previousImages], + }, + twitter: { + title: title, + description: event.description, + images: [event.image], + card: "summary_large_image", + }, + }; +} + +export default function metadataLayout({ + children, +}: { + children: React.ReactNode; +}) { + <>{children}; +} diff --git a/app/(app)/event/[naddr]/page.tsx b/app/(app)/event/[naddr]/page.tsx index c2d7364..3b798b0 100644 --- a/app/(app)/event/[naddr]/page.tsx +++ b/app/(app)/event/[naddr]/page.tsx @@ -1,7 +1,5 @@ "use client"; -import { useState } from "react"; -import Image from "next/image"; -import Link from "next/link"; +import { useEffect } from "react"; import { nip19 } from "nostr-tools"; import useEvents from "@/lib/hooks/useEvents"; import Spinner from "@/components/spinner"; @@ -19,6 +17,8 @@ import LocationContainer from "./_components/LocationContainer"; import AnnouncementsContainer from "./_components/AnnouncementsContainer"; import DiscussionContainer from "./_components/DiscussionContainer"; import AttendeesContainer from "./_components/AttendeesContainer"; +import { add, get } from "@/lib/server-actions/events/cache"; +import { BANNER } from "@/constants"; export default function EventPage({ params: { naddr }, @@ -41,6 +41,29 @@ export default function EventPage({ }, }); const event = events[0]; + useEffect(() => { + console.log("EFFECT CALLED", event); + if (event) { + const { tags, content } = event; + const name = getTagValues("name", tags) ?? "Untitled"; + const image = + getTagValues("image", tags) ?? + getTagValues("picture", tags) ?? + getTagValues("banner", tags) ?? + BANNER; + console.log("setting event"); + add({ + identifier: naddr, + name: name, + description: content, + image: image, + }); + (async () => { + const res = await get(naddr); + console.log("RESPONE", res); + })(); + } + }, [event]); if (!event) { return ( diff --git a/bun.lockb b/bun.lockb index e3ed9cf873de9973ffb1d274b8ebc831a34233d1..a3d38b2ca6cbe404f1965d86b2cc20dabab658ec 100755 GIT binary patch delta 74518 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 A;Q#;t delta 73763 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 diff --git a/lib/clients/redis/index.ts b/lib/clients/redis/index.ts new file mode 100644 index 0000000..02005a9 --- /dev/null +++ b/lib/clients/redis/index.ts @@ -0,0 +1,8 @@ +import { Redis } from "@upstash/redis"; + +const redis = new Redis({ + url: "https://us1-new-mako-37785.upstash.io", + token: process.env.UPSTASH_REDIS_REST_TOKEN as string, +}); + +export { redis }; diff --git a/lib/server-actions/events/cache/index.ts b/lib/server-actions/events/cache/index.ts new file mode 100644 index 0000000..4210828 --- /dev/null +++ b/lib/server-actions/events/cache/index.ts @@ -0,0 +1,34 @@ +"use server"; +import { redis } from "@/lib/clients/redis"; +import { z } from "zod"; + +const eventSchema = z.object({ + identifier: z.string(), + name: z.string(), + description: z.string(), + image: z.string(), +}); + +export async function get(identifier: string) { + const data = await redis.get(identifier); + console.log("Data", data); + try { + const parsedData = eventSchema.parse({ identifier, ...(data as Object) }); + return parsedData; + } catch (err) { + console.log("Error", err); + return; + } +} +export async function add(data: z.infer) { + let { identifier, name, description, image } = data; + try { + redis.set(identifier, { name, description, image }); + return { + success: true, + }; + } catch (err) { + console.log("Error", err); + return; + } +} diff --git a/next.config.js b/next.config.js index d9e9f2a..f1f6e03 100644 --- a/next.config.js +++ b/next.config.js @@ -1,5 +1,9 @@ /** @type {import('next').NextConfig} */ const nextConfig = { + experimental: { + serverActions: true, + swcPlugins: ["next-superjson-plugin"], + }, async rewrites() { return [ { diff --git a/package.json b/package.json index 1cb74e7..3b3371e 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "@radix-ui/react-tooltip": "^1.0.7", "@react-google-maps/api": "^2.19.2", "@tailwindcss/container-queries": "^0.1.1", + "@upstash/redis": "^1.24.3", "aws-sdk": "^2.1475.0", "buffer": "^6.0.3", "class-variance-authority": "^0.7.0",