import React, { useState } from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { IconSettings, IconCookie, IconTool } from '@tabler/icons'; import IconSidebarToggle from 'components/Icons/IconSidebarToggle'; import ToolHint from 'components/ToolHint'; import Preferences from 'components/Preferences'; import Cookies from 'components/Cookies'; import Notifications from 'components/Notifications'; import Portal from 'components/Portal'; import { showPreferences, toggleSidebarCollapse } from 'providers/ReduxStore/slices/app'; import { openConsole } from 'providers/ReduxStore/slices/logs'; import { useApp } from 'providers/App'; import StyledWrapper from './StyledWrapper'; const StatusBar = () => { const dispatch = useDispatch(); const preferencesOpen = useSelector((state) => state.app.showPreferences); const logs = useSelector((state) => state.logs.logs); const sidebarCollapsed = useSelector((state) => state.app.sidebarCollapsed); const [cookiesOpen, setCookiesOpen] = useState(false); const { version } = useApp(); const errorCount = logs.filter(log => log.type === 'error').length; const handleConsoleClick = () => { dispatch(openConsole()); }; return ( {preferencesOpen && ( { dispatch(showPreferences(false)); document.querySelector('[data-trigger="preferences"]').focus(); }} aria-modal="true" role="dialog" aria-labelledby="preferences-title" aria-describedby="preferences-description" /> )} {cookiesOpen && ( { setCookiesOpen(false); document.querySelector('[data-trigger="cookies"]').focus(); }} aria-modal="true" role="dialog" aria-labelledby="cookies-title" aria-describedby="cookies-description" /> )}
v{version}
); }; export default StatusBar;