import classnames from 'classnames'; import type { FormEvent } from 'react'; import { memo, useCallback } from 'react'; import { useIsResponseLoading } from '../hooks/useIsResponseLoading'; import { useSendRequest } from '../hooks/useSendRequest'; import { useUpdateRequest } from '../hooks/useUpdateRequest'; import type { HttpRequest } from '../lib/models'; import { IconButton } from './core/IconButton'; import { Input } from './core/Input'; import { RequestMethodDropdown } from './RequestMethodDropdown'; interface Props { request: HttpRequest; className?: string; } export const UrlBar = memo(function UrlBar({ request, className }: Props) { const sendRequest = useSendRequest(request.id); const updateRequest = useUpdateRequest(request.id); const handleMethodChange = useCallback((method: string) => updateRequest.mutate({ method }), []); const handleUrlChange = useCallback((url: string) => updateRequest.mutate({ url }), []); const loading = useIsResponseLoading(request.id); const handleSubmit = useCallback( async (e: FormEvent) => { e.preventDefault(); sendRequest(); }, [sendRequest], ); return (
} rightSlot={ } /> ); });