| import { useMemo } from 'react'; |
| import type { TConversation, TEndpointOption, TPreset } from 'librechat-data-provider'; |
| import type { SetterOrUpdater } from 'recoil'; |
| import useGetSender from '~/hooks/Conversations/useGetSender'; |
| import { useGetEndpointsQuery } from '~/data-provider'; |
| import { EndpointIcon } from '~/components/Endpoints'; |
| import { getPresetTitle } from '~/utils'; |
|
|
| export default function AddedConvo({ |
| addedConvo, |
| setAddedConvo, |
| }: { |
| addedConvo: TConversation | null; |
| setAddedConvo: SetterOrUpdater<TConversation | null>; |
| }) { |
| const getSender = useGetSender(); |
| const { data: endpointsConfig } = useGetEndpointsQuery(); |
| const title = useMemo(() => { |
| const sender = getSender(addedConvo as TEndpointOption); |
| const title = getPresetTitle(addedConvo as TPreset); |
| return `+ ${sender}: ${title}`; |
| }, [addedConvo, getSender]); |
|
|
| if (!addedConvo) { |
| return null; |
| } |
| return ( |
| <div className="flex items-start gap-4 py-2.5 pl-3 pr-1.5 text-sm"> |
| <span className="mt-0 flex h-6 w-6 flex-shrink-0 items-center justify-center"> |
| <div className="icon-md"> |
| <EndpointIcon |
| conversation={addedConvo} |
| endpointsConfig={endpointsConfig} |
| containerClassName="shadow-stroke overflow-hidden rounded-full" |
| context="menu-item" |
| size={20} |
| /> |
| </div> |
| </span> |
| <span className="text-token-text-secondary line-clamp-3 flex-1 py-0.5 font-semibold"> |
| {title} |
| </span> |
| <button |
| className="text-token-text-secondary flex-shrink-0" |
| type="button" |
| aria-label="Close added conversation" |
| onClick={() => setAddedConvo(null)} |
| > |
| <svg |
| xmlns="http://www.w3.org/2000/svg" |
| width="24" |
| height="24" |
| fill="none" |
| viewBox="0 0 24 24" |
| className="icon-lg" |
| aria-hidden="true" |
| > |
| <path |
| fill="currentColor" |
| fillRule="evenodd" |
| d="M7.293 7.293a1 1 0 0 1 1.414 0L12 10.586l3.293-3.293a1 1 0 1 1 1.414 1.414L13.414 12l3.293 3.293a1 1 0 0 1-1.414 1.414L12 13.414l-3.293 3.293a1 1 0 0 1-1.414-1.414L10.586 12 7.293 8.707a1 1 0 0 1 0-1.414" |
| clipRule="evenodd" |
| ></path> |
| </svg> |
| </button> |
| </div> |
| ); |
| } |
|
|