mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-15 11:51:30 +00:00
fix: refactor default tab selection logic for correct tab persistance (#6473)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import React, { useEffect, useRef, useCallback, useMemo } from 'react';
|
||||
import React, { useRef, useCallback, useMemo } from 'react';
|
||||
import classnames from 'classnames';
|
||||
import { useSelector, useDispatch } from 'react-redux';
|
||||
import { find, get } from 'lodash';
|
||||
@@ -53,7 +53,6 @@ const HttpRequestPane = ({ item, collection }) => {
|
||||
const activeTabUid = useSelector((state) => state.tabs.activeTabUid);
|
||||
|
||||
const rightContentRef = useRef(null);
|
||||
const initialAutoSelectDone = useRef(false);
|
||||
|
||||
const focusedTab = find(tabs, (t) => t.uid === activeTabUid);
|
||||
const requestPaneTab = focusedTab?.requestPaneTab;
|
||||
@@ -117,13 +116,6 @@ const HttpRequestPane = ({ item, collection }) => {
|
||||
return Component ? <Component item={item} collection={collection} /> : <div className="mt-4">404 | Not found</div>;
|
||||
}, [requestPaneTab, item, collection]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!initialAutoSelectDone.current && activeCounts.params === 0 && body.mode !== 'none') {
|
||||
selectTab('body');
|
||||
}
|
||||
initialAutoSelectDone.current = true;
|
||||
}, [activeCounts.params, body.mode, selectTab]);
|
||||
|
||||
if (!activeTabUid || !focusedTab?.uid || !requestPaneTab) {
|
||||
return <div className="pb-4 px-4">An error occurred!</div>;
|
||||
}
|
||||
|
||||
@@ -1060,6 +1060,16 @@ export const hasExampleChanges = (_item, exampleUid) => {
|
||||
|
||||
export const getDefaultRequestPaneTab = (item) => {
|
||||
if (item.type === 'http-request') {
|
||||
// If no params are enabled and body mode is set, default to 'body' tab
|
||||
// This provides better UX for POST/PUT requests with a body
|
||||
const request = item.draft?.request || item.request;
|
||||
const params = request?.params || [];
|
||||
const bodyMode = request?.body?.mode;
|
||||
const hasEnabledParams = params.some((p) => p.enabled);
|
||||
|
||||
if (!hasEnabledParams && bodyMode && bodyMode !== 'none') {
|
||||
return 'body';
|
||||
}
|
||||
return 'params';
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user