import { Eye, FileVideo, MapPin, Monitor, ShoppingBag, UserPlus, Users } from 'lucide-react' import React from 'react' import { isDark } from '../../../../utils/theme' import { AmbientCover } from '../../../components/AmbientCover' import { DefaultLayout } from '../../../components/DefaultLayout' import { QRCodeWithAvatar } from '../../../components/QRCodeWithAvatar' import type { PosterProps } from '../../../types/ctx' import { DouyinLikeIcon } from '../../components/Icons' import type { DouyinLiveData } from './types' const coverMaskStyle: React.CSSProperties = { maskImage: 'linear-gradient(to bottom, transparent 0%, black 0, black 28%, transparent 100%)', WebkitMaskImage: 'linear-gradient(to bottom, transparent 0%, black 0, black 28%, transparent 100%)' } /** * 全局氛围背景层:模糊封面 + 渐变遮罩 + 高对比杂色纹理 */ const AmbientBackground: React.FC<{ pic: string; ctx: PosterProps['ctx'] }> = React.memo(({ pic, ctx }) => (
)) AmbientBackground.displayName = 'AmbientBackground' /** * 封面组件 - 全宽铺满 + 双向渐变溶解 + LIVE大字 */ const CoverSection: React.FC<{ imageUrl: string }> = ({ imageUrl }) => { return (
直播封面
直播中
) } /** * 直播信息组件 */ const InfoSection: React.FC<{ data: DouyinLiveData }> = ({ data }) => { return (
{/* 直播标题 - 视觉锚点 */}

{data.text}

{/* 直播中 + 分区 + 房间号 */}
直播中 / {data.partition_title} / 房间号 {data.room_id}
{/* 直播数据 */}
{data.online_viewers}在线 {data.total_viewers}观看 {data.like_count}点赞 {data.resolution && ( {data.resolution} )} {data.has_commerce_goods && ( 带货中 )}
{/* 签名 */} {data.signature &&
{data.signature}
} {/* 城市 */} {data.city && (
{data.city}
)}
) } /** * 底部区域 - 主播信息 + 二维码 + 抖音Logo */ const BottomSection: React.FC> = ({ data, ctx }) => { return (
{/* 左侧:主播信息 */}
头像
@{data.username}
直播中 · {data.fans}粉丝
作品
{data.aweme_count}
关注
{data.following_count}
获赞
{data.total_favorited}
{/* 右侧:抖音Logo + 二维码 */}
抖音 {data.share_url ? ( ) : (
二维码
)} 扫码进入直播间
) } /** * 抖音直播组件 */ export const DouyinLive: React.FC> = (props) => { const d = props.data const { ctx } = props return (
) } export default DouyinLive