import { Alert, Badge, Button, Group, Loader, Text, Title } from "@mantine/core";
import { IconAlertTriangle, IconInfoCircle, IconPlayerPlay } from "@tabler/icons-react";
interface PreviewHeaderMessages {
title: string;
test: string;
mutationDisabled: string;
staleTitle: string;
staleDescription: string;
}
interface PreviewHeaderProps {
method: string;
url: string;
isTesting: boolean;
isSampleStale: boolean;
testError?: string | null;
responseError?: string;
responseStatus?: { status: number; statusText: string } | null;
onTest: () => void;
messages: PreviewHeaderMessages;
}
export function PreviewHeader({
method,
url,
isTesting,
isSampleStale,
testError,
responseError,
responseStatus,
onTest,
messages,
}: PreviewHeaderProps) {
return (
<>
{messages.title}
: }
onClick={onTest}
loading={isTesting}
disabled={method !== "GET" || !url}
>
{messages.test}
{method !== "GET" && (
}>
{messages.mutationDisabled}
)}
{isSampleStale && (
}>
{messages.staleTitle}
{messages.staleDescription}
)}
{testError && (
} p="xs">
{testError}
)}
{responseError && (
} p="xs">
{responseError}
{responseStatus && (
{responseStatus.status} {responseStatus.statusText}
)}
)}
>
);
}