generated from mantinedev/next-app-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpage.tsx
54 lines (49 loc) · 1.72 KB
/
page.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import { albums } from "@/utils/albums";
import { Flex, Card, Stack, Text, Container, Title } from "@mantine/core";
import { Spotify } from "react-spotify-embed";
import classes from "./page.module.css";
import { musicBlurb } from "@/utils/pageBlurbs";
import { Metadata } from "next";
export const metadata: Metadata = {
title: "Music | Sympathetic Vibrations",
description: "Learn more about the music that SympVibes has produced over the years! ",
};
interface Album {
title: string;
year: string;
link: string;
}
function AlbumContent({ title, year, link }: Album) {
return (
<Card shadow="sm" withBorder style={{ width: "325px", minWidth: "325px" }} radius={"md"}>
<Stack align="center" gap="xs">
<Text size="xl" fw={700}>
{title}
</Text>
<Text c="dimmed">{year}</Text>
<Spotify link={link} />
</Stack>
</Card>
);
}
export default function Page() {
return (
<>
<Container size="md" p="xl" pb="xs">
<Title className={classes.title} ta="center">
<Text inherit variant="gradient" component="span" gradient={{ from: "blue", to: "gray" }}>
Music
</Text>
</Title>
<Text ta="center">{musicBlurb}</Text>
</Container>
<Container p="xl" fluid>
<Flex direction="row" gap="lg" wrap="wrap" align="center" justify="center">
{albums.map((album) => (
<AlbumContent key={album.title} {...album} />
))}
</Flex>
</Container>
</>
);
}