Compare commits

..

No commits in common. "ce4b0dcd4d3b2b8513adfd872759611d18cd9c46" and "d2b5df210bf7700c1549031f4d1e4add7d5acc7e" have entirely different histories.

4 changed files with 79 additions and 14 deletions

View File

@ -475,7 +475,7 @@ export default function ChatPage() {
XClawUsed: false, XClawUsed: false,
}); });
// 使用完整页面刷新确保组件重新挂载isNewThread 为 true // 使用完整页面刷新确保组件重新挂载isNewThread 为 true
window.location.reload(); window.location.href = "/workspace/chats/new";
}} }}
> >

View File

@ -1,14 +1,79 @@
import { Loader } from "@/components/ai-elements/loader"; import { Skeleton } from "@/components/ui/skeleton";
export function MessageListSkeleton() { const STAGGER_MS = 60;
function SkeletonBar({
className,
style,
originRight,
}: {
className?: string;
style?: React.CSSProperties;
originRight?: boolean;
}) {
return ( return (
<div className="flex w-full max-w-(--container-width-md) flex-1 items-center justify-center p-8"> <div
<Loader className={`animate-skeleton-entrance fill-mode-[forwards] overflow-hidden rounded-md ${originRight ? "origin-[right]" : "origin-[left]"} ${className ?? ""}`}
className="text-muted-foreground" style={{ opacity: 0, ...style }}
size={28} >
role="status" <Skeleton className="h-full w-full rounded-md" />
aria-label="Loading" </div>
/> );
}
export function MessageListSkeleton() {
let index = 0;
return (
<div className="flex w-full max-w-(--container-width-md) flex-col gap-12 p-8 pt-16">
<div
role="human-message"
className="flex w-[50%] flex-col items-end gap-2 self-end"
>
<SkeletonBar
className="h-6 w-full"
originRight
style={{ animationDelay: `${index++ * STAGGER_MS}ms` }}
/>
<SkeletonBar
className="h-6 w-[80%]"
originRight
style={{ animationDelay: `${index++ * STAGGER_MS}ms` }}
/>
</div>
<div role="assistant-message" className="flex flex-col gap-2">
<SkeletonBar
className="h-6 w-full"
style={{ animationDelay: `${index++ * STAGGER_MS}ms` }}
/>
<SkeletonBar
className="h-6 w-full"
style={{ animationDelay: `${index++ * STAGGER_MS}ms` }}
/>
<SkeletonBar
className="h-6 w-[70%]"
style={{ animationDelay: `${index++ * STAGGER_MS}ms` }}
/>
<SkeletonBar
className="h-6 w-full"
style={{ animationDelay: `${index++ * STAGGER_MS}ms` }}
/>
<SkeletonBar
className="h-6 w-full"
style={{ animationDelay: `${index++ * STAGGER_MS}ms` }}
/>
<SkeletonBar
className="h-6 w-full"
style={{ animationDelay: `${index++ * STAGGER_MS}ms` }}
/>
<SkeletonBar
className="h-6 w-[60%]"
style={{ animationDelay: `${index++ * STAGGER_MS}ms` }}
/>
<SkeletonBar
className="h-6 w-[40%]"
style={{ animationDelay: `${index++ * STAGGER_MS}ms` }}
/>
</div>
</div> </div>
); );
} }

View File

@ -30,7 +30,7 @@ export function WorkspaceHeader({ className }: { className?: string }) {
{state === "collapsed" ? ( {state === "collapsed" ? (
<div className="group-has-data-[collapsible=icon]/sidebar-wrapper:-translate-y flex w-full cursor-pointer items-center justify-center"> <div className="group-has-data-[collapsible=icon]/sidebar-wrapper:-translate-y flex w-full cursor-pointer items-center justify-center">
<div className="text-primary block pt-1 font-serif group-hover/workspace-header:hidden"> <div className="text-primary block pt-1 font-serif group-hover/workspace-header:hidden">
XC DF
</div> </div>
<SidebarTrigger className="hidden pl-2 group-hover/workspace-header:block" /> <SidebarTrigger className="hidden pl-2 group-hover/workspace-header:block" />
</div> </div>
@ -38,11 +38,11 @@ export function WorkspaceHeader({ className }: { className?: string }) {
<div className="flex items-center justify-between gap-2"> <div className="flex items-center justify-between gap-2">
{env.NEXT_PUBLIC_STATIC_WEBSITE_ONLY === "true" ? ( {env.NEXT_PUBLIC_STATIC_WEBSITE_ONLY === "true" ? (
<Link href="/" className="text-primary ml-2 font-serif"> <Link href="/" className="text-primary ml-2 font-serif">
XClaw侧边栏 DeerFlow
</Link> </Link>
) : ( ) : (
<div className="text-primary ml-2 cursor-default font-serif"> <div className="text-primary ml-2 cursor-default font-serif">
XClaw DeerFlow
</div> </div>
)} )}
<SidebarTrigger /> <SidebarTrigger />

View File

@ -29,7 +29,7 @@ export function WorkspaceSidebar({
{isSidebarOpen && <RecentChatList />} {isSidebarOpen && <RecentChatList />}
</SidebarContent> </SidebarContent>
<SidebarFooter> <SidebarFooter>
{/* <WorkspaceNavMenu /> */} <WorkspaceNavMenu />
</SidebarFooter> </SidebarFooter>
<SidebarRail /> <SidebarRail />
</Sidebar> </Sidebar>