import React from 'react'; import { Avatar, Button, Dropdown, Menu, Layout, Image, Badge } from 'antd'; import { MenuOutlined, UserOutlined, BellOutlined } from '@ant-design/icons'; import type { LayoutCollapsedConfig } from '../index'; export interface LayoutAdminHeaderMenu { key: K; name: string; } export interface LayoutAdminHeaderConfig { menuList?: LayoutAdminHeaderMenu[]; onOpt?: (optKey: K) => void; logo?: string; title: string; avatar?: string; userName: string; canCollapsed?: boolean; onCollapsed?: () => void; centerContent?: React.ReactNode; showMessage?: boolean; messageNum?: number; onMessageDetail?: () => void; } export interface LayoutAdminHeaderProps extends LayoutCollapsedConfig, LayoutAdminHeaderConfig {} export function AdminHeader(props: LayoutAdminHeaderProps) { const menu = ( {(props.menuList || []).map((item) => ( { props.onOpt && props.onOpt(item.key); }} > {item.name} ))} ); const userInfo = ( ); return (
{props.logo && ( {''} )} {!props.collapsed && ( {props.title} )}
{props.canCollapsed && (
{!!props.centerContent && props.centerContent}
{props.showMessage && ( { props.onMessageDetail && props.onMessageDetail(); }} /> )} {props.menuList && props.menuList.length > 0 ? ( {userInfo} ) : ( userInfo )}
); }