Better handling of large responses

This commit is contained in:
Gregory Schier
2024-07-23 08:59:15 -07:00
parent f24fd13c45
commit 13183ae837
5 changed files with 66 additions and 8 deletions

View File

@@ -6,7 +6,7 @@ import { createGlobalState } from 'react-use';
const useClipboardTextState = createGlobalState<string>('');
export function useClipboardText() {
export function useClipboardText({ disableToast }: { disableToast?: boolean } = {}) {
const [value, setValue] = useClipboardTextState();
const focused = useWindowFocus();
const toast = useToast();
@@ -18,7 +18,7 @@ export function useClipboardText() {
const setText = useCallback(
(text: string) => {
writeText(text).catch(console.error);
if (text != '') {
if (text != '' && !disableToast) {
toast.show({
id: 'copied',
variant: 'copied',
@@ -27,7 +27,7 @@ export function useClipboardText() {
}
setValue(text);
},
[setValue, toast],
[disableToast, setValue, toast],
);
return [value, setText] as const;

View File

@@ -20,7 +20,7 @@ export function useSaveResponse(response: HttpResponse) {
const contentType = getContentTypeHeader(response.headers) ?? 'unknown';
const ext = mime.getExtension(contentType);
const slug = slugify(request.name ?? 'response', { lower: true });
const slug = slugify(request.name || 'response', { lower: true });
const filepath = await save({
defaultPath: ext ? `${slug}.${ext}` : slug,
title: 'Save Response',

View File

@@ -2,7 +2,7 @@ import { useRef, useState } from 'react';
import { useUnmount } from 'react-use';
/** Returns a boolean that is true for a given number of milliseconds. */
export function useTimedBoolean(millis = 1000): [boolean, () => void] {
export function useTimedBoolean(millis = 1500): [boolean, () => void] {
const [value, setValue] = useState(false);
const timeout = useRef<NodeJS.Timeout | null>(null);
const reset = () => timeout.current && clearTimeout(timeout.current);