| import { QueryKeys } from 'librechat-data-provider'; | |
| import { useQueryClient } from '@tanstack/react-query'; | |
| import { TooltipAnchor, Button, NewChatIcon } from '@librechat/client'; | |
| import { useChatContext } from '~/Providers'; | |
| import { clearMessagesCache } from '~/utils'; | |
| import { useLocalize } from '~/hooks'; | |
| export default function HeaderNewChat() { | |
| const localize = useLocalize(); | |
| const queryClient = useQueryClient(); | |
| const { conversation, newConversation } = useChatContext(); | |
| const clickHandler: React.MouseEventHandler<HTMLButtonElement> = (e) => { | |
| if (e.button === 0 && (e.ctrlKey || e.metaKey)) { | |
| window.open('/c/new', '_blank'); | |
| return; | |
| } | |
| clearMessagesCache(queryClient, conversation?.conversationId); | |
| queryClient.invalidateQueries([QueryKeys.messages]); | |
| newConversation(); | |
| }; | |
| return ( | |
| <TooltipAnchor | |
| description={localize('com_ui_new_chat')} | |
| render={ | |
| <Button | |
| size="icon" | |
| variant="outline" | |
| data-testid="wide-header-new-chat-button" | |
| aria-label={localize('com_ui_new_chat')} | |
| className="rounded-xl border border-border-light bg-surface-secondary p-2 hover:bg-surface-hover max-md:hidden" | |
| onClick={clickHandler} | |
| > | |
| <NewChatIcon /> | |
| </Button> | |
| } | |
| /> | |
| ); | |
| } | |