'use client'
import React from 'react'
import { Suspense } from 'react'
import { auth } from '@/auth'
import { clearChats } from '@/app/actions'
import { Sidebar } from '@/components/sidebar'
import { SidebarList } from '@/components/sidebar-list'
import { IconSeparator } from '@/components/ui/icons'
import { SidebarFooter } from '@/components/sidebar-footer'
import { ClearHistory } from '@/components/clear-history'
import { UserMenu, UserData } from '@/components/user-menu'
import { LoginButton } from '@/components/login-button'
import {
Tooltip,
TooltipContent,
TooltipTrigger
} from '@/components/ui/tooltip'
import { Badge } from '@/components/ui/badge'
import { ConnectButton } from '@/components/connect-button'
import { SettingsDropDown } from './settings-drop-down'
import { useLocalStorage } from '@/lib/hooks/use-local-storage'
import { Button } from './ui/button'
import Image from 'next/image';
import logoImage from '@/components/images/logo.png';
import { useRouter } from 'next/navigation'
// import { Button } from './ui/button'
import { Flex, Text } from '@radix-ui/themes';
import Link from 'next/link'
import { useTranslation } from 'react-i18next'
import { message } from 'antd'
import { LogoAI } from '@/components/chat'
import { useState } from "react";
import { Trash2 } from "lucide-react";
import {
BadgeInfo,
Tags,
CalendarClock,
Building2
} from "lucide-react";
export function Header() {
const router = useRouter();
const { t } = useTranslation();
const [userData, setUserData] = useLocalStorage(
'UserData',
{
auth_token: "",
id: 1,
login_ip: "",
login_time: 0,
role: "",
user_name: "",
version: ""
} as UserData
)
const soonFunc = () => {
message.info(t("soon"))
}
//w-11/12 sm:w-5/6 md:w-3/4 lg:w-2/3 xl:w-3/5 2xl:w-1/2
return (
{(!!userData && !!userData.user_name) ? (
) : (
)}
)
}
// ✅ 图标显示逻辑现在是这样的:
// data.icon = "🚀" 👉 显示 emoji;
// data.icon = "/images/icon.png" 👉 显示图片;
// data.icon = undefined/null 👉 显示默认 "Deploy" 字样。
export function DetailPageHeader({ data }: { data: any }) {
const [loading, setLoading] = useState(false);
const [statusText, setStatusText] = useState(data?.statusText || "加载中...");
const handleClick = async (source: "icon" | "info") => {
setLoading(true);
setStatusText(source === "icon" ? "正在处理图标操作..." : "正在处理信息操作...");
try {
// 从 localStorage 获取用户信息
const userData = JSON.parse(localStorage.getItem("UserData") || "null");
if (!userData || !userData.user_name) {
setStatusText("未登录,正在跳转登录页面...");
window.location.href = "/auth/sign-in/";
return;
}
const userName = userData.user_name;
// 从组件 props 里的 data 中取 id
const id = data?.id;
if (!id) {
setStatusText("数据缺失:找不到组件 ID");
return;
}
await fetch("/api/v1/deploy/deploy", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
id,
user_name: userName,
}),
});
await new Promise((resolve) => setTimeout(resolve, 1000));
setStatusText(`操作成功:来自${source === "icon" ? "图标" : "信息区域"}`);
} catch (err) {
console.error("请求出错:", err);
setStatusText("操作失败");
} finally {
setLoading(false);
}
};
// ✅ 删除函数
const handleDelete = () => {
if (loading) return;
const confirmed = window.confirm("确定要删除模型吗?");
if (confirmed) {
setLoading(true);
// 模拟删除流程(实际调用 API 或其他逻辑)
// await deleteComponent(data.id);
console.log("模型已删除");
setLoading(false);
}
};
// 处理图标路径
const isImagePath =
typeof data?.icon === "string" &&
(data.icon.startsWith("http") || data.icon.startsWith("/"));
const resolvedIconSrc =
isImagePath && !data.icon.startsWith("http")
? process.env.NEXT_PUBLIC_CLIENT_IMAGE_URL + data.icon
: data.icon;
return (
{/* 左图标(可点) */}
{/* 信息 + 删除按钮:左右分布 */}
{/* 信息区域 */}
{data?.name || "未命名组件"}
{data?.category || "未知"}
{data?.updated_at || "未提供"}
{data?.company || "未知公司"}
{/* 删除按钮 */}
{/* 状态条 */}
{loading ? "操作中..." : statusText}
);
}
// export function Header() {
// const router = useRouter();
// const { t } = useTranslation();
// const [userData, setUserData] = useLocalStorage(
// 'UserData',
// {
// auth_token: "",
// id: 1,
// login_ip: "",
// login_time: 0,
// role: "",
// user_name: "",
// version: ""
// } as UserData
// )
// const soonFunc = () => {
// message.info(t("soon"))
// }
// return (
//
// )
// }
export function NavBack() {
const router = useRouter();
const { t } = useTranslation();
// const query = router.query; // 假设页面 URL 是 /mypage?id=123
console.log("query", router)
return (
)
}
export function TimeP({
date,
}: {
date: string
}) {
const router = useRouter();
const { t } = useTranslation();
return (
{date} {t("JellyAI")}
)
}