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}
);
};