From 397ccbb425c73188fea6c155eed4454d2d7e5a95 Mon Sep 17 00:00:00 2001 From: naman-bruno Date: Fri, 19 Dec 2025 00:00:12 +0530 Subject: [PATCH] fix: export/import icons and styles (#6462) --- .../components/AppTitleBar/StyledWrapper.js | 6 + .../src/components/AppTitleBar/index.js | 4 +- .../src/components/ShareCollection/index.js | 4 +- .../Sections/CollectionsSection/index.js | 16 +-- .../Sidebar/WorkspaceSelector/index.js | 128 ------------------ .../WorkspaceHome/WorkspaceOverview/index.js | 4 +- .../src/components/WorkspaceHome/index.js | 4 +- 7 files changed, 22 insertions(+), 144 deletions(-) delete mode 100644 packages/bruno-app/src/components/Sidebar/WorkspaceSelector/index.js diff --git a/packages/bruno-app/src/components/AppTitleBar/StyledWrapper.js b/packages/bruno-app/src/components/AppTitleBar/StyledWrapper.js index bfef446ec..5c15bf78b 100644 --- a/packages/bruno-app/src/components/AppTitleBar/StyledWrapper.js +++ b/packages/bruno-app/src/components/AppTitleBar/StyledWrapper.js @@ -237,6 +237,12 @@ const Wrapper = styled.div` color: white; } } + + .dropdown-item-active { + font-weight: 400 !important; + background-color: ${(props) => props.theme.dropdown.selectedBg} !important; + color: ${(props) => props.theme.dropdown.selectedColor} !important; + } `; export default Wrapper; diff --git a/packages/bruno-app/src/components/AppTitleBar/index.js b/packages/bruno-app/src/components/AppTitleBar/index.js index 9c66c4937..104bdf851 100644 --- a/packages/bruno-app/src/components/AppTitleBar/index.js +++ b/packages/bruno-app/src/components/AppTitleBar/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import { IconCheck, IconChevronDown, IconFolder, IconHome, IconPin, IconPinned, IconPlus, IconUpload, IconSettings, IconMinus, IconSquare, IconX, IconCopy } from '@tabler/icons'; +import { IconCheck, IconChevronDown, IconFolder, IconHome, IconPin, IconPinned, IconPlus, IconDownload, IconSettings, IconMinus, IconSquare, IconX, IconCopy } from '@tabler/icons'; import { forwardRef, useCallback, useEffect, useMemo, useState } from 'react'; import toast from 'react-hot-toast'; import { useDispatch, useSelector } from 'react-redux'; @@ -221,7 +221,7 @@ const AppTitleBar = () => { }, { id: 'import-workspace', - leftSection: IconUpload, + leftSection: IconDownload, label: 'Import workspace', onClick: handleImportWorkspace }, diff --git a/packages/bruno-app/src/components/ShareCollection/index.js b/packages/bruno-app/src/components/ShareCollection/index.js index f5bab25e7..d1e8e11b9 100644 --- a/packages/bruno-app/src/components/ShareCollection/index.js +++ b/packages/bruno-app/src/components/ShareCollection/index.js @@ -1,6 +1,6 @@ import React, { useMemo } from 'react'; import Modal from 'components/Modal'; -import { IconDownload, IconLoader2, IconAlertTriangle } from '@tabler/icons'; +import { IconUpload, IconLoader2, IconAlertTriangle } from '@tabler/icons'; import StyledWrapper from './StyledWrapper'; import Bruno from 'components/Bruno'; import exportBrunoCollection from 'utils/collections/export'; @@ -100,7 +100,7 @@ const ShareCollection = ({ onClose, collectionUid }) => { {isCollectionLoading ? ( ) : ( - + )}
diff --git a/packages/bruno-app/src/components/Sidebar/Sections/CollectionsSection/index.js b/packages/bruno-app/src/components/Sidebar/Sections/CollectionsSection/index.js index 472b8cff1..029afe83b 100644 --- a/packages/bruno-app/src/components/Sidebar/Sections/CollectionsSection/index.js +++ b/packages/bruno-app/src/components/Sidebar/Sections/CollectionsSection/index.js @@ -142,14 +142,6 @@ const CollectionsSection = () => { setCreateCollectionModalOpen(true); } }, - { - id: 'import', - leftSection: IconDownload, - label: 'Import collection', - onClick: () => { - setImportCollectionModalOpen(true); - } - }, { id: 'open', leftSection: IconFolder, @@ -157,6 +149,14 @@ const CollectionsSection = () => { onClick: () => { handleOpenCollection(); } + }, + { + id: 'import', + leftSection: IconDownload, + label: 'Import collection', + onClick: () => { + setImportCollectionModalOpen(true); + } } ]; diff --git a/packages/bruno-app/src/components/Sidebar/WorkspaceSelector/index.js b/packages/bruno-app/src/components/Sidebar/WorkspaceSelector/index.js deleted file mode 100644 index aeaed8079..000000000 --- a/packages/bruno-app/src/components/Sidebar/WorkspaceSelector/index.js +++ /dev/null @@ -1,128 +0,0 @@ -import { useState, forwardRef, useRef, useMemo, useCallback } from 'react'; -import { useDispatch, useSelector } from 'react-redux'; -import toast from 'react-hot-toast'; -import { IconPlus, IconChevronDown, IconCheck, IconFolder, IconPin, IconPinned } from '@tabler/icons'; - -import { savePreferences } from 'providers/ReduxStore/slices/app'; -import { switchWorkspace, openWorkspaceDialog } from 'providers/ReduxStore/slices/workspaces/actions'; -import { sortWorkspaces, toggleWorkspacePin } from 'utils/workspaces'; - -import Dropdown from 'components/Dropdown'; -import CreateWorkspace from 'components/WorkspaceSidebar/CreateWorkspace'; -import { toTitleCase } from 'utils/common/index'; - -const WorkspaceSelector = () => { - const dispatch = useDispatch(); - - const { workspaces, activeWorkspaceUid } = useSelector((state) => state.workspaces); - const preferences = useSelector((state) => state.app.preferences); - const activeWorkspace = workspaces.find((w) => w.uid === activeWorkspaceUid); - - const sortedWorkspaces = useMemo(() => { - return sortWorkspaces(workspaces, preferences); - }, [workspaces, preferences]); - - const [showDropdown, setShowDropdown] = useState(false); - const [createWorkspaceModalOpen, setCreateWorkspaceModalOpen] = useState(false); - - const dropdownTippyRef = useRef(); - const onDropdownCreate = (ref) => (dropdownTippyRef.current = ref); - - const WorkspaceName = forwardRef((props, ref) => { - return ( -
setShowDropdown(!showDropdown)}> - {toTitleCase(activeWorkspace?.name) || 'Default Workspace'} - -
- ); - }); - - const handleWorkspaceSwitch = (workspaceUid) => { - dispatch(switchWorkspace(workspaceUid)); - setShowDropdown(false); - toast.success(`Switched to ${workspaces.find((w) => w.uid === workspaceUid)?.name}`); - }; - - const handleOpenWorkspace = async () => { - setShowDropdown(false); - try { - await dispatch(openWorkspaceDialog()); - toast.success('Workspace opened successfully'); - } catch (error) { - toast.error(error.message || 'Failed to open workspace'); - } - }; - - const handleCreateWorkspace = () => { - setShowDropdown(false); - setCreateWorkspaceModalOpen(true); - }; - - const handlePinWorkspace = useCallback((workspaceUid, e) => { - e.preventDefault(); - e.stopPropagation(); - const newPreferences = toggleWorkspacePin(workspaceUid, preferences); - dispatch(savePreferences(newPreferences)); - }, [dispatch, preferences]); - - return ( - <> - {createWorkspaceModalOpen && ( - setCreateWorkspaceModalOpen(false)} /> - )} - - } - placement="bottom-start" - style="new" - visible={showDropdown} - onClickOutside={() => setShowDropdown(false)} - > - {sortedWorkspaces.map((workspace) => { - const isActive = workspace.uid === activeWorkspaceUid; - const isPinned = preferences?.workspaces?.pinnedWorkspaceUids?.includes(workspace.uid); - - return ( -
handleWorkspaceSwitch(workspace.uid)} - > - {toTitleCase(workspace.name)} -
- {workspace.type !== 'default' && ( - - )} - {isActive && } -
-
- ); - })} - -
Workspaces
- -
- - Create workspace -
-
- - Open workspace -
-
- - ); -}; - -export default WorkspaceSelector; diff --git a/packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/index.js b/packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/index.js index 4b1cea5cf..811819dcb 100644 --- a/packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/index.js +++ b/packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/index.js @@ -1,6 +1,6 @@ import React, { useState } from 'react'; import { useSelector, useDispatch } from 'react-redux'; -import { IconPlus, IconFolder, IconFileImport } from '@tabler/icons'; +import { IconPlus, IconFolder, IconDownload } from '@tabler/icons'; import { importCollection, openCollection } from 'providers/ReduxStore/slices/collections/actions'; import toast from 'react-hot-toast'; import CreateCollection from 'components/Sidebar/CreateCollection'; @@ -116,7 +116,7 @@ const WorkspaceOverview = ({ workspace }) => { Open Collection
diff --git a/packages/bruno-app/src/components/WorkspaceHome/index.js b/packages/bruno-app/src/components/WorkspaceHome/index.js index 08c2ec0fa..690f376a5 100644 --- a/packages/bruno-app/src/components/WorkspaceHome/index.js +++ b/packages/bruno-app/src/components/WorkspaceHome/index.js @@ -1,6 +1,6 @@ import React, { useEffect, useState, useRef } from 'react'; import { useSelector, useDispatch } from 'react-redux'; -import { IconCategory, IconDots, IconEdit, IconX, IconCheck, IconFolder, IconDownload } from '@tabler/icons'; +import { IconCategory, IconDots, IconEdit, IconX, IconCheck, IconFolder, IconUpload } from '@tabler/icons'; import { renameWorkspaceAction, exportWorkspaceAction } from 'providers/ReduxStore/slices/workspaces/actions'; import { showInFolder } from 'providers/ReduxStore/slices/collections/actions'; import toast from 'react-hot-toast'; @@ -228,7 +228,7 @@ const WorkspaceHome = () => { Show in Folder
- + Export