import { NextPage } from 'next' import Link from 'next/link' import dynamic from 'next/dynamic' import { useRouter } from 'next/router' import { Bot, CsrfContext, User } from '@types' import { get } from '@utils/Query' import { makeBotURL, parseCookie, checkBotFlag } from '@utils/Tools' import { ParsedUrlQuery } from 'querystring' import NotFound from 'pages/404' import { getToken } from '@utils/Csrf' const Container = dynamic(() => import('@components/Container')) const DiscordAvatar = dynamic(() => import('@components/DiscordAvatar')) const Button = dynamic(() => import('@components/Button')) const Tag = dynamic(() => import('@components/Tag')) const Owner = dynamic(() => import('@components/Owner')) const Segment = dynamic(() => import('@components/Segment')) const SEO = dynamic(() => import('@components/SEO')) const LongButton = dynamic(() => import('@components/LongButton')) const Advertisement = dynamic(() => import('@components/Advertisement')) const Tooltip = dynamic(() => import('@components/Tooltip')) const Markdown = dynamic(() => import ('@components/Markdown')) const VoteBot: NextPage = ({ data, user, csrfToken }) => { console.log(csrfToken) const router = useRouter() if(!data?.id) return if((checkBotFlag(data.flags, 'trusted') || checkBotFlag(data.flags, 'partnered')) && data.vanity && data.vanity !== router.query.id) router.push(`/bots/${data.vanity}`) return {data.name}으로 돌아가기
{data.votes}} dark />

{data.name}

12시간 뒤에 다시 투표하실 수 있습니다.

} export const getServerSideProps = async (ctx: Context) => { const parsed = parseCookie(ctx.req) const data = await get.bot.load(ctx.query.id) const user = await get.Authorization(parsed?.token) return { props: { csrfToken: getToken(ctx.req, ctx.res), data, user: await get.user.load(user || '') }, } } interface VoteBotProps { csrfToken: string vote: boolean data: Bot user: User } interface Context extends CsrfContext { query: URLQuery } interface URLQuery extends ParsedUrlQuery { id: string } export default VoteBot