import classNames from 'classnames'; import { useDeleteHttpResponse } from '../hooks/useDeleteHttpResponse'; import { useDeleteHttpResponses } from '../hooks/useDeleteHttpResponses'; import type { HttpResponse } from '../lib/models'; import { pluralize } from '../lib/pluralize'; import { Dropdown } from './core/Dropdown'; import { Icon } from './core/Icon'; import { IconButton } from './core/IconButton'; import { HStack } from './core/Stacks'; import { StatusTag } from './core/StatusTag'; interface Props { responses: HttpResponse[]; activeResponse: HttpResponse; onPinnedResponseId: (id: string) => void; className?: string; } export const RecentResponsesDropdown = function ResponsePane({ activeResponse, responses, onPinnedResponseId, className, }: Props) { const deleteResponse = useDeleteHttpResponse(activeResponse?.id ?? null); const deleteAllResponses = useDeleteHttpResponses(activeResponse?.requestId); const latestResponseId = responses[0]?.id ?? 'n/a'; return ( ({ key: r.id, label: ( {' '} {r.elapsed >= 0 ? `${r.elapsed}ms` : 'n/a'} ), leftSlot: activeResponse?.id === r.id ? : , onSelect: () => onPinnedResponseId(r.id), })), ]} > ); };