@@ -2,9 +2,10 @@ import { useState, type ReactNode } from 'react'
22import { Link } from 'react-router-dom'
33import type { Media , MediaPlayInfo , MediaPerson } from '@/types'
44import { Button , EmptyState , Tag } from '@/components/design-system'
5- import { ChevronDown , ChevronUp , ExternalLink , FileText } from 'lucide-react'
5+ import { ChevronDown , ChevronUp , ExternalLink , FileText , Info , Shapes , Tags } from 'lucide-react'
66import clsx from 'clsx'
77import { useTranslation } from '@/i18n'
8+ import DetailSectionTitle from './DetailSectionTitle'
89
910interface MediaInfoSectionProps {
1011 media : Media
@@ -103,7 +104,7 @@ export default function MediaInfoSection({ media, playInfo: _playInfo, persons }
103104 { hasIntro ? (
104105 < section className = "nv-media-info-intro py-5 sm:py-6" >
105106 < div className = "mb-4" >
106- < h2 className = "text-sm font-semibold text-[var(--nv-text-primary)]" > 影片简介</ h2 >
107+ < DetailSectionTitle icon = { < FileText size = { 17 } /> } > 影片简介</ DetailSectionTitle >
107108 { media . orig_title && media . orig_title !== media . title && (
108109 < p className = "mt-1 text-xs italic text-[var(--nv-text-tertiary)]" > { media . orig_title } </ p >
109110 ) }
@@ -167,7 +168,9 @@ export default function MediaInfoSection({ media, playInfo: _playInfo, persons }
167168 < section className = "nv-media-info-classifications grid gap-5 py-5 sm:grid-cols-2 sm:py-6" >
168169 { genreList . length > 0 && (
169170 < div >
170- < SectionLabel > { t ( 'mediaInfo.genres' ) . replace ( / [: : ] \s * $ / , '' ) } </ SectionLabel >
171+ < DetailSectionTitle as = "h3" icon = { < Shapes size = { 17 } /> } className = "mb-2" >
172+ { t ( 'mediaInfo.genres' ) . replace ( / [: : ] \s * $ / , '' ) }
173+ </ DetailSectionTitle >
171174 < div className = "flex flex-wrap gap-1.5" >
172175 { genreList . map ( ( genre ) => (
173176 < MetadataLink key = { `g-${ genre } ` } to = { `/search?q=${ encodeURIComponent ( genre ) } ` } > { genre } </ MetadataLink >
@@ -178,7 +181,9 @@ export default function MediaInfoSection({ media, playInfo: _playInfo, persons }
178181
179182 { tagList . length > 0 && tagList . join ( ',' ) !== genreList . join ( ',' ) && (
180183 < div >
181- < SectionLabel > { t ( 'mediaInfo.tags' ) . replace ( / [: : ] \s * $ / , '' ) } </ SectionLabel >
184+ < DetailSectionTitle as = "h3" icon = { < Tags size = { 17 } /> } className = "mb-2" >
185+ { t ( 'mediaInfo.tags' ) . replace ( / [: : ] \s * $ / , '' ) }
186+ </ DetailSectionTitle >
182187 < div className = "flex flex-wrap gap-1.5" >
183188 { tagList . map ( ( tag ) => (
184189 < MetadataLink key = { `t-${ tag } ` } to = { `/search?q=${ encodeURIComponent ( tag ) } ` } > #{ tag } </ MetadataLink >
@@ -192,7 +197,7 @@ export default function MediaInfoSection({ media, playInfo: _playInfo, persons }
192197 { hasMetaTable && (
193198 < section className = "nv-media-info-metadata py-5 sm:py-6" >
194199 < div className = "mb-2 flex items-center justify-between gap-3" >
195- < h2 className = "text-sm font-semibold text-[var(--nv-text-primary)]" > 影片详情</ h2 >
200+ < DetailSectionTitle icon = { < Info size = { 17 } /> } > 影片详情</ DetailSectionTitle >
196201 < span className = "text-[10px] uppercase tracking-[0.1em] text-[var(--nv-text-tertiary)]" > Metadata</ span >
197202 </ div >
198203
0 commit comments