import { LogOrigin } from 'ontime-types'; import { useCallback, useState } from 'react'; import { IoClose } from 'react-icons/io5'; import Button from '../../common/components/buttons/Button'; import { clearLogs, useLogData } from '../../common/stores/logger'; import * as Panel from '../app-settings/panel-utils/PanelUtils'; import style from './Log.module.scss'; export default function Log() { 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) => { setShowUser(toEnable === LogOrigin.User); setShowClient(toEnable === LogOrigin.Client); setShowServer(toEnable === LogOrigin.Server); setShowRx(toEnable === LogOrigin.Rx); setShowTx(toEnable === LogOrigin.Tx); setShowPlayback(toEnable === LogOrigin.Playback); }, []); return ( <> ); }