| 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> |
| } |
| /> |
| ); |
| } |
|
|