feat(pageHeader): popup 模式下隐藏 PageHeader 组件
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import { alpha, Box, Stack, SxProps, Theme, Typography, useTheme } from '@mui/material';
|
import { alpha, Box, Stack, SxProps, Theme, Typography, useTheme } from '@mui/material';
|
||||||
import { ReactNode } from 'react';
|
import { ReactNode, useMemo } from 'react';
|
||||||
|
import { getEntryPointType } from '@/config/features';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PageHeader 组件属性接口
|
* PageHeader 组件属性接口
|
||||||
@@ -64,6 +65,11 @@ export default function PageHeader({
|
|||||||
}: PageHeaderProps) {
|
}: PageHeaderProps) {
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
const resolvedIconColor = iconColor ?? theme.palette.primary.main;
|
const resolvedIconColor = iconColor ?? theme.palette.primary.main;
|
||||||
|
const entryPointType = useMemo(() => getEntryPointType(), []);
|
||||||
|
|
||||||
|
if (entryPointType === 'popup') {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Stack direction="row" spacing={1.5} alignItems="center" sx={{ mb: 2.5, ...sx }}>
|
<Stack direction="row" spacing={1.5} alignItems="center" sx={{ mb: 2.5, ...sx }}>
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ import { render, screen } from '@testing-library/react';
|
|||||||
import { ThemeProvider, createTheme } from '@mui/material/styles';
|
import { ThemeProvider, createTheme } from '@mui/material/styles';
|
||||||
import PageHeader, { type PageHeaderProps } from '@/components/PageHeader';
|
import PageHeader, { type PageHeaderProps } from '@/components/PageHeader';
|
||||||
|
|
||||||
|
vi.mock('@/config/features', () => ({
|
||||||
|
getEntryPointType: vi.fn(() => 'sidepanel'),
|
||||||
|
}));
|
||||||
|
|
||||||
const theme = createTheme();
|
const theme = createTheme();
|
||||||
|
|
||||||
function renderWithTheme(ui: React.ReactElement) {
|
function renderWithTheme(ui: React.ReactElement) {
|
||||||
@@ -117,4 +121,14 @@ describe('PageHeader 组件系统', () => {
|
|||||||
expect(outerElement).toBeTruthy();
|
expect(outerElement).toBeTruthy();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('PageHeader 入口点隐藏', () => {
|
||||||
|
it('popup 模式下应返回 null', async () => {
|
||||||
|
const { getEntryPointType } = await import('@/config/features');
|
||||||
|
vi.mocked(getEntryPointType).mockReturnValue('popup');
|
||||||
|
|
||||||
|
const { container } = renderWithTheme(<PageHeader {...defaultProps} />);
|
||||||
|
expect(container.innerHTML).toBe('');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user