'use client'; import React, { useState, useCallback, memo, useMemo } from 'react'; import { LogEntry } from '../hooks/use-logger'; import { useLoggerContext } from '../hooks/use-logger-context'; const LoggerAnimations = ({ color = '#dc2626' }: { color?: string }) => ( ); const LogLevelColors = { warn: '#ff9800', // orange error: '#f44336' // red }; const LoggerTrigger = memo( ({ onClick, logCount = 0, currentColor }: { onClick: () => void; logCount?: number; currentColor: string; }) => { return ( ); } ); LoggerTrigger.displayName = 'LoggerTrigger'; const LogItem = memo(({ log }: { log: LogEntry }) => { const [expanded, setExpanded] = useState(false); const hasPayload = log.payload && Object.keys(log.payload).length > 0; const toggleExpanded = useCallback(() => { setExpanded((prev) => !prev); }, []); return (
{log.level} {log.timestamp.toLocaleTimeString()}

{log.message}

{hasPayload && ( )} {expanded && hasPayload && (
              {JSON.stringify(log.payload, null, 2)}
            
)}
); }); LogItem.displayName = 'LogItem'; export const LoggerPopup = () => { const { logs, isVisible, toggleVisibility, clearLogs, isDevelopment, hasError, hasWarning } = useLoggerContext(); const currentColor = useMemo(() => { if (logs.length === 0) return '#b5afaf'; if (hasError) return '#dc2626'; if (hasWarning) return '#ff9800'; return '#b5afaf'; }, [logs.length, hasError, hasWarning]); if (!isDevelopment) { return null; } if (!isVisible) { return ( <> ); } return ( <>

Development Logger

{logs.length === 0 ? (

No logs yet

) : ( logs.map((log) => ) )}
); };