diff --git a/src-web/components/RequestPane.tsx b/src-web/components/RequestPane.tsx index 5866d94f..3dfa1ba4 100644 --- a/src-web/components/RequestPane.tsx +++ b/src-web/components/RequestPane.tsx @@ -60,6 +60,7 @@ const TAB_BODY = 'body'; const TAB_PARAMS = 'params'; const TAB_HEADERS = 'headers'; const TAB_AUTH = 'auth'; + const DEFAULT_TAB = TAB_BODY; export const RequestPane = memo(function RequestPane({ @@ -108,12 +109,7 @@ export const RequestPane = memo(function RequestPane({ if (index >= 0) { items[index]!.readOnlyName = true; } else { - items.push({ - name, - value: '', - enabled: true, - readOnlyName: true, - }); + items.push({ name, value: '', enabled: true, readOnlyName: true }); } } return { urlParameterPairs: items, urlParametersKey: placeholderNames.join(',') }; @@ -358,13 +354,14 @@ export const RequestPane = memo(function RequestPane({ isLoading={isLoading} /> - + {activeRequest.authenticationType === AUTH_TYPE_BASIC ? ( ) : activeRequest.authenticationType === AUTH_TYPE_BEARER ? ( @@ -375,21 +372,21 @@ export const RequestPane = memo(function RequestPane({ )} - + - + - + {activeRequest.bodyType === BODY_TYPE_JSON ? ( ) : ( - - - - - - - + {!activeResponse.contentLength ? (
Empty Body @@ -192,6 +187,12 @@ export const ResponsePane = memo(function ResponsePane({ style, className, activ /> )} + + + + + + )}
diff --git a/src-web/components/core/Tabs/Tabs.tsx b/src-web/components/core/Tabs/Tabs.tsx index 6c1a2f64..b26b8051 100644 --- a/src-web/components/core/Tabs/Tabs.tsx +++ b/src-web/components/core/Tabs/Tabs.tsx @@ -1,6 +1,6 @@ import classNames from 'classnames'; import type { ReactNode } from 'react'; -import { memo, useCallback, useRef } from 'react'; +import { memo, useEffect, useRef } from 'react'; import { Icon } from '../Icon'; import type { RadioDropdownProps } from '../RadioDropdown'; import { RadioDropdown } from '../RadioDropdown'; @@ -39,26 +39,23 @@ export function Tabs({ }: Props) { const ref = useRef(null); - const handleTabChange = useCallback( - (value: string) => { - const tabs = ref.current?.querySelectorAll(`[data-tab]`); - for (const tab of tabs ?? []) { - const v = tab.getAttribute('data-tab'); - if (v === value) { - tab.setAttribute('tabindex', '-1'); - tab.setAttribute('data-state', 'active'); - tab.setAttribute('aria-hidden', 'false'); - tab.style.display = 'block'; - } else { - tab.setAttribute('data-state', 'inactive'); - tab.setAttribute('aria-hidden', 'true'); - tab.style.display = 'none'; - } + // Update tabs when value changes + useEffect(() => { + const tabs = ref.current?.querySelectorAll(`[data-tab]`); + for (const tab of tabs ?? []) { + const v = tab.getAttribute('data-tab'); + if (v === value) { + tab.setAttribute('tabindex', '-1'); + tab.setAttribute('data-state', 'active'); + tab.setAttribute('aria-hidden', 'false'); + tab.style.display = 'block'; + } else { + tab.setAttribute('data-state', 'inactive'); + tab.setAttribute('aria-hidden', 'true'); + tab.style.display = 'none'; } - onChangeValue(value); - }, - [onChangeValue], - ); + } + }, [value]); return (