import React, { useState } from 'react'; import { selectPollByID, useHMSStore } from '@100mslive/react-sdk'; import { ChevronLeftIcon, ChevronRightIcon, CrossIcon } from '@100mslive/react-icons'; import { Box, Flex } from '../../../../Layout'; import { Loading } from '../../../../Loading'; import { Text } from '../../../../Text'; // @ts-ignore import { Container } from '../../Streaming/Common'; import { LeaderboardEntry } from './LeaderboardEntry'; import { PeerParticipationSummary } from './PeerParticipationSummary'; // @ts-ignore import { useSidepaneToggle } from '../../AppData/useSidepane'; // @ts-ignore import { usePollViewState } from '../../AppData/useUISettings'; import { useQuizSummary } from './useQuizSummary'; // @ts-ignore import { StatusIndicator } from '../common/StatusIndicator'; import { POLL_VIEWS } from '../../../common/constants'; export const LeaderboardSummary = ({ pollID }: { pollID: string }) => { const quiz = useHMSStore(selectPollByID(pollID)); const { quizLeaderboard, maxPossibleScore } = useQuizSummary(pollID); const [viewAllEntries, setViewAllEntries] = useState(false); const { setPollView } = usePollViewState(); const toggleSidepane = useSidepaneToggle(); if (!quiz || !quizLeaderboard) return ( ); const questionCount = quiz.questions?.length || 0; return ( setPollView(POLL_VIEWS.VOTE)} > {quiz.title} {!viewAllEntries ? : null} Leaderboard Based on score and time taken to cast the correct answer {quizLeaderboard?.entries && quizLeaderboard.entries .slice(0, viewAllEntries ? undefined : 5) .map(question => ( ))} {quizLeaderboard?.entries?.length > 5 && !viewAllEntries ? ( setViewAllEntries(true)} > View All ) : null} ); };