mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-20 16:43:53 +01:00
Add .oxfmtignore to skip generated bindings and wasm-pack output. Add npm format script, update DEVELOPMENT.md for Vite+ toolchain, and format all non-generated files with oxfmt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import type { HttpResponse } from "@yaakapp-internal/models";
|
|
import { useSaveResponse } from "../../hooks/useSaveResponse";
|
|
import { getContentTypeFromHeaders } from "../../lib/model_util";
|
|
import { Banner } from "../core/Banner";
|
|
import { Button } from "../core/Button";
|
|
import { InlineCode } from "../core/InlineCode";
|
|
import { LoadingIcon } from "../core/LoadingIcon";
|
|
import { EmptyStateText } from "../EmptyStateText";
|
|
|
|
interface Props {
|
|
response: HttpResponse;
|
|
}
|
|
|
|
export function BinaryViewer({ response }: Props) {
|
|
const saveResponse = useSaveResponse(response);
|
|
const contentType = getContentTypeFromHeaders(response.headers) ?? "unknown";
|
|
|
|
// Wait until the response has been fully-downloaded
|
|
if (response.state !== "closed") {
|
|
return (
|
|
<EmptyStateText>
|
|
<LoadingIcon size="sm" />
|
|
</EmptyStateText>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<Banner color="primary" className="h-full flex flex-col gap-3">
|
|
<p>
|
|
Content type <InlineCode>{contentType}</InlineCode> cannot be previewed
|
|
</p>
|
|
<div>
|
|
<Button variant="border" size="sm" onClick={() => saveResponse.mutate()}>
|
|
Save to File
|
|
</Button>
|
|
</div>
|
|
</Banner>
|
|
);
|
|
}
|