From b1484bf1275695f5c5e4c204f06601fff7780231 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sat, 23 Aug 2025 19:20:59 +0100 Subject: [PATCH] Electron fixes and new menu icon. --- assets/icons/menuicon.svg | 20 +-- assets/stylesheets/App.css | 11 +- design_files/menuicon.afdesign | Bin 15128 -> 16567 bytes .../Dashboard/common/DashboardNavigation.jsx | 130 +++++++++++++----- .../common/DashboardWindowButtons.jsx | 2 +- src/components/Dashboard/common/Flag.jsx | 7 +- .../Dashboard/context/AuthContext.jsx | 1 + vite.config.js | 2 +- 8 files changed, 125 insertions(+), 48 deletions(-) diff --git a/assets/icons/menuicon.svg b/assets/icons/menuicon.svg index 5881ef8..26e448a 100644 --- a/assets/icons/menuicon.svg +++ b/assets/icons/menuicon.svg @@ -1,17 +1,17 @@ - - - - - - - - + + + - - + + + + + + + diff --git a/assets/stylesheets/App.css b/assets/stylesheets/App.css index 17a227d..d3f4b60 100644 --- a/assets/stylesheets/App.css +++ b/assets/stylesheets/App.css @@ -63,10 +63,13 @@ line-height: 40px; } -.electron-sidebar .ant-menu-item { - height: 32.5px; - line-height: 32.5px; - padding-inline: calc(50% - 8px - 4px); +.electron-navigation .ant-menu-overflow-item-rest { + padding-inline: 10px; +} + +.electron-sidebar .ant-menu-item, .electron-sidebar .ant-menu-submenu-title { + height: 32.5px !important; + line-height: 32.5px !important; } .electron-sider.ant-layout-sider-collapsed { diff --git a/design_files/menuicon.afdesign b/design_files/menuicon.afdesign index 55bbfa80bfcc0db7e5d430dd0ba0b19643b8ec8f..ed8dc5c572539ae8076c7e1cff2b3831f05cc6fb 100644 GIT binary patch literal 16567 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 literal 15128 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 aKzQv5#!dfu>S)G1mt!A diff --git a/src/components/Dashboard/common/DashboardNavigation.jsx b/src/components/Dashboard/common/DashboardNavigation.jsx index 5d5af44..33cf3fb 100644 --- a/src/components/Dashboard/common/DashboardNavigation.jsx +++ b/src/components/Dashboard/common/DashboardNavigation.jsx @@ -9,12 +9,12 @@ import { Button, Tooltip, Badge, - Divider + Divider, + Typography } from 'antd' import { LogoutOutlined, MailOutlined, - MenuOutlined, LoadingOutlined } from '@ant-design/icons' import { AuthContext } from '../context/AuthContext' @@ -27,6 +27,7 @@ import KeyboardShortcut from './KeyboardShortcut' import FarmControlLogo from '../../Logos/FarmControlLogo' import FarmControlLogoSmall from '../../Logos/FarmControlLogoSmall' +import MenuIcon from '../../Icons/MenuIcon' import ProductionIcon from '../../Icons/ProductionIcon' import InventoryIcon from '../../Icons/InventoryIcon' import PersonIcon from '../../Icons/PersonIcon' @@ -38,6 +39,8 @@ import DeveloperIcon from '../../Icons/DeveloperIcon' import { ElectronContext } from '../context/ElectronContext' import DashboardWindowButtons from './DashboardWindowButtons' +const { Text } = Typography + const DashboardNavigation = () => { const { logout, userProfile } = useContext(AuthContext) const { showSpotlight } = useContext(SpotlightContext) @@ -47,27 +50,14 @@ const DashboardNavigation = () => { const navigate = useNavigate() const location = useLocation() const [selectedKey, setSelectedKey] = useState('production') + const [selectedMenuItem, setSelectedMenuItem] = useState({ + key: 'production', + label: 'Production', + icon: + }) const isMobile = useMediaQuery({ maxWidth: 768 }) const { platform, isElectron, isFullScreen } = useContext(ElectronContext) - useEffect(() => { - const pathParts = location.pathname.split('/').filter(Boolean) - if (pathParts.length > 2) { - setSelectedKey(pathParts[1]) // Return the section (production/management) - } - }, [location.pathname]) - - useEffect(() => { - if (connecting == true) { - setApiServerState('connecting') - } else if (connected == true) { - setApiServerState('connected') - } else { - setApiServerState('disconnected') - } - console.log('Connecting/connected', connecting, connected) - }, [connecting, connected]) - const mainMenuItems = [ { key: 'production', @@ -115,6 +105,27 @@ const DashboardNavigation = () => { } } + useEffect(() => { + const pathParts = location.pathname.split('/').filter(Boolean) + if (pathParts.length > 2) { + setSelectedMenuItem( + mainMenuItems.filter((item) => item.key == pathParts[1])[0] + ) + setSelectedKey(pathParts[1]) // Return the section (production/management) + } + }, [location.pathname]) + + useEffect(() => { + if (connecting == true) { + setApiServerState('connecting') + } else if (connected == true) { + setApiServerState('connected') + } else { + setApiServerState('disconnected') + } + console.log('Connecting/connected', connecting, connected) + }, [connecting, connected]) + const handleMainMenuClick = ({ key }) => { if (key === 'production') { navigate('/dashboard/production/overview') @@ -125,35 +136,91 @@ const DashboardNavigation = () => { } } + const showAppLogo = + (isElectron && platform == 'darwin' && isFullScreen == true) || + (isElectron && platform != 'darwin') + const isMacOSApp = isElectron && platform == 'darwin' + const isOtherApp = isElectron && platform != 'darwin' + + const showDesktopLogo = !isElectron && !isMobile + const showMobileLogo = !isElectron && isMobile + const navigationContents = ( - {isElectron && platform == 'darwin' ? : null} - {(!isElectron || (platform == 'darwin' && isFullScreen == true)) && - !isMobile ? ( + {isMacOSApp ? : null} + {showAppLogo == true && ( + + )} + {showDesktopLogo == true ? ( + ) : showMobileLogo == true ? ( + - ) : !isElectron && isMobile ? ( - ) : null} + {isMobile && ( + + {selectedMenuItem.icon} + + {selectedMenuItem.label} + + + )} } />} + overflowedIndicator={ +