diff --git a/components/NSFW.tsx b/components/NSFW.tsx index 4b6100b..675e140 100644 --- a/components/NSFW.tsx +++ b/components/NSFW.tsx @@ -3,15 +3,23 @@ import dynamic from 'next/dynamic' const Button = dynamic(() => import('@components/Button')) const Container = dynamic(() => import('@components/Container')) -const NSFW = ({ onClick }:NSFWProps): JSX.Element => { +const NSFW = ({ onClick, onDisableClick }:NSFWProps): JSX.Element => { return
-

해당 컨텐츠는 만19세 이상의 성인만 열람할 수 있습니다.

+

+ ⚠ + 해당 컨텐츠는 만19세 이상의 성인만 열람할 수 있습니다.

계속하시겠습니까?

+
+ +
@@ -19,6 +27,7 @@ const NSFW = ({ onClick }:NSFWProps): JSX.Element => { interface NSFWProps { onClick(): void + onDisableClick(): void } export default NSFW \ No newline at end of file diff --git a/pages/bots/[id]/index.tsx b/pages/bots/[id]/index.tsx index 04ae3bc..b7797bf 100644 --- a/pages/bots/[id]/index.tsx +++ b/pages/bots/[id]/index.tsx @@ -65,241 +65,239 @@ const Bots: NextPage = ({ data, date, user, theme, csrfToken }) => {

해당 봇은 관리자에 의해 삭제되었습니다.

- : data.category.includes('NSFW') && !nsfw ? { - localStorage.nsfw = true - setNSFW(true) - }} /> : <> -
- { - data.state === 'private' ? -

해당 봇은 특수목적 봇이므로 초대하실 수 없습니다.

-

해당 봇은 공개 사용이 목적이 아닌 특수목적봇입니다. 따라서 따로 초대하실 수 없습니다.

-
: - data.state === 'reported' ? - -

해당 봇은 신고가 접수되어, 관리자에 의해 잠금 상태입니다.

-

해당 봇 사용에 주의해주세요.

-

봇 소유자분은 가이드라인에 대한 위반사항을 확인해주시고 디스코드 서버로 문의해주세요.

-
: '' - } -
-
-
- -
-
- - {' '} - {Status[data.status]?.text} - - } - /> -

- {data.name}{' '} - {checkBotFlag(data.flags, 'trusted') ? ( - - - - - - ) : ''} -

-

{data.intro}

-
-
+ : data.category.includes('NSFW') && !nsfw ? setNSFW(true)} onDisableClick={() => localStorage.nsfw = true} /> + : <> +
{ - data.state === 'ok' && -

- 초대하기 -

-
- } - - -

- 하트 추가 -

- - {formatNumber(data.votes)} - -
- - { - ((data.owners as User[]).find(el => el.id === user?.id) || checkUserFlag(user?.flags, 'staff')) && -

- 관리하기 -

-
+ data.state === 'private' ? +

해당 봇은 특수목적 봇이므로 초대하실 수 없습니다.

+

해당 봇은 공개 사용이 목적이 아닌 특수목적봇입니다. 따라서 따로 초대하실 수 없습니다.

+
: + data.state === 'reported' ? + +

해당 봇은 신고가 접수되어, 관리자에 의해 잠금 상태입니다.

+

해당 봇 사용에 주의해주세요.

+

봇 소유자분은 가이드라인에 대한 위반사항을 확인해주시고 디스코드 서버로 문의해주세요.

+
: '' }
-
- -
-
-

정보

-
-
- 접두사 -
-
- {data.prefix} -
-
- 서버수 -
-
{data.servers || 'N/A'}
-
- 봇 생성일 -
-
{Day(date).fromNow(false)}
- { - checkBotFlag(data.flags, 'trusted') ? - -
- 디스코드 인증됨 -
-
- : '' - } -
-

카테고리

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

제작자

- {(data.owners as User[]).map(el => ( - +
+ - ))} -
- { - if(!user) toLogin() - else setReportModal(true) - }} aria-hidden='true'> - - 신고하기 - - { - setReportModal(false) - setReportRes(null) - }} full dark={theme === 'dark'}> - { - reportRes?.code === 200 ? -

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

-

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

-
: { - const res = await Fetch(`/bots/${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}
-

설명

-

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

-