Compare commits
No commits in common. '927fca314e8d539bf13bef72ec189ca81ec2972d' and 'cb54d9f991a6ed06bed9cbe524be84cc4e6f1f3a' have entirely different histories.
927fca314e
...
cb54d9f991
@ -1,46 +1,48 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
|
import NextImage from "next/image";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { FC } from "react";
|
import { FC } from "react";
|
||||||
|
|
||||||
import { Avatar } from "@nextui-org/avatar";
|
|
||||||
import { Card, CardBody } from "@nextui-org/card";
|
import { Card, CardBody } from "@nextui-org/card";
|
||||||
|
import { Image } from "@nextui-org/image";
|
||||||
|
|
||||||
import { ChannelItem } from "@/client/typings/item";
|
import { ChannelItem } from "@/client/typings/item";
|
||||||
import formatBigNumber from "@/utils/formatBigNumber";
|
import formatBigNumber from "@/utils/formatBigNumber";
|
||||||
import { channelUrl } from "@/utils/urls";
|
|
||||||
|
|
||||||
export const Channel: FC<{ data: ChannelItem }> = ({ data }) => {
|
export const Channel: FC<{ data: ChannelItem }> = ({ data }) => {
|
||||||
const url = channelUrl(data.id);
|
const url = `/channel/${data.id}`;
|
||||||
|
|
||||||
|
const imageSize = 200;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
<Link href={url}>
|
||||||
<Card>
|
<Card>
|
||||||
<CardBody>
|
<CardBody>
|
||||||
<div className="flex flex-row gap-4">
|
<div className="flex flex-row gap-4">
|
||||||
<Link href={url}>
|
<Image
|
||||||
<Avatar
|
width={imageSize}
|
||||||
className="w-32 h-32 text-2xl"
|
height={imageSize}
|
||||||
src={data.thumbnail}
|
src={data.thumbnail}
|
||||||
name={data.name}
|
alt={data.name}
|
||||||
isBordered
|
as={NextImage}
|
||||||
|
className="rounded-full"
|
||||||
|
unoptimized
|
||||||
/>
|
/>
|
||||||
</Link>
|
|
||||||
<div className="flex-1 gap-2 flex flex-col justify-center">
|
<div className="flex-1 flex flex-col justify-center">
|
||||||
<div className="flex flex-col">
|
<h1 className="text-lg">{data.name}</h1>
|
||||||
<Link href={url}>
|
<div className="flex flex-row gap-4 items-center font-semibold text-default-600">
|
||||||
<p className="text-lg">{data.name}</p>
|
<h1>{formatBigNumber(data.subscribers)} subscribers</h1>
|
||||||
</Link>
|
|
||||||
<div className="flex flex-row gap-4 items-center tracking-tight text-default-400">
|
|
||||||
<p>{formatBigNumber(data.subscribers)} subscribers</p>
|
|
||||||
{data.videos !== 0 && (
|
{data.videos !== 0 && (
|
||||||
<p>{formatBigNumber(data.videos)} videos</p>
|
<h1>{formatBigNumber(data.videos)} videos</h1>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<p className="text-default-600">{data.description}</p>
|
<p className="text-default-600">{data.description}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</CardBody>
|
</CardBody>
|
||||||
</Card>
|
</Card>
|
||||||
|
</Link>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -1 +0,0 @@
|
|||||||
export const imageSize = 30;
|
|
@ -1,37 +0,0 @@
|
|||||||
import NextLink from "next/link";
|
|
||||||
import { FC } from "react";
|
|
||||||
|
|
||||||
import { Avatar } from "@nextui-org/avatar";
|
|
||||||
import { Link } from "@nextui-org/link";
|
|
||||||
|
|
||||||
import { Author as AuthorProps } from "@/client/typings/author";
|
|
||||||
import formatBigNumber from "@/utils/formatBigNumber";
|
|
||||||
import { channelUrl } from "@/utils/urls";
|
|
||||||
|
|
||||||
export const Author: FC<{ data: AuthorProps }> = ({ data }) => {
|
|
||||||
return (
|
|
||||||
<Link
|
|
||||||
as={NextLink}
|
|
||||||
href={data.id ? channelUrl(data.id) : undefined}
|
|
||||||
className="flex flex-row gap-4 items-center"
|
|
||||||
>
|
|
||||||
{data.avatar && (
|
|
||||||
<Avatar
|
|
||||||
isBordered
|
|
||||||
name={data.name}
|
|
||||||
size="lg"
|
|
||||||
src={data.avatar}
|
|
||||||
alt={data.name}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
<div className="flex flex-col gap-2">
|
|
||||||
<p className="text-lg text-default-600">{data.name}</p>
|
|
||||||
{data.subscribers && (
|
|
||||||
<p className="text-default-400 tracking-tight">
|
|
||||||
{formatBigNumber(data.subscribers)} subscribers
|
|
||||||
</p>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</Link>
|
|
||||||
);
|
|
||||||
};
|
|
Loading…
Reference in new issue