import React, { useState, useEffect, useCallback } from 'react'; import { ActionIcon, Box, Button, Card, Group, NumberInput, Pagination, Select, Stack, Text, Title, } from '@mantine/core'; import { useElementSize } from '@mantine/hooks'; import { ChevronDown, CirclePlay, Download, Gauge, HardDriveDownload, LogIn, LogOut, RefreshCw, ShieldAlert, SquareX, Timer, Users, Video, XCircle, } from 'lucide-react'; import API from '../api'; import useLocalStorage from '../hooks/useLocalStorage'; import { format } from '../utils/dateTimeUtils.js'; const getEventIcon = (eventType) => { switch (eventType) { case 'channel_start': return ; case 'channel_stop': return ; case 'channel_reconnect': return ; case 'channel_buffering': return ; case 'channel_failover': return ; case 'client_connect': return ; case 'client_disconnect': return ; case 'recording_start': return