import React, { useState, useMemo } from 'react' import RoomCard from './RoomCard' import AddRoomBar from './AddRoomBar' import type { RoomData } from '../types' interface DashboardProps { rooms: RoomData[] viewMode: 'card' | 'list' cardCols: number listPerPage: number onAddRoom: (url: string) => void onToggleRoom: (id: string, action?: string) => void onRemoveRoom: (id: string) => void onSetActive: (id: string) => void } export default function Dashboard({ rooms, viewMode, cardCols, listPerPage, onAddRoom, onToggleRoom, onRemoveRoom, onSetActive }: DashboardProps) { const [page, setPage] = useState(0) const paginatedRooms = useMemo(() => { if (viewMode === 'list') { const start = page * listPerPage return rooms.slice(start, start + listPerPage) } return rooms }, [rooms, page, listPerPage, viewMode]) const totalPages = viewMode === 'list' ? Math.ceil(rooms.length / listPerPage) : 0 return (
暂无房间
在上方输入框添加直播间URL开始监控
| 状态 | 房间 | 主播 | 类型 | 观众 | 消息 | 精准 | 操作 |
|---|---|---|---|---|---|---|---|
| {room.title} | {room.anchor_id} | {room.kind === 'public' ? '公开' : '匿名'} | {room.viewers} | {room.total_msg} | {room.lead_count} |
暂无房间
在上方输入框添加直播间URL开始监控