
import { Input, Layout, Avatar, Button, Dropdown } from "antd";
import {
	EditFilled,
	PlusOutlined,
	SearchOutlined,
	UserOutlined,
} from "@ant-design/icons";
import { useAuth } from "@web/src/providers/auth-provider";
import { useNavigate, useParams, useSearchParams } from "react-router-dom";
import { UserMenu } from "./UserMenu/UserMenu";
import { NavigationMenu } from "./NavigationMenu";
import { useMainContext } from "./MainProvider";
import { Header } from "antd/es/layout/layout";

export function MainHeader() {
	const { isAuthenticated, user } = useAuth();
	const { id } = useParams();
	const navigate = useNavigate();
	const { searchValue, setSearchValue } = useMainContext();

	return (
		<div className="select-none w-full flex items-center justify-between bg-white shadow-md border-b border-gray-100 fixed z-30 py-2 px-4 md:px-6">
			{/* 左侧区域 - 设置为不收缩 */}
			<div className="flex items-center justify-start space-x-4 flex-shrink-0">
				<img src="/logo.svg" className="h-12 w-12" />
				<div
					onClick={() => navigate("/")}
					className="text-2xl font-bold bg-gradient-to-r from-primary-600 via-primary-500 to-primary-400 bg-clip-text text-transparent hover:scale-105 transition-transform cursor-pointer whitespace-nowrap">
					烽火慕课
				</div>
				<NavigationMenu />
			</div>

			{/* 中间搜索区域 - 允许适当收缩但保持可用性 */}
			<div className="mx-4 flex-shrink md:flex-shrink-0 md:w-auto w-auto">
				<Input
					size="large"
					prefix={
						<SearchOutlined className="text-gray-400 group-hover:text-blue-500 transition-colors" />
					}
					placeholder="搜索课程"
					className="w-full md:w-96 rounded-full"
					value={searchValue}
					onClick={(e) => {
						if (!window.location.pathname.startsWith("/search")) {
							navigate(`/search`);
							window.scrollTo({
								top: 0,
								behavior: "smooth",
							});
						}
					}}
					onChange={(e) => setSearchValue(e.target.value)}
					onPressEnter={(e) => {
						if (!window.location.pathname.startsWith("/search")) {
							navigate(`/search`);
							window.scrollTo({
								top: 0,
								behavior: "smooth",
							});
						}
					}}
				/>
			</div>

			{/* 右侧区域 - 可以灵活收缩 */}
			<div className="flex justify-end gap-2 md:gap-4 flex-shrink">
				<div className="flex items-center gap-2 md:gap-4">
					{isAuthenticated && (
						<>
							<Button
								onClick={() => {
									const url = id
										? `/course/${id}/editor`
										: "/course/editor";
									navigate(url);
								}}
								className="flex items-center space-x-1 bg-gradient-to-r from-blue-500 to-blue-600 text-white hover:from-blue-600 hover:to-blue-700 border-none shadow-md hover:shadow-lg transition-all"
								icon={<EditFilled />}>
								{id ? "编辑课程" : "创建课程"}
							</Button>
						</>
					)}
					{isAuthenticated && (
						<Button
							onClick={() => {
								window.location.href = "/path/editor";
							}}
							icon={<PlusOutlined></PlusOutlined>}>
							创建学习路径
						</Button>
					)}
					{isAuthenticated ? (
						<UserMenu />
					) : (
						<Button
							onClick={() => navigate("/login")}
							className="flex items-center space-x-1 bg-gradient-to-r from-blue-500 to-blue-600 text-white hover:from-blue-600 hover:to-blue-700 border-none shadow-md hover:shadow-lg transition-all"
							icon={<UserOutlined />}>
							登录
						</Button>
					)}
				</div>
			</div>
		</div>
	);
}

