From 1748741d7f157f08dbe549929907fa1b9273e37e Mon Sep 17 00:00:00 2001 From: Abhishek S Lal Date: Thu, 5 Mar 2026 21:48:31 +0530 Subject: [PATCH] refactor: simplify OpenAPISyncTab and related components by removing unused state and styles (#7378) - Removed the `viewMode` state and associated logic from OpenAPISyncTab and useSyncFlow, streamlining the component's functionality. - Eliminated the `review-active` class from StyledWrapper, cleaning up the styling. - Updated Redux state management by removing `viewMode` from the tab UI state structure, reducing complexity. --- .../OpenAPISyncTab/StyledWrapper.js | 4 ---- .../OpenAPISyncTab/hooks/useSyncFlow.js | 24 ++++--------------- .../src/components/OpenAPISyncTab/index.js | 8 ++----- .../ReduxStore/slices/openapi-sync.js | 2 +- 4 files changed, 7 insertions(+), 31 deletions(-) diff --git a/packages/bruno-app/src/components/OpenAPISyncTab/StyledWrapper.js b/packages/bruno-app/src/components/OpenAPISyncTab/StyledWrapper.js index 3c73310fe..527743bfa 100644 --- a/packages/bruno-app/src/components/OpenAPISyncTab/StyledWrapper.js +++ b/packages/bruno-app/src/components/OpenAPISyncTab/StyledWrapper.js @@ -2166,10 +2166,6 @@ const StyledWrapper = styled.div` } } - &.review-active { - padding-bottom: 0; - } - /* URL/File mode toggle in setup form and settings modal */ .setup-mode-toggle { display: inline-flex; diff --git a/packages/bruno-app/src/components/OpenAPISyncTab/hooks/useSyncFlow.js b/packages/bruno-app/src/components/OpenAPISyncTab/hooks/useSyncFlow.js index 425c0ff29..dac2c893b 100644 --- a/packages/bruno-app/src/components/OpenAPISyncTab/hooks/useSyncFlow.js +++ b/packages/bruno-app/src/components/OpenAPISyncTab/hooks/useSyncFlow.js @@ -1,7 +1,7 @@ import { useState, useMemo } from 'react'; -import { useDispatch, useSelector } from 'react-redux'; +import { useDispatch } from 'react-redux'; import toast from 'react-hot-toast'; -import { clearCollectionUpdate, setTabUiState, selectTabUiState } from 'providers/ReduxStore/slices/openapi-sync'; +import { clearCollectionUpdate } from 'providers/ReduxStore/slices/openapi-sync'; import { formatIpcError } from 'utils/common/error'; const useSyncFlow = ({ @@ -9,9 +9,6 @@ const useSyncFlow = ({ sourceUrl, setError, checkForUpdates }) => { const dispatch = useDispatch(); - const tabUiState = useSelector(selectTabUiState(collection.uid)); - const viewMode = tabUiState.viewMode || 'tabs'; - const setViewMode = (mode) => dispatch(setTabUiState({ collectionUid: collection.uid, viewMode: mode })); const [pendingSyncMode, setPendingSyncMode] = useState(null); const [showConfirmModal, setShowConfirmModal] = useState(false); @@ -80,7 +77,6 @@ const useSyncFlow = ({ endpointDecisions: decisions }); - setViewMode('tabs'); setPendingSyncMode(null); dispatch(clearCollectionUpdate({ collectionUid: collection.uid })); @@ -100,17 +96,6 @@ const useSyncFlow = ({ } }; - // View/modal transition handlers - const enterReviewMode = () => { - setPendingSyncMode('sync'); - setViewMode('review'); - }; - - const handleGoBackFromReview = () => { - setViewMode('tabs'); - setPendingSyncMode(null); - }; - const handleSyncNow = () => { if (!remoteDrift) return; setPendingSyncMode('sync'); @@ -119,7 +104,6 @@ const useSyncFlow = ({ const handleApplySync = (selections) => { const mode = pendingSyncMode || 'sync'; - setViewMode('tabs'); setPendingSyncMode(null); performSync(selections, mode); }; @@ -154,8 +138,8 @@ const useSyncFlow = ({ }, [remoteDrift]); return { - viewMode, isSyncing, showConfirmModal, confirmGroups, - enterReviewMode, handleSyncNow, handleGoBackFromReview, + isSyncing, showConfirmModal, confirmGroups, + handleSyncNow, handleApplySync, cancelConfirmModal, handleConfirmModalSync }; }; diff --git a/packages/bruno-app/src/components/OpenAPISyncTab/index.js b/packages/bruno-app/src/components/OpenAPISyncTab/index.js index 21a2d7e6c..06b1c5436 100644 --- a/packages/bruno-app/src/components/OpenAPISyncTab/index.js +++ b/packages/bruno-app/src/components/OpenAPISyncTab/index.js @@ -1,9 +1,8 @@ import { useState, useMemo } from 'react'; -import { useDispatch, useSelector } from 'react-redux'; +import { useDispatch } from 'react-redux'; import { v4 as uuid } from 'uuid'; import { addTab } from 'providers/ReduxStore/slices/tabs'; import { IconLoader2, IconClock } from '@tabler/icons'; -import { selectTabUiState } from 'providers/ReduxStore/slices/openapi-sync'; import ResponsiveTabs from 'ui/ResponsiveTabs'; import StyledWrapper from './StyledWrapper'; import OpenAPISyncHeader from './OpenAPISyncHeader'; @@ -38,9 +37,6 @@ const OpenAPISyncTab = ({ collection }) => { const openApiSyncConfig = collection?.brunoConfig?.openapi?.[0]; const isConfigured = !!openApiSyncConfig?.sourceUrl; - const tabUiState = useSelector(selectTabUiState(collection.uid)); - const viewMode = tabUiState.viewMode || 'tabs'; - const handleViewSpec = () => { dispatch(addTab({ uid: uuid(), @@ -84,7 +80,7 @@ const OpenAPISyncTab = ({ collection }) => { ], [collectionChangesCount, specUpdatesCount]); return ( - +
{/* Setup form when not configured */} diff --git a/packages/bruno-app/src/providers/ReduxStore/slices/openapi-sync.js b/packages/bruno-app/src/providers/ReduxStore/slices/openapi-sync.js index f6a414d97..d10cf54f8 100644 --- a/packages/bruno-app/src/providers/ReduxStore/slices/openapi-sync.js +++ b/packages/bruno-app/src/providers/ReduxStore/slices/openapi-sync.js @@ -8,7 +8,7 @@ const initialState = { pollingEnabled: true, // Last poll timestamp lastPollTime: null, - // Map of collectionUid -> { activeTab, viewMode, expandedSections, expandedRows } + // Map of collectionUid -> { activeTab, expandedSections, expandedRows } tabUiState: {} };