/**
* Индикатор персон на Timeline клипе
* Показывает маленькие аватары персон, обнаруженных в клипе
*/
import { User, Users } from "lucide-react"
import { useState } from "react"
import { Badge } from "@/components/ui/badge"
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"
import type { PersonProfile } from "../../../person-identification/types/person"
import type { TimelinePersonAppearance } from "../../hooks/use-timeline-persons"
interface PersonIndicatorProps {
persons: PersonProfile[]
appearances?: TimelinePersonAppearance[]
clipId: string
compact?: boolean
maxVisible?: number
onClick?: (personId: string) => void
}
export function PersonIndicator({
persons,
appearances = [],
clipId,
compact = false,
maxVisible = 3,
onClick,
}: PersonIndicatorProps) {
const [showTooltip, setShowTooltip] = useState(false)
// Фильтруем персон, которые появляются в этом клипе
const clipAppearances = appearances.filter((app) => app.clipId === clipId)
const personsInClip = persons.filter((person) => clipAppearances.some((app) => app.personId === person.id))
if (personsInClip.length === 0) {
return null
}
const visiblePersons = personsInClip.slice(0, maxVisible)
const hiddenCount = Math.max(0, personsInClip.length - maxVisible)
if (compact) {
return (