diff --git a/pages/bots/[id]/index.tsx b/pages/bots/[id]/index.tsx index dd10645..3e9293e 100644 --- a/pages/bots/[id]/index.tsx +++ b/pages/bots/[id]/index.tsx @@ -2,18 +2,21 @@ import { NextPage, NextPageContext } from 'next' import { useRouter } from 'next/router' import dynamic from 'next/dynamic' import Link from 'next/link' +import { useState } from 'react' import { SnowflakeUtil } from 'discord.js' import { ParsedUrlQuery } from 'querystring' import { Bot, Theme, User } from '@types' -import { git, Status } from '@utils/Constants' +import { git, reportCats, Status } from '@utils/Constants' import { get } from '@utils/Query' import Day from '@utils/Day' import { checkBotFlag, checkUserFlag, formatNumber, parseCookie } from '@utils/Tools' import NotFound from '../../404' import Footer from '@components/Footer' +import { Field, Form, Formik } from 'formik' +import { ReportBotSchema } from '@utils/Yup' const Container = dynamic(() => import('@components/Container')) const DiscordAvatar = dynamic(() => import('@components/DiscordAvatar')) @@ -27,10 +30,14 @@ const Advertisement = dynamic(() => import('@components/Advertisement')) const Tooltip = dynamic(() => import('@components/Tooltip')) const Markdown = dynamic(() => import ('@components/Markdown')) const Message = dynamic(() => import('@components/Message')) +const Button = dynamic(() => import('@components/Button')) +const TextArea = dynamic(() => import('@components/Form/TextArea')) +const Modal = dynamic(() => import('@components/Modal')) const Bots: NextPage = ({ data, date, user, theme, setTheme }) => { const bg = checkBotFlag(data?.flags, 'trusted') && data?.banner const router = useRouter() + const [ reportModal, setReportModal ] = useState(false) 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
@@ -172,12 +179,47 @@ const Bots: NextPage = ({ data, date, user, theme, setTheme }) => { /> ))}
- - - + { + return + }} onClick={() => setReportModal(true)}> + 신고하기 - - + + setReportModal(false)} full dark={theme === 'dark'}> + + { + ({ errors, touched, values, setFieldValue }) => ( +
+
+

신고 구분

+

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

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

설명

+

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

+