feat: Introduce DashScope agent configuration, a WAV client for duplex testing, and new UI components for assistants.

This commit is contained in:
Xin Wang
2026-03-10 02:25:52 +08:00
parent 312fe0cf31
commit e4ccec6cc1
3 changed files with 165 additions and 111 deletions

View File

@@ -206,10 +206,11 @@ interface DrawerProps {
isOpen: boolean;
onClose: () => void;
title: string;
className?: string;
children: React.ReactNode;
}
export const Drawer: React.FC<DrawerProps> = ({ isOpen, onClose, title, children }) => {
export const Drawer: React.FC<DrawerProps> = ({ isOpen, onClose, title, className, children }) => {
if (!isOpen) return null;
return (
@@ -218,7 +219,7 @@ export const Drawer: React.FC<DrawerProps> = ({ isOpen, onClose, title, children
<div className="fixed inset-0 bg-black/60 backdrop-blur-sm transition-opacity" onClick={onClose} />
{/* Drawer Content */}
<div className="relative ml-auto flex h-full w-full max-w-md flex-col overflow-y-auto bg-background/95 border-l border-white/10 p-6 shadow-2xl animate-in slide-in-from-right sm:max-w-lg">
<div className={`relative ml-auto flex h-full w-full flex-col overflow-y-auto bg-background/95 border-l border-white/10 p-6 shadow-2xl animate-in slide-in-from-right ${className || 'max-w-md sm:max-w-lg'}`}>
<div className="flex items-center justify-between mb-4">
<h2 className="text-lg font-semibold text-foreground">{title}</h2>
<Button variant="ghost" size="icon" onClick={onClose}>