Spaces:
Paused
Paused
Download components/Chat/PromptList.tsx from matthoffner/chatbot: direct link, hf CLI and curl.
- Browser
- Download file 1.24 kB
-
https://huggingface.co/spaces/matthoffner/chatbot/resolve/635d262964687325fc80425442b2de216077d6ad/components/Chat/PromptList.tsx
- Command line
-
hf download hf://spaces/matthoffner/chatbot@635d262964687325fc80425442b2de216077d6ad/components/Chat/PromptList.tsx
-
curl -L -o PromptList.tsx https://huggingface.co/spaces/matthoffner/chatbot/resolve/635d262964687325fc80425442b2de216077d6ad/components/Chat/PromptList.tsx
1.24 kB
| import { FC, MutableRefObject } from 'react'; | |
| import { Prompt } from '@/types/prompt'; | |
| interface Props { | |
| prompts: Prompt[]; | |
| activePromptIndex: number; | |
| onSelect: () => void; | |
| onMouseOver: (index: number) => void; | |
| promptListRef: MutableRefObject<HTMLUListElement | null>; | |
| } | |
| export const PromptList: FC<Props> = ({ | |
| prompts, | |
| activePromptIndex, | |
| onSelect, | |
| onMouseOver, | |
| promptListRef, | |
| }) => { | |
| return ( | |
| <ul | |
| ref={promptListRef} | |
| className="z-10 max-h-52 w-full overflow-scroll rounded border border-black/10 bg-white shadow-[0_0_10px_rgba(0,0,0,0.10)] dark:border-neutral-500 dark:bg-[#343541] dark:text-white dark:shadow-[0_0_15px_rgba(0,0,0,0.10)]" | |
| > | |
| {prompts.map((prompt, index) => ( | |
| <li | |
| key={prompt.id} | |
| className={`${ | |
| index === activePromptIndex | |
| ? 'bg-gray-200 dark:bg-[#202123] dark:text-black' | |
| : '' | |
| } cursor-pointer px-3 py-2 text-sm text-black dark:text-white`} | |
| onClick={(e) => { | |
| e.preventDefault(); | |
| e.stopPropagation(); | |
| onSelect(); | |
| }} | |
| onMouseEnter={() => onMouseOver(index)} | |
| > | |
| {prompt.name} | |
| </li> | |
| ))} | |
| </ul> | |
| ); | |
| }; | |