import Image from "next/image" import { useRouter } from "next/router" import { useState } from "react" import useTranslation from "next-translate/useTranslation" import classNames from "clsx" import axios from "axios" import { Emoji } from "../../Emoji" import { ConfirmPopup } from "../ConfirmPopup" import type { GuildPublic as GuildPublicType, GuildWithDefaultChannelId, } from "../../../models/Guild" import { useAuthentication } from "../../../tools/authentication" export interface GuildPublicProps { guild: GuildPublicType } export const GuildPublic: React.FC = (props) => { const { guild } = props const router = useRouter() const { authentication } = useAuthentication() const [isConfirmed, setIsConfirmed] = useState(false) const { t } = useTranslation() const handleIsConfirmed = (): void => { setIsConfirmed((isConfirmed) => { return !isConfirmed }) } const handleYes = async (): Promise => { try { const { data } = await authentication.api.post<{ guild: GuildWithDefaultChannelId }>(`/guilds/${guild.id}/members/join`) await router.push( `/application/${guild.id}/${data.guild.defaultChannelId}`, ) } catch (error) { if ( axios.isAxiosError(error) && error.response?.status === 400 && typeof error?.response?.data.defaultChannelId === "number" ) { const defaultChannelId = error.response.data.defaultChannelId as number await router.push(`/application/${guild.id}/${defaultChannelId}`) } else { await router.push("/application") } } } return (
logo

{guild.name}

{guild.description != null ? ( guild.description ) : ( {t("application:nothing-here")} )}

{guild.membersCount} {t("application:members")}

) }