index.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { ChatContext } from '@/app/chat-context';
  2. import ModelSelector from '@/components/chat/header/model-selector';
  3. import ModeTab from '@/components/chat/mode-tab';
  4. import { useContext } from 'react';
  5. import AgentSelector from './agent-selector';
  6. import ChatExcel from './chat-excel';
  7. import DBSelector from './db-selector';
  8. /**
  9. * chat header
  10. */
  11. interface Props {
  12. refreshHistory?: () => Promise<void>;
  13. modelChange?: (val: string) => void;
  14. }
  15. function Header({ refreshHistory, modelChange }: Props) {
  16. const { scene, refreshDialogList } = useContext(ChatContext);
  17. return (
  18. <div className='w-full py-2 px-4 md:px-4 flex flex-wrap items-center justify-center gap-1 md:gap-4'>
  19. {/* Models Selector */}
  20. <ModelSelector onChange={modelChange} />
  21. {/* DB Selector */}
  22. <DBSelector />
  23. {/* Excel Upload */}
  24. {scene === 'chat_excel' && (
  25. <ChatExcel
  26. onComplete={() => {
  27. refreshDialogList?.();
  28. refreshHistory?.();
  29. }}
  30. />
  31. )}
  32. {/* Agent Selector */}
  33. {scene === 'chat_agent' && <AgentSelector />}
  34. <ModeTab />
  35. </div>
  36. );
  37. }
  38. export default Header;