/** * This file is part of the NocoBase (R) project. * Copyright (c) 2020-2024 NocoBase Co., Ltd. * Authors: NocoBase Team. * * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ import React, { useMemo } from 'react'; import { FloatButton, Avatar, Dropdown, Popover } from 'antd'; import icon from '../icon.svg'; import { css } from '@emotion/css'; import { useChatBoxContext } from './ChatBoxContext'; import { useAIEmployeesContext } from '../AIEmployeesProvider'; import { avatars } from '../avatars'; import { ProfileCard } from '../ProfileCard'; export const ChatButton: React.FC = () => { const { aiEmployees } = useAIEmployeesContext(); const open = useChatBoxContext('open'); const setOpen = useChatBoxContext('setOpen'); const switchAIEmployee = useChatBoxContext('switchAIEmployee'); const items = useMemo(() => { return aiEmployees?.map((employee) => ({ key: employee.username, label: (
{ setOpen(true); switchAIEmployee(employee); }} > } placement="leftTop"> {employee.nickname}
), })); }, [aiEmployees]); if (!aiEmployees?.length) { return null; } return (
} onClick={() => { setOpen(!open); }} shape="square" />
); };