import React, { createContext, useState, useContext, useCallback } from 'react'; export type LogType = 'info' | 'success' | 'error' | 'warn'; export interface LogMessage { type: LogType; message: string; timestamp: string; } interface LoggingContextType { logs: LogMessage[]; log: (type: LogType, message: string) => void; clearLogs: () => void; } const LoggingContext = createContext(undefined); export const LoggingProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { const [logs, setLogs] = useState([]); const log = useCallback((type: LogType, message: string) => { const timestamp = new Date().toLocaleTimeString(); setLogs(prevLogs => [...prevLogs, { type, message, timestamp }]); }, []); const clearLogs = useCallback(() => { setLogs([]); }, []); return ( {children} ); }; export const useLogger = (): LoggingContextType => { const context = useContext(LoggingContext); if (context === undefined) { throw new Error('useLogger must be used within a LoggingProvider'); } return context; };