/* eslint-disable react/destructuring-assignment */ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable react-hooks/rules-of-hooks */ import React, { useCallback, useContext } from 'react'; import { Button, Icon, Position, Tooltip } from '@blueprintjs/core'; import { createStyles, makeStyles } from '@material-ui/core/styles'; import SettingsOverlay from './SettingsOverlay/SettingsOverlay'; import ConnectedDevicesListDrawer from './ConnectedDevicesListDrawer'; import { SettingsContext } from '../containers/SettingsProvider'; import isProduction from '../utils/isProduction'; const Zoom = require('react-reveal/Zoom'); const Fade = require('react-reveal/Fade'); const useStylesWithTheme = (isDarkTheme: boolean) => makeStyles(() => createStyles({ topPanelRoot: { display: 'flex', paddingTop: '15px', marginBottom: '20px', }, logoWithAppName: { margin: '0 auto' }, appNameHeader: { margin: '0 auto', paddingTop: '5px', fontFamily: 'Lexend Peta', fontSize: '20px', color: isDarkTheme ? '#48AFF0' : '#1F4B99', cursor: 'default !important', }, topPanelControlButtonsRoot: { position: 'absolute', right: '15px', display: 'flex', }, topPanelControlButton: { width: '40px', height: '40px', borderRadius: '50px', cursor: 'default !important', }, topPanelControlButtonMargin: { marginRight: '20px', cursor: 'default !important', }, topPanelIconOfControlButton: { cursor: 'default !important', }, }) ); export default function TopPanel(props: any) { const { isDarkTheme } = useContext(SettingsContext); const getClassesCallback = useCallback(() => { return useStylesWithTheme(isDarkTheme)(); }, [isDarkTheme]); const [isSettingsOpen, setIsSettingsOpen] = React.useState(false); const [isDrawersOpen, setIsDrawerOpen] = React.useState(false); const handleSettingsOpen = useCallback(() => { setIsSettingsOpen(true); }, []); const handleSettingsClose = useCallback(() => { setIsSettingsOpen(false); }, []); const handleToggleConnectedDevicesListDrawer = useCallback(() => { setIsDrawerOpen(!isDrawersOpen); }, [isDrawersOpen]); const renderConnectedDevicesListButton = useCallback(() => { return (