import React, { Fragment } from 'react'; import cx from 'classnames'; import WindowControls from './window-controls'; import MenuBar from './menu-bar'; import useWindowFocus from './effects/useWindowFocus'; import styles from './style.css'; import { useTheme, ThemeContext } from './theme'; import Title from './components/title'; import Bar from './components/bar'; import { TitleBarProps } from './typings'; import Logo from './components/logo'; const TitleBar = ({ onMinimize, onMaximize, onClose, onDoubleClick, disableMaximize, disableMinimize, platform, children, theme, menu, icon, iconSrc, title, maximized, currentWindow }: TitleBarProps) => { const focused = useWindowFocus(); const currentTheme = useTheme(theme, platform); const isDarwin = platform === 'darwin'; const stacked = currentTheme?.menu?.style === 'stacked'; const vertical = currentTheme?.menu?.style === 'vertical'; const controlsRight = currentTheme?.controls?.layout === 'right'; const hasIcon = !!icon || !!iconSrc; const hasMenu = !isDarwin && ((menu?.length ?? 0) > 0); const hasTitle = !!(title && title !== ''); return (
{!isDarwin && !controlsRight && ( )} { !vertical && hasIcon && {icon} } {!isDarwin && !stacked && hasMenu && ( )} { vertical && hasIcon && {icon} } {title} {children} {!isDarwin && controlsRight && ( )} {!isDarwin && stacked && ( { hasMenu && } )} ); }; export default TitleBar;