import React from "react";
import { useChatIdFromIdentifierCertificate } from "../../../src/hooks/useChatIdFromIdentifierCertificate";
import { useChats } from "../../../src/hooks/useChats";
import {
Button,
Center,
HStack,
Image,
Stack,
Text,
useBreakpoint,
useColorModeValue,
VStack,
} from "@chakra-ui/react";
import { PublicKey } from "@solana/web3.js";
import { usePublicKey } from "@strata-foundation/react";
import { useRouter } from "next/router";
import { useMemo } from "react";
import { Carousel } from "react-responsive-carousel";
import "react-responsive-carousel/lib/styles/carousel.min.css"; // requires a loader
import { route, routes } from "../../routes";
import { ActiveUsers } from "./ActiveUsers";
type Community = {
name: string;
description: string;
publicKey: string;
image: string;
};
export const FEATURED_COMMUNITIES: Community[] = [
{
name: "Solana Chat",
description: "A place for the Solana community to unwind",
publicKey: "EzNMGtFA62nvDfCybZi4vhfeJUoMJyMijcKoC8heoyHK",
image:
"https://solana.com/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Findex_low_cost.5dfdb6d1.png&w=2048&q=90",
},
{
name: "Taiyo Robotics",
description:
'"Trying out some innovative sh*t that may one day lead to web3 discord. What you’ve all cried about for so long!" - Tom',
publicKey: "ExLKWwbRGzE8Cy2z1bWPCk7iKE9iFZeVYFUgxhVUe98h",
image:
"/Taiyo.jpg",
},
{
name: "Open Collective Chat",
description:
"Solana’s first decentralized art collective. Share, discover, and support 1:1 artists.",
publicKey: "HN8GF8nKHLnymPUwn4cfNmtSwAcErRweDDDGzyhj6wKH",
image: "/OC.jpg",
},
];
const Community = ({
identifierCertificateMint,
name,
description,
dailyActiveUsers,
image,
}: {
identifierCertificateMint?: string;
name: string;
description: string;
dailyActiveUsers?: number;
image: string;
}) => {
const mintKey = usePublicKey(identifierCertificateMint);
const { chatId: id } = useChatIdFromIdentifierCertificate(mintKey);
const router = useRouter();
const breakpoint = useBreakpoint();
return (
{name}
{id}.chat
{description}
{typeof dailyActiveUsers !== "undefined" && (
)}{" "}
);
};
const chatKeys = FEATURED_COMMUNITIES.map(
({ publicKey }) => new PublicKey(publicKey)
);
export const FeaturedCommunities = () => {
const { chats } = useChats(chatKeys, {
minActiveUsers: 0,
});
const chatsWithDescription = useMemo(
() =>
FEATURED_COMMUNITIES.map((community) => ({
...community,
...chats.find((chat) => chat.publicKey === community.publicKey),
})),
[chats]
);
return (
// @ts-ignore
{chatsWithDescription.map((chat) => (
))}
);
};