import { NextPage, NextPageContext } from 'next' import { useState } from 'react' import dynamic from 'next/dynamic' import { SnowflakeUtil } from 'discord.js' import { ParsedUrlQuery } from 'querystring' import { josa } from 'josa' import { Field, Form, Formik } from 'formik' import { Bot, User, ResponseProps, Theme } from '@types' import { get } from '@utils/Query' import { checkUserFlag, parseCookie, redirectTo } from '@utils/Tools' import { getToken } from '@utils/Csrf' import Fetch from '@utils/Fetch' import { ReportSchema } from '@utils/Yup' import NotFound from '../404' import { KoreanbotsEndPoints, reportCats } from '@utils/Constants' import { NextSeo } from 'next-seo' import { useRouter } from 'next/router' const Container = dynamic(() => import('@components/Container')) const DiscordAvatar = dynamic(() => import('@components/DiscordAvatar')) const Divider = dynamic(() => import('@components/Divider')) const BotCard = dynamic(() => import('@components/BotCard')) const ResponsiveGrid = dynamic(() => import('@components/ResponsiveGrid')) const Tag = dynamic(() => import('@components/Tag')) const Advertisement = dynamic(() => import('@components/Advertisement')) const Tooltip = dynamic(() => import('@components/Tooltip')) const Message = dynamic(() => import('@components/Message')) const Modal = dynamic(() => import('@components/Modal')) const Button = dynamic(() => import('@components/Button')) const TextArea = dynamic(() => import('@components/Form/TextArea')) const Users: NextPage = ({ user, data, csrfToken, theme }) => { const router = useRouter() const [ reportModal, setReportModal ] = useState(false) const [ reportRes, setReportRes ] = useState>(null) if (!data?.id) return return ( el.name) .join(', ')}#{을} 제작합니다.` )} openGraph={{ images: [{ url: KoreanbotsEndPoints.CDN.avatar(data.id, { format: 'png', size: 256 }), width: 256, height: 256, alt: 'User Avatar' }] }} />

{data.username}

#{data.tag}
{checkUserFlag(data.flags, 'staff') && (
)} {checkUserFlag(data.flags, 'bughunter') && (
)}
{data.github && ( {data.github} } github href={`https://github.com/${data.github}`} /> )} { setReportModal(false) setReportRes(null) }} full dark={theme === 'dark'}> { user.id === data.id ?

" 현명한 조언을 해주는 것은 자기 이외에는 없다. "

: reportRes?.code === 200 ?

성공적으로 신고하였습니다!

더 자세한 설명이 필요할 수 있습니다! 공식 디스코드에 참여해주세요

: { const res = await Fetch(`/users/${data.id}/report`, { method: 'POST', body: JSON.stringify(body) }) setReportRes(res) }} validationSchema={ReportSchema} initialValues={{ category: null, description: '', _csrf: csrfToken }}> { ({ errors, touched, values, setFieldValue }) => (
{ reportRes &&

{reportRes.message}

    {reportRes.errors?.map((el, n) =>
  • {el}
  • )}
}

신고 구분

해당되는 항목을 선택해주세요.

{ reportCats.map(el =>
) }
{errors.category && touched.category ? errors.category : null}

설명

신고하시는 내용을 자세하게 설명해주세요.