From f116afebd213b0a63e32cf3bd54f1cca2a01c42c Mon Sep 17 00:00:00 2001 From: Aditya Thakral Date: Wed, 25 Aug 2021 11:52:27 -0400 Subject: [PATCH] Implement dynamic /resources/tech-talks --- components/Image.tsx | 4 +++ components/MiniTechTalkCard.module.css | 4 ++- components/MiniTechTalkCard.tsx | 29 +++++++++++++------- pages/resources/tech-talks.tsx | 38 +++++++++++++++----------- 4 files changed, 48 insertions(+), 27 deletions(-) diff --git a/components/Image.tsx b/components/Image.tsx index cc913deb..8175af56 100644 --- a/components/Image.tsx +++ b/components/Image.tsx @@ -1,6 +1,10 @@ import React, { ImgHTMLAttributes } from "react"; export function Image(props: ImgHTMLAttributes) { + if (props.src?.startsWith("http://") || props.src?.startsWith("https://")) { + return ; + } + const { src: relativeSrc = "" } = props; let absoluteSrc = process.env.NEXT_PUBLIC_BASE_PATH ?? "/"; diff --git a/components/MiniTechTalkCard.module.css b/components/MiniTechTalkCard.module.css index d8312a46..2120333c 100644 --- a/components/MiniTechTalkCard.module.css +++ b/components/MiniTechTalkCard.module.css @@ -1,9 +1,11 @@ -.card { +.card > a { display: flex; flex-direction: row; box-sizing: border-box; padding: calc(16rem / 16); font-size: 1rem; + color: inherit; + text-decoration: inherit; } .card aside { diff --git a/components/MiniTechTalkCard.tsx b/components/MiniTechTalkCard.tsx index b5ab0cd9..c6781a6d 100644 --- a/components/MiniTechTalkCard.tsx +++ b/components/MiniTechTalkCard.tsx @@ -1,3 +1,4 @@ +import Link from "next/link"; import React from "react"; import { Image } from "./Image"; @@ -5,28 +6,36 @@ import { Image } from "./Image"; import styles from "./MiniTechTalkCard.module.css"; interface MiniTechTalkProps { + slug: string; title: string; presentors: string[]; poster: string; } export function MiniTechTalkCard({ + slug, title, presentors, poster, }: MiniTechTalkProps) { + const presentorsStr = presentors.join(", "); + return ( ); } diff --git a/pages/resources/tech-talks.tsx b/pages/resources/tech-talks.tsx index 6550f7a1..ca4df01f 100644 --- a/pages/resources/tech-talks.tsx +++ b/pages/resources/tech-talks.tsx @@ -1,12 +1,17 @@ +import { GetStaticProps } from "next"; import React from "react"; -import { Image } from "../../components/Image"; -import { MiniTechTalkCard } from "../../components/MiniTechTalkCard"; -import { metadata as tempTechTalkMetadata } from "../../content/playground/temp.talk.mdx"; +import { Image } from "@/components/Image"; +import { MiniTechTalkCard } from "@/components/MiniTechTalkCard"; +import { getTechTalks, Metadata } from "@/lib/tech-talks"; import styles from "./tech-talks.module.css"; -export default function TechTalks() { +interface Props { + talks: Metadata[]; +} + +export default function TechTalks({ talks }: Props) { return ( <>
@@ -21,19 +26,20 @@ export default function TechTalks() {
- - - + {talks.map((talk) => ( + + ))}
); } + +export const getStaticProps: GetStaticProps = async () => { + return { + props: { talks: (await getTechTalks()).map(({ metadata }) => metadata) }, + }; +};