|
1 | 1 | 'use client' |
2 | 2 |
|
3 | 3 | import { Tabs, Tab } from '@heroui/tabs' |
4 | | -import { Chip, Tooltip, Link, Checkbox } from '@heroui/react' |
| 4 | +import { Chip, Tooltip, Link, Checkbox, ScrollShadow } from '@heroui/react' |
5 | 5 | import { useMemo, useState } from 'react' |
6 | 6 | import { getPreferredLanguageText } from '~/utils/getPreferredLanguageText' |
7 | 7 | import type { PatchDetail } from '~/types/api/patch' |
| 8 | +import { KunNull } from '~/components/kun/Null' |
8 | 9 |
|
9 | 10 | export const TagSection = ({ detail }: { detail: PatchDetail }) => { |
10 | 11 | const [provider, setProvider] = useState<'vndb' | 'bangumi'>('vndb') |
@@ -41,33 +42,41 @@ export const TagSection = ({ detail }: { detail: PatchDetail }) => { |
41 | 42 | </div> |
42 | 43 | </div> |
43 | 44 |
|
44 | | - <div className="flex flex-wrap gap-2"> |
45 | | - {tags.map((tag) => ( |
46 | | - <Tooltip |
47 | | - key={`${tag.provider}-${tag.id}`} |
48 | | - content={`分类: ${tag.category}`} |
49 | | - > |
50 | | - <Chip |
51 | | - as={Link} |
52 | | - href={ |
53 | | - tag.provider === 'vndb' ? `/tag/${tag.id}` : `/tag/${tag.id}` |
54 | | - } |
55 | | - color={ |
56 | | - tag.category === 'content' |
57 | | - ? 'primary' |
58 | | - : tag.category === 'sexual' |
59 | | - ? 'danger' |
60 | | - : 'success' |
61 | | - } |
62 | | - variant="flat" |
| 45 | + <ScrollShadow className="max-h-[300px]"> |
| 46 | + <div className="flex flex-wrap gap-2"> |
| 47 | + {tags.map((tag) => ( |
| 48 | + <Tooltip |
| 49 | + key={`${tag.provider}-${tag.id}`} |
| 50 | + content={`${tag.count} 个 Galgame 含有此标签`} |
63 | 51 | > |
64 | | - {`${getPreferredLanguageText(tag.name)}+${tag.count}`} |
65 | | - {tag.spoiler_level > 0 ? ' · 剧透' : ''} |
66 | | - </Chip> |
67 | | - </Tooltip> |
68 | | - ))} |
69 | | - {tags.length === 0 && <Chip>暂无标签</Chip>} |
70 | | - </div> |
| 52 | + <Chip |
| 53 | + as={Link} |
| 54 | + href={ |
| 55 | + tag.provider === 'vndb' ? `/tag/${tag.id}` : `/tag/${tag.id}` |
| 56 | + } |
| 57 | + color={ |
| 58 | + tag.category === 'content' |
| 59 | + ? 'primary' |
| 60 | + : tag.category === 'sexual' |
| 61 | + ? 'danger' |
| 62 | + : 'success' |
| 63 | + } |
| 64 | + variant="flat" |
| 65 | + > |
| 66 | + {`${getPreferredLanguageText(tag.name)} +${tag.count}`} |
| 67 | + {tag.spoiler_level > 0 ? ( |
| 68 | + <span className="font-bold text-warning-600"> *剧透</span> |
| 69 | + ) : ( |
| 70 | + '' |
| 71 | + )} |
| 72 | + </Chip> |
| 73 | + </Tooltip> |
| 74 | + ))} |
| 75 | + {tags.length === 0 && ( |
| 76 | + <KunNull message="暂无标签, 或者您未开启网站 NSFW 模式" /> |
| 77 | + )} |
| 78 | + </div> |
| 79 | + </ScrollShadow> |
71 | 80 | </section> |
72 | 81 | ) |
73 | 82 | } |
0 commit comments