packages/antd/src/components/themedLayoutV2/header/index.tsx
import React from "react";
import { Layout as AntdLayout, Typography, Avatar, Space, theme } from "antd";
import {
pickNotDeprecated,
useActiveAuthProvider,
useGetIdentity,
} from "@refinedev/core";
import { RefineThemedLayoutV2HeaderProps } from "../types";
export const ThemedHeaderV2: React.FC<RefineThemedLayoutV2HeaderProps> = ({
isSticky,
sticky,
}) => {
const { token } = theme.useToken();
const authProvider = useActiveAuthProvider();
const { data: user } = useGetIdentity({
v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),
});
const shouldRenderHeader = user && (user.name || user.avatar);
if (!shouldRenderHeader) {
return null;
}
const headerStyles: React.CSSProperties = {
backgroundColor: token.colorBgElevated,
display: "flex",
justifyContent: "flex-end",
alignItems: "center",
padding: "0px 24px",
height: "64px",
};
if (pickNotDeprecated(sticky, isSticky)) {
headerStyles.position = "sticky";
headerStyles.top = 0;
headerStyles.zIndex = 1;
}
return (
<AntdLayout.Header style={headerStyles}>
<Space>
<Space size="middle">
{user?.name && <Typography.Text strong>{user.name}</Typography.Text>}
{user?.avatar && <Avatar src={user?.avatar} alt={user?.name} />}
</Space>
</Space>
</AntdLayout.Header>
);
};