Fix text encoding and delete responses

This commit is contained in:
Gregory Schier
2023-04-14 13:50:41 -07:00
parent f7f7438c9e
commit 083f565b12
7 changed files with 146 additions and 35 deletions

View File

@@ -5,6 +5,7 @@ import { createGlobalState } from 'react-use';
import { useActiveRequestId } from '../hooks/useActiveRequestId';
import { useDeleteResponse } from '../hooks/useDeleteResponse';
import { useDeleteResponses } from '../hooks/useDeleteResponses';
import { useLatestResponse } from '../hooks/useLatestResponse';
import { useResponseContentType } from '../hooks/useResponseContentType';
import { useResponses } from '../hooks/useResponses';
import { useResponseViewMode } from '../hooks/useResponseViewMode';
@@ -38,10 +39,11 @@ const useActiveTab = createGlobalState<string>('body');
export const ResponsePane = memo(function ResponsePane({ style, className }: Props) {
const [pinnedResponseId, setPinnedResponseId] = useState<string | null>(null);
const activeRequestId = useActiveRequestId();
const latestResponse = useLatestResponse(activeRequestId);
const responses = useResponses(activeRequestId);
const activeResponse: HttpResponse | null = pinnedResponseId
? responses.find((r) => r.id === pinnedResponseId) ?? null
: responses[0] ?? null;
: latestResponse ?? null;
const [viewMode, setViewMode] = useResponseViewMode(activeResponse?.requestId);
const deleteResponse = useDeleteResponse(activeResponse?.id ?? null);
const deleteAllResponses = useDeleteResponses(activeResponse?.requestId);

View File

@@ -3,5 +3,5 @@ import { useResponses } from './useResponses';
export function useLatestResponse(requestId: string | null): HttpResponse | null {
const responses = useResponses(requestId);
return responses[responses.length - 1] ?? null;
return responses[0] ?? null;
}

View File

@@ -8,7 +8,8 @@ export function useResponseBodyText(response: HttpResponse) {
initialData: null,
queryFn: async () => {
if (response.body) {
return String.fromCharCode.apply(null, response.body);
const uint8Array = Uint8Array.of(...response.body);
return new TextDecoder().decode(uint8Array);
}
if (response.bodyPath) {