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