import { useCallback, useState } from 'react'; import { Button } from '@chakra-ui/react'; import { LogOrigin } from 'ontime-types'; import { clearLogs, useLogData } from '../../common/stores/logger'; import style from './InfoLogger.module.scss'; export default function InfoLogger() { const { logs: logData } = useLogData(); const [showClient, setShowClient] = useState(true); const [showServer, setShowServer] = useState(true); const [showRx, setShowRx] = useState(true); const [showTx, setShowTx] = useState(true); const [showPlayback, setShowPlayback] = useState(true); const [showUser, setShowUser] = useState(true); const matchers: LogOrigin[] = []; if (showUser) { matchers.push(LogOrigin.User); } if (showClient) { matchers.push(LogOrigin.Client); } if (showServer) { matchers.push(LogOrigin.Server); } if (showRx) { matchers.push(LogOrigin.Rx); } if (showTx) { matchers.push(LogOrigin.Tx); } if (showPlayback) { matchers.push(LogOrigin.Playback); } const filteredData = logData.filter((entry) => matchers.some((match) => entry.origin === match)); const disableOthers = useCallback((toEnable: LogOrigin) => { toEnable === LogOrigin.User ? setShowUser(true) : setShowUser(false); toEnable === LogOrigin.Client ? setShowClient(true) : setShowClient(false); toEnable === LogOrigin.Server ? setShowServer(true) : setShowServer(false); toEnable === LogOrigin.Rx ? setShowRx(true) : setShowRx(false); toEnable === LogOrigin.Tx ? setShowTx(true) : setShowTx(false); toEnable === LogOrigin.Playback ? setShowPlayback(true) : setShowPlayback(false); }, []); return ( <>