Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app/(pages)/(content)/anime/[slug]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { FC } from 'react';
import Characters from '@/features/anime/anime-view/characters/characters.component';
import Description from '@/features/anime/anime-view/description.component';
import Details from '@/features/anime/anime-view/details/details.component';
import Warning from '@/features/anime/anime-view/details/warning.component';
import Followings from '@/features/anime/anime-view/followings/followings.component';
import Franchise from '@/features/anime/anime-view/franchise.component';
import Links from '@/features/anime/anime-view/links/links.component';
Expand Down Expand Up @@ -37,6 +38,7 @@ const AnimePage: FC<Props> = async ({ params }) => {
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
<div className="relative order-2 flex flex-col gap-12 lg:order-1">
<Warning />
<Description />
<Characters />
<Franchise />
Expand Down
2 changes: 2 additions & 0 deletions app/(pages)/(content)/manga/[slug]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { FC } from 'react';
import Characters from '@/features/manga/manga-view/characters/characters.component';
import Description from '@/features/manga/manga-view/description.component';
import Details from '@/features/manga/manga-view/details/details.component';
import Warning from '@/features/manga/manga-view/details/warning.component';
import Franchise from '@/features/manga/manga-view/franchise.component';
import Links from '@/features/manga/manga-view/links/links.component';
import ReadStats from '@/features/manga/manga-view/read-stats/read-stats.component';
Expand All @@ -18,6 +19,7 @@ const MangaPage: FC<Props> = async ({ params }) => {
return (
<div className="grid grid-cols-1 gap-12 lg:grid-cols-[1fr_33%] lg:gap-16 xl:grid-cols-[1fr_30%]">
<div className="relative order-2 flex flex-col gap-12 lg:order-1">
<Warning />
<Description />
<Characters />
<Franchise />
Expand Down
2 changes: 2 additions & 0 deletions app/(pages)/(content)/novel/[slug]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { FC } from 'react';
import Characters from '@/features/novel/novel-view/characters/characters.component';
import Description from '@/features/novel/novel-view/description.component';
import Details from '@/features/novel/novel-view/details/details.component';
import Warning from '@/features/novel/novel-view/details/warning.component';
import Franchise from '@/features/novel/novel-view/franchise.component';
import Links from '@/features/novel/novel-view/links/links.component';
import ReadStats from '@/features/novel/novel-view/read-stats/read-stats.component';
Expand All @@ -18,6 +19,7 @@ const NovelPage: FC<Props> = async ({ params }) => {
return (
<div className="grid grid-cols-1 gap-12 lg:grid-cols-[1fr_33%] lg:gap-16 xl:grid-cols-[1fr_30%]">
<div className="relative order-2 flex flex-col gap-12 lg:order-1">
<Warning />
<Description />
<Characters />
<Franchise />
Expand Down
33 changes: 33 additions & 0 deletions features/anime/anime-view/details/warning.component.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
'use client';

import { useParams } from 'next/navigation';

import P from '@/components/typography/p';
import Block from '@/components/ui/block';
import Card from '@/components/ui/card';

import { WARNING_WORDS } from '@/utils/constants';

import useAnimeInfo from '@/services/hooks/anime/use-anime-info';

const Warning = () => {
const params = useParams();
const { data } = useAnimeInfo({ slug: String(params.slug) });

if (!data || !WARNING_WORDS.some(word => data.slug.includes(word.toLowerCase()))) {
return null;
}

return (
<Block>
<Card className='border-destructive/60'>
<P className="text-sm text-muted-foreground">
{"Примітка модерації"}
</P>
<P className='font-semibold text-destructive'>Цей твір просуває російську культуру та не рекомендований до перегляду чи читання.</P>
</Card>
</Block>
);
};

export default Warning;
33 changes: 33 additions & 0 deletions features/manga/manga-view/details/warning.component.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
'use client';

import { useParams } from 'next/navigation';

import P from '@/components/typography/p';
import Block from '@/components/ui/block';
import Card from '@/components/ui/card';

import { WARNING_WORDS } from '@/utils/constants';

import useMangaInfo from '@/services/hooks/manga/use-manga-info';

const Warning = () => {
const params = useParams();
const { data } = useMangaInfo({ slug: String(params.slug) });

if (!data || !WARNING_WORDS.some(word => data.slug.includes(word.toLowerCase()))) {
return null;
}

return (
<Block>
<Card className='border-destructive/60'>
<P className="text-sm text-muted-foreground">
{"Примітка модерації"}
</P>
<P className='font-semibold text-destructive'>Цей твір просуває російську культуру та не рекомендований до перегляду чи читання.</P>
</Card>
</Block>
);
};

export default Warning;
33 changes: 33 additions & 0 deletions features/novel/novel-view/details/warning.component.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
'use client';

import { useParams } from 'next/navigation';

import P from '@/components/typography/p';
import Block from '@/components/ui/block';
import Card from '@/components/ui/card';

import { WARNING_WORDS } from '@/utils/constants';

import useNovelInfo from '@/services/hooks/novel/use-novel-info';

const Warning = () => {
const params = useParams();
const { data } = useNovelInfo({ slug: String(params.slug) });

if (!data || !WARNING_WORDS.some(word => data.slug.includes(word.toLowerCase()))) {
return null;
}

return (
<Block>
<Card className='border-destructive/60'>
<P className="text-sm text-muted-foreground">
{"Примітка модерації"}
</P>
<P className='font-semibold text-destructive'>Цей твір просуває російську культуру та не рекомендований до перегляду чи читання.</P>
</Card>
</Block>
);
};

export default Warning;
5 changes: 5 additions & 0 deletions utils/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1064,3 +1064,8 @@ export const USER_ROLE = {
color: '#40518F',
},
};

export const WARNING_WORDS = [
atob('UnVzc2lh'),
atob('UnVzc2lhbg=='),
]