ant-design/components/menu/MenuContext.tsx
thinkasany 8975c77f5a
feat: ConfigProvider support classNames and styles for menu (#53324)
* feat: ConfigProvider support classNames and styles for menu

* fix

* fix type

* demo opt

* fix

* fix

* chore: fix ts

* chore: fix ts

* chore: must fill

* chore: other filled

* chore: adjust logic

* chore: fix cov

---------

Co-authored-by: 二货机器人 <smith3816@gmail.com>
2025-04-22 17:03:26 +08:00

39 lines
966 B
TypeScript

import { createContext } from 'react';
import type { DirectionType } from '../config-provider';
import { SemanticName, SubMenuName } from './menu';
export type MenuTheme = 'light' | 'dark';
export interface MenuContextProps {
prefixCls: string;
inlineCollapsed: boolean;
direction?: DirectionType;
theme?: MenuTheme;
firstLevel: boolean;
/** @internal Safe to remove */
disableMenuItemTitleTooltip?: boolean;
classNames: Required<
Record<SemanticName, string> & {
popup: { root: string };
subMenu: Required<Record<SubMenuName, string>>;
}
>;
styles: Required<
Record<SemanticName, React.CSSProperties> & {
subMenu: Required<Record<SubMenuName, React.CSSProperties>>;
popup: { root: React.CSSProperties };
}
>;
}
const MenuContext = createContext<MenuContextProps>({
prefixCls: '',
firstLevel: true,
inlineCollapsed: false,
styles: null!,
classNames: null!,
});
export default MenuContext;