From 6c3c51ec919dacc80d39977e80376567a9f91e6e Mon Sep 17 00:00:00 2001 From: Junseo Park Date: Sun, 14 Feb 2021 13:43:26 +0900 Subject: [PATCH] feat: added pendingBots route --- pages/pendingBots/[id]/[date].tsx | 177 ++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 pages/pendingBots/[id]/[date].tsx diff --git a/pages/pendingBots/[id]/[date].tsx b/pages/pendingBots/[id]/[date].tsx new file mode 100644 index 0000000..790733f --- /dev/null +++ b/pages/pendingBots/[id]/[date].tsx @@ -0,0 +1,177 @@ +import { NextPage, NextPageContext } from 'next' +import dynamic from 'next/dynamic' +import Link from 'next/link' + +import { get } from '@utils/Query' +import { git } from '@utils/Constants' + +import { SubmittedBot, User } from '@types' + +import { ParsedUrlQuery } from 'querystring' + +import NotFound from 'pages/404' +import Day from '@utils/Day' + +const Container = dynamic(() => import('@components/Container')) +const SEO = dynamic(() => import('@components/SEO')) +const Divider = dynamic(() => import('@components/Divider')) +const LongButton = dynamic(() => import('@components/LongButton')) +const Tag = dynamic(() => import('@components/Tag')) +const Advertisement = dynamic(() => import('@components/Advertisement')) +const Segment = dynamic(() => import('@components/Segment')) +const Markdown = dynamic(() => import ('@components/Markdown')) +const Owner = dynamic(() => import('@components/Owner')) +const Message = dynamic(() => import('@components/Message')) + +const PendingBot: NextPage = ({ data }) => { + if(!data) return + return + +
+
+ { + data.state === 0 ? +

승인 대기중

+

해당 봇은 아직 승인 대기 상태입니다.

+ +
+ : data.state === 1 ? +

승인됨

+

신청하신 해당 봇이 승인되었습니다!

+

봇 페이지

+
: +

거부됨

+

아쉽게도 신청하신 해당 봇은 거부되었습니다.

+ { + data.reason &&

사유: {data.reason}

+ } +
+ } +

{data.intro}

+
+
+ +

+ 초대하기 +

+
+
+ + +
+ +
+
+

정보

+
+
+ ID +
+
+ {data.id} +
+
+ 등록일 +
+
+ {Day(data.date * 1000).format('LLL')} +
+
+ 접두사 +
+
+ {data.prefix} +
+
+

카테고리

+
+ {data.category.map(el => ( + + ))} +
+

제작자

+ {(data.owners as User[]).map(el => ( + + ))} +
+ {data.discord && ( + + + 디스코드 서버 + + )} + {data.web && ( + + + 웹사이트 + + )} + {data.git && ( + + + {git?.[new URL(data.git).hostname].text ?? 'Git'} + + )} +
+ +
+
+ + + + + +
+
+
+} + +export const getServerSideProps = async (ctx: Context) => { + const data = await get.botSubmit.load(JSON.stringify(ctx.query)) + return { + props: { + data + } + } +} + +interface PendingBotProps { + data: SubmittedBot +} + +interface Context extends NextPageContext { + query: URLQuery +} + +interface URLQuery extends ParsedUrlQuery { + id: string + date: string +} + +export default PendingBot \ No newline at end of file