Fix adding header if not exist

This commit is contained in:
Gregory Schier
2024-03-10 17:10:16 -07:00
parent 6e102175c0
commit b177993f8a
3 changed files with 25 additions and 35 deletions

View File

@@ -44,8 +44,6 @@ export function BinaryFileEditor({
const filePath = typeof body.filePath === 'string' ? body.filePath : undefined;
const mimeType = mime.getType(filePath ?? '') ?? 'application/octet-stream';
console.log('mimeType', mimeType, contentType);
return (
<VStack space={2}>
<HStack space={2} alignItems="center">

View File

@@ -82,10 +82,9 @@ export const RequestPane = memo(function RequestPane({
],
onChange: async (bodyType) => {
const patch: Partial<HttpRequest> = { bodyType };
let newContentType: string | null | undefined;
if (bodyType === BODY_TYPE_NONE) {
patch.headers = activeRequest.headers.filter(
(h) => h.name.toLowerCase() !== 'content-type',
);
newContentType = null;
} else if (
bodyType === BODY_TYPE_FORM_URLENCODED ||
bodyType === BODY_TYPE_FORM_MULTIPART ||
@@ -94,32 +93,17 @@ export const RequestPane = memo(function RequestPane({
bodyType === BODY_TYPE_XML
) {
patch.method = 'POST';
patch.headers = [
...(activeRequest.headers.filter((h) => h.name.toLowerCase() !== 'content-type') ??
[]),
{
name: 'Content-Type',
value: bodyType === BODY_TYPE_OTHER ? 'text/plain' : bodyType,
enabled: true,
},
];
newContentType = bodyType === BODY_TYPE_OTHER ? 'text/plain' : bodyType;
} else if (bodyType == BODY_TYPE_GRAPHQL) {
patch.method = 'POST';
patch.headers = [
...(activeRequest.headers.filter((h) => h.name.toLowerCase() !== 'content-type') ??
[]),
{
name: 'Content-Type',
value: 'application/json',
enabled: true,
},
];
newContentType = 'application/json';
}
await updateRequest.mutateAsync(patch);
// Force update header editor so any changed headers are reflected
setTimeout(() => setForceUpdateHeaderEditorKey((u) => u + 1), 100);
if (newContentType !== undefined) {
await handleContentTypeChange(newContentType);
}
},
},
},
@@ -176,14 +160,18 @@ export const RequestPane = memo(function RequestPane({
(body: HttpRequest['body']) => updateRequest.mutate({ body }),
[updateRequest],
);
const handleContentTypeChange = useCallback(
async (contentType: string | null) => {
const headers =
contentType != null
? activeRequest.headers.map((h) =>
h.name.toLowerCase() === 'content-type' ? { ...h, value: contentType } : h,
)
: activeRequest.headers;
const headers = activeRequest.headers.filter((h) => h.name.toLowerCase() !== 'content-type');
if (contentType != null) {
headers.push({
name: 'Content-Type',
value: contentType,
enabled: true,
});
}
await updateRequest.mutateAsync({ headers });
// Force update header editor so any changed headers are reflected

View File

@@ -80,10 +80,14 @@ export function useIntrospectGraphQL(baseRequest: HttpRequest) {
setRefetchKey((k) => k + 1);
}, []);
const schema = useMemo(
() => (introspection ? buildClientSchema(introspection) : undefined),
[introspection],
);
const schema = useMemo(() => {
try {
return introspection ? buildClientSchema(introspection) : undefined;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
} catch (e: any) {
setError('message' in e ? e.message : String(e));
}
}, [introspection]);
return { schema, isLoading, error, refetch };
}