import React from 'react' import { usePlaybackContinuity } from '../hooks/usePlaybackContinuity' import './PlaybackContinuityIndicator.css' interface PlaybackContinuityIndicatorProps { className?: string showDetails?: boolean } export const PlaybackContinuityIndicator: React.FC = ({ className = '', showDetails = false }) => { const { connectionState, isOnline, connectionQuality, playbackState, getEstimatedOfflineTime } = usePlaybackContinuity() const getConnectionIcon = () => { if (!isOnline) return '📱' switch (connectionQuality) { case 'excellent': return '🌐' case 'good': return '📶' case 'poor': return '⚠️' default: return '📱' } } const getConnectionText = () => { if (!isOnline) return 'Offline Mode' switch (connectionQuality) { case 'excellent': return 'Online - Excellent' case 'good': return 'Online - Good' case 'poor': return 'Online - Poor' default: return 'Offline Mode' } } const formatTime = (seconds: number): string => { const hours = Math.floor(seconds / 3600) const minutes = Math.floor((seconds % 3600) / 60) if (hours > 0) { return `${hours}h ${minutes}m` } return `${minutes}m` } const offlineTime = getEstimatedOfflineTime() return (
{getConnectionIcon()} {showDetails && (
{getConnectionText()}
{!isOnline && offlineTime > 0 && (
~{formatTime(offlineTime)} offline
)} {playbackState && (
🔄 Synced
)}
)}
{showDetails && playbackState && (
Device: {playbackState.deviceId.slice(-8)}
Last sync: {new Date(playbackState.timestamp).toLocaleTimeString()}
)}
) } export default PlaybackContinuityIndicator