Improve delete collection in workspace overview#6587
Improve delete collection in workspace overview#6587bijin-bruno merged 3 commits intousebruno:mainfrom
Conversation
WalkthroughThis PR extracts inline collection-removal UI into dedicated modal components (RemoveCollection and DeleteCollection), adds a separate permanent-delete flow, updates dropdown actions, and threads a deleteFiles option through Redux IPC to the Electron handler. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant UI as Bruno App (React)
participant Store as Redux
participant IPC as Renderer IPC
participant Main as Electron Main
participant FS as Filesystem
User->>UI: Click "Delete" on collection
UI->>UI: Open DeleteCollection modal (requires typing "delete")
User->>UI: Confirm (typed "delete")
UI->>Store: dispatch removeCollectionFromWorkspaceAction(uid, path, {deleteFiles: true})
Store->>IPC: invoke renderer:remove-collection-from-workspace(uid, workspacePath, collectionPath, {deleteFiles:true})
IPC->>Main: handle removal request
Main->>Main: remove collection from workspace config
alt deleteFiles == true and path exists
Main->>FS: delete collection file(s)
FS-->>Main: deletion result
end
Main-->>IPC: response (removedCollection, updatedConfig)
IPC-->>Store: resolve action result
Store-->>UI: update state
UI-->>User: show success toast and close modal
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/StyledWrapper.jspackages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.js
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{js,jsx,ts,tsx}
📄 CodeRabbit inference engine (CODING_STANDARDS.md)
**/*.{js,jsx,ts,tsx}: Use 2 spaces for indentation. No tabs, just spaces
Stick to single quotes for strings. For JSX/TSX attributes, use double quotes (e.g., )
Always add semicolons at the end of statements
No trailing commas
Always use parentheses around parameters in arrow functions, even for single params
For multiline constructs, put opening braces on the same line, and ensure consistency. Minimum 2 elements for multiline
No newlines inside function parentheses
Space before and after the arrow in arrow functions.() => {}is good
No space between function name and parentheses.func()notfunc ()
Semicolons go at the end of the line, not on a new line
Names for functions need to be concise and descriptive
Add in JSDoc comments to add more details to the abstractions if needed
Add in meaningful comments instead of obvious ones where complex code flow is explained properly
Files:
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/StyledWrapper.jspackages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.js
🧠 Learnings (4)
📚 Learning: 2025-12-05T20:31:33.005Z
Learnt from: CR
Repo: usebruno/bruno PR: 0
File: CODING_STANDARDS.md:0-0
Timestamp: 2025-12-05T20:31:33.005Z
Learning: Applies to **/*.{jsx,tsx} : Styled Component CSS might also change layout but Tailwind classes shouldn't define colors
Applied to files:
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/StyledWrapper.js
📚 Learning: 2025-12-05T20:31:33.005Z
Learnt from: CR
Repo: usebruno/bruno PR: 0
File: CODING_STANDARDS.md:0-0
Timestamp: 2025-12-05T20:31:33.005Z
Learning: Applies to **/*.{jsx,tsx} : Styled Components are used as wrappers to define both self and children components style; Tailwind classes are used specifically for layout based styles
Applied to files:
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/StyledWrapper.js
📚 Learning: 2025-12-05T20:31:33.005Z
Learnt from: CR
Repo: usebruno/bruno PR: 0
File: CODING_STANDARDS.md:0-0
Timestamp: 2025-12-05T20:31:33.005Z
Learning: Applies to **/*.{jsx,tsx} : Use styled component's theme prop to manage CSS colors and not CSS variables when in the context of a styled component or any React component using the styled component
Applied to files:
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/StyledWrapper.js
📚 Learning: 2025-12-17T21:41:24.730Z
Learnt from: naman-bruno
Repo: usebruno/bruno PR: 6407
File: packages/bruno-app/src/components/Environments/ConfirmCloseEnvironment/index.js:5-41
Timestamp: 2025-12-17T21:41:24.730Z
Learning: Do not suggest PropTypes validation for React components in the Bruno codebase. The project does not use PropTypes, so reviews should avoid proposing PropTypes and rely on the existing typing/validation approach (e.g., TypeScript or alternative runtime checks) if applicable. This guideline applies broadly to all JavaScript/JSX components in the repo.
Applied to files:
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/StyledWrapper.jspackages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.js
🧬 Code graph analysis (1)
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.js (1)
packages/bruno-app/src/components/Modal/index.js (1)
Modal(62-171)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
- GitHub Check: SSL Tests - macOS
- GitHub Check: SSL Tests - Linux
- GitHub Check: SSL Tests - Windows
- GitHub Check: CLI Tests
- GitHub Check: Unit Tests
- GitHub Check: Playwright E2E Tests
🔇 Additional comments (8)
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/StyledWrapper.js (1)
2-2: LGTM! Modal styling enhancements look solid.The new
rgbaimport and modal-related CSS classes (.modal-description,.modal-warning,.delete-confirmation) properly support the enhanced delete confirmation UI. All styles correctly use theme props for colors and follow the project's styled-components patterns.Also applies to: 102-161
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.js (7)
21-21: Good addition of confirmation state.The
deleteConfirmTextstate appropriately tracks user input for the delete confirmation flow.
98-101: Clean helper for operation type determination.The
isDeleteOperationlogic correctly identifies hard-delete scenarios (internal, non-git-backed collections).
172-172: Well-implemented operation flow with proper cleanup.The dynamic toast messaging based on operation type provides clear user feedback, and resetting
deleteConfirmTextensures clean state management.Also applies to: 175-182
189-192: Good cleanup in cancel handler.Properly resets both modal and confirmation state.
203-209: Excellent modal configuration for different operation types.The dynamic title, confirm button state, and danger color for delete operations provide clear visual distinction and prevent accidental deletions.
211-235: Strong UX for delete confirmation flow.The enhanced modal content with styled descriptions, warnings, and mandatory confirmation input for delete operations significantly improves safety for destructive actions. The
autoFocusand clear placeholder provide good user guidance.
325-325: Good label consistency.The dropdown label correctly reflects the operation type, maintaining clarity throughout the user journey.
| const collectionInfo = getCollectionWorkspaceInfo(collectionToRemove); | ||
| const isDelete = collectionInfo.isInternal && !collectionInfo.isGitBacked; | ||
| const isDelete = isDeleteOperation(collectionToRemove); | ||
| const isConfirmed = !isDelete || deleteConfirmText.toLowerCase() === 'delete'; |
There was a problem hiding this comment.
Trim whitespace in confirmation validation.
The confirmation check doesn't handle leading/trailing whitespace. Users typing "delete " (with space) will fail validation.
🔎 Suggested fix
- const isConfirmed = !isDelete || deleteConfirmText.toLowerCase() === 'delete';
+ const isConfirmed = !isDelete || deleteConfirmText.trim().toLowerCase() === 'delete';📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| const isConfirmed = !isDelete || deleteConfirmText.toLowerCase() === 'delete'; | |
| const isConfirmed = !isDelete || deleteConfirmText.trim().toLowerCase() === 'delete'; |
🤖 Prompt for AI Agents
In
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.js
around line 198, the confirmation check compares deleteConfirmText directly to
'delete' and fails on inputs with leading/trailing whitespace; fix by trimming
deleteConfirmText (e.g., use deleteConfirmText.trim().toLowerCase()) before the
equality check so inputs like " delete " succeed, keeping the existing !isDelete
short-circuit logic.
f98589a to
7b40d54
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
packages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/StyledWrapper.jspackages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/index.jspackages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.js
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{js,jsx,ts,tsx}
📄 CodeRabbit inference engine (CODING_STANDARDS.md)
**/*.{js,jsx,ts,tsx}: Use 2 spaces for indentation. No tabs, just spaces
Stick to single quotes for strings. For JSX/TSX attributes, use double quotes (e.g., )
Always add semicolons at the end of statements
No trailing commas
Always use parentheses around parameters in arrow functions, even for single params
For multiline constructs, put opening braces on the same line, and ensure consistency. Minimum 2 elements for multiline
No newlines inside function parentheses
Space before and after the arrow in arrow functions.() => {}is good
No space between function name and parentheses.func()notfunc ()
Semicolons go at the end of the line, not on a new line
Names for functions need to be concise and descriptive
Add in JSDoc comments to add more details to the abstractions if needed
Add in meaningful comments instead of obvious ones where complex code flow is explained properly
Files:
packages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/StyledWrapper.jspackages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.jspackages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/index.js
🧠 Learnings (5)
📚 Learning: 2025-12-05T20:31:33.005Z
Learnt from: CR
Repo: usebruno/bruno PR: 0
File: CODING_STANDARDS.md:0-0
Timestamp: 2025-12-05T20:31:33.005Z
Learning: Applies to **/*.{jsx,tsx} : Styled Components are used as wrappers to define both self and children components style; Tailwind classes are used specifically for layout based styles
Applied to files:
packages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/StyledWrapper.js
📚 Learning: 2025-12-05T20:31:33.005Z
Learnt from: CR
Repo: usebruno/bruno PR: 0
File: CODING_STANDARDS.md:0-0
Timestamp: 2025-12-05T20:31:33.005Z
Learning: Applies to **/*.{jsx,tsx} : Styled Component CSS might also change layout but Tailwind classes shouldn't define colors
Applied to files:
packages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/StyledWrapper.js
📚 Learning: 2025-12-05T20:31:33.005Z
Learnt from: CR
Repo: usebruno/bruno PR: 0
File: CODING_STANDARDS.md:0-0
Timestamp: 2025-12-05T20:31:33.005Z
Learning: Applies to **/*.{jsx,tsx} : Use styled component's theme prop to manage CSS colors and not CSS variables when in the context of a styled component or any React component using the styled component
Applied to files:
packages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/StyledWrapper.js
📚 Learning: 2025-12-17T21:41:24.730Z
Learnt from: naman-bruno
Repo: usebruno/bruno PR: 6407
File: packages/bruno-app/src/components/Environments/ConfirmCloseEnvironment/index.js:5-41
Timestamp: 2025-12-17T21:41:24.730Z
Learning: Do not suggest PropTypes validation for React components in the Bruno codebase. The project does not use PropTypes, so reviews should avoid proposing PropTypes and rely on the existing typing/validation approach (e.g., TypeScript or alternative runtime checks) if applicable. This guideline applies broadly to all JavaScript/JSX components in the repo.
Applied to files:
packages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/StyledWrapper.jspackages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.jspackages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/index.js
📚 Learning: 2025-12-16T07:16:23.647Z
Learnt from: sanish-bruno
Repo: usebruno/bruno PR: 6090
File: tests/scripting/hooks/init-user-data/ui-state-snapshot.json:1-8
Timestamp: 2025-12-16T07:16:23.647Z
Learning: For e2e tests in the bruno repository: Collections that are shared between CLI and UI tests (comprehensive test suites testing core functionality) should be placed in `packages/bruno-tests/` to avoid duplication. The `tests/**/fixtures/collection` pattern should be used for test-specific collections that test particular UI behaviors or are specific to a single test file.
Applied to files:
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.jspackages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/index.js
🧬 Code graph analysis (1)
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.js (3)
packages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/index.js (3)
collection(13-13)DeleteCollection(10-86)workspace(14-14)packages/bruno-app/src/components/Sidebar/Collections/Collection/CollectionItem/index.js (1)
collection(67-67)packages/bruno-app/src/components/Sidebar/Collections/Collection/RemoveCollection/index.js (1)
RemoveCollection(12-76)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
- GitHub Check: SSL Tests - Windows
- GitHub Check: SSL Tests - Linux
- GitHub Check: SSL Tests - macOS
- GitHub Check: CLI Tests
- GitHub Check: Unit Tests
- GitHub Check: Playwright E2E Tests
🔇 Additional comments (7)
packages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/StyledWrapper.js (1)
1-83: LGTM! Well-structured styles.The styled-components wrapper is clean and follows project conventions. Theme props are used correctly for colors, and the CSS is well-organized.
packages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/index.js (1)
18-85: LGTM! Solid error handling and UX.The confirmation flow is well-implemented with proper guards, error handling, and user feedback via toasts. The modal UI is clear and accessible.
packages/bruno-app/src/components/WorkspaceHome/WorkspaceOverview/CollectionsList/index.js (5)
3-3: LGTM! Clean modal integration.The new imports and state management follow the existing patterns for other modals (rename, share).
Also applies to: 9-10, 21-24
129-137: LGTM! Proper guards in place.The handler correctly prevents removing unloaded collections and follows the established pattern.
139-147: LGTM! Consistent with remove handler.The delete handler mirrors the remove pattern with appropriate guards and modal state management.
161-180: LGTM! Modal components properly integrated.Both modals are conditionally rendered with correct props and state cleanup in onClose handlers.
245-264: LGTM! Clear separation of remove vs. delete.The dropdown items effectively distinguish between "remove from workspace" (IconX) and "permanently delete" (IconTrash), improving user clarity.
packages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/index.js
Show resolved
Hide resolved
|
@naman-bruno is attempting to deploy a commit to the Bruno Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
packages/bruno-app/src/components/Modal/index.js (1)
114-119: Removedocumentfrom dependency array.Adding
confirmDisabledis correct. However,documentis a global object that never changes and shouldn't be in the dependency array—it's a no-op that adds noise.🔎 Proposed fix
useEffect(() => { document.addEventListener('keydown', handleKeydown, false); return () => { document.removeEventListener('keydown', handleKeydown); }; - }, [disableEscapeKey, document, handleConfirm, confirmDisabled]); + }, [disableEscapeKey, handleConfirm, confirmDisabled]);
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
packages/bruno-app/src/components/Modal/index.jspackages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/index.jspackages/bruno-app/src/providers/ReduxStore/slices/workspaces/actions.jspackages/bruno-electron/src/ipc/workspace.jspackages/bruno-electron/src/utils/workspace-config.js
💤 Files with no reviewable changes (1)
- packages/bruno-electron/src/utils/workspace-config.js
🚧 Files skipped from review as they are similar to previous changes (1)
- packages/bruno-app/src/components/Sidebar/Collections/Collection/DeleteCollection/index.js
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{js,jsx,ts,tsx}
📄 CodeRabbit inference engine (CODING_STANDARDS.md)
**/*.{js,jsx,ts,tsx}: Use 2 spaces for indentation. No tabs, just spaces
Stick to single quotes for strings. For JSX/TSX attributes, use double quotes (e.g., )
Always add semicolons at the end of statements
No trailing commas
Always use parentheses around parameters in arrow functions, even for single params
For multiline constructs, put opening braces on the same line, and ensure consistency. Minimum 2 elements for multiline
No newlines inside function parentheses
Space before and after the arrow in arrow functions.() => {}is good
No space between function name and parentheses.func()notfunc ()
Semicolons go at the end of the line, not on a new line
Names for functions need to be concise and descriptive
Add in JSDoc comments to add more details to the abstractions if needed
Add in meaningful comments instead of obvious ones where complex code flow is explained properly
Files:
packages/bruno-app/src/components/Modal/index.jspackages/bruno-electron/src/ipc/workspace.jspackages/bruno-app/src/providers/ReduxStore/slices/workspaces/actions.js
🧠 Learnings (1)
📚 Learning: 2025-12-17T21:41:24.730Z
Learnt from: naman-bruno
Repo: usebruno/bruno PR: 6407
File: packages/bruno-app/src/components/Environments/ConfirmCloseEnvironment/index.js:5-41
Timestamp: 2025-12-17T21:41:24.730Z
Learning: Do not suggest PropTypes validation for React components in the Bruno codebase. The project does not use PropTypes, so reviews should avoid proposing PropTypes and rely on the existing typing/validation approach (e.g., TypeScript or alternative runtime checks) if applicable. This guideline applies broadly to all JavaScript/JSX components in the repo.
Applied to files:
packages/bruno-app/src/components/Modal/index.jspackages/bruno-electron/src/ipc/workspace.jspackages/bruno-app/src/providers/ReduxStore/slices/workspaces/actions.js
🧬 Code graph analysis (1)
packages/bruno-electron/src/ipc/workspace.js (1)
packages/bruno-electron/src/utils/workspace-config.js (1)
removeCollectionFromWorkspace(356-389)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
- GitHub Check: SSL Tests - macOS
- GitHub Check: SSL Tests - Linux
- GitHub Check: Playwright E2E Tests
- GitHub Check: SSL Tests - Windows
- GitHub Check: Unit Tests
- GitHub Check: CLI Tests
🔇 Additional comments (3)
packages/bruno-app/src/components/Modal/index.js (1)
98-104: LGTM – ENTER key now respects disabled state.Correctly prevents keyboard confirmation when
confirmDisabledis true. This ensures parity between keyboard and button behavior.packages/bruno-app/src/providers/ReduxStore/slices/workspaces/actions.js (1)
125-148: LGTM – Clean extension of the action signature.The
optionsparameter with default makes this backward compatible. ThedeleteFilesflag is properly destructured and forwarded to the IPC layer.packages/bruno-electron/src/ipc/workspace.js (1)
537-555: LGTM – Proper gating for file deletion.The triple condition (
deleteFiles && result.removedCollection && fs.existsSync) is a solid safeguard. The IPC contract aligns with the Redux action.One consideration: if
fsExtra.removefails (e.g., permission denied), the entire operation throws and the collection stays removed from config but files remain. Depending on UX intent, you may want to catch and log the deletion error while still returning success for the config removal.
* fix: use themes within protobuf section (#6575) * fix: use themes within protobuf section * chore: fix font weight for protobuf settings --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * fix: radios buttons to use primary color (#6576) * fix: cookie modal theme (#6580) * fix: cookie modal theme * update toggle switch to use primary color * style: enhance theme dropdown and security settings with improved styles and active indicators (#6582) * style: enhance CodeMirror dropdown styles with theme integration (#6577) * style: enhance CodeMirror dropdown styles with theme integration for improved consistency * style: refine dropdown and CodeMirror hint styles for improved consistency and usability * style: clean up scrollbar and CodeMirror hint styles for improved readability * remove max height for keybinding table (#6586) * fix: Add New Request CTA alignment in tabs (#6584) * fix: Add New Request CTA alignment in tabs - Moved the '+' icon before the chevron to maintain alignment once chevrons appear - Added padding to the '+' icon for better spacing. * refactor: streamline New Request button rendering in RequestTabs component - Simplified the rendering logic for the New Request button by removing unnecessary conditional wrappers. - Ensured the button remains functional and maintains its styling within the tab layout. * chore: update delete confirmation modals to use danger button color (#6589) * refactor: remove size prop from Button components for consistency across modals and improve styling * style: update confirm button colors in modal components for consistency * fix: oauth2 callback url field placeholder text update (#6588) * Fix auth panel UI updates (#6590) * style: update padding and font size in OAuth2 and Table components for improved consistency * style: update font styles in OAuth2 components for improved readability * fix: add missing semicolon in StyledWrapper.js for consistent styling * fix: standardize table border colors and improve table styling (#6597) * style: update OAuth2 section labels for improved consistency and readability (#6598) * fix: prefrence modal width (#6595) * fix: theme within grpc timeline (#6581) * fix: theme within grpc timeline * fix: use font from the theme * remove y padding to make timeline item more compact * fix: font * fix: padding * fix: use fira code * fix: icon spacing * add border to the method search * show bg for message section within request * fix: collection already opened in other workspace (#6574) * fix: collection already opened in other workspace * fix * fixes * Merge pull request #6583 from naman-bruno/add/collection-docs add: collection-docs * add: beta tag for opencollection & fix create collection location behaviour (#6594) * add: beta tag for opencollection * fixes * fix * feat: improved dark mode color (#6616) * fix: resolve request pane tooltip visibility issue (#6615) * Feat/update file picker (#6614) * styling: file-picker editor component * use filepicker component within filebody and response example filebody * edit example to use button components * fix: hide delete, disable checkbox in preview mode * make label italic * chore: change example cta buttons to filled style --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * fix: folder docs save button visibility issue (#6617) * refactor: improve theme handling in ThemeProvider for better responsiveness to system preferences (#6606) * refactor: improve theme handling in ThemeProvider for better responsiveness to system preferences - Introduced helper functions to determine effective theme and apply it to the root element. - Updated theme application logic to respond to system theme changes more efficiently. - Simplified theme computation to avoid race conditions by directly using storedTheme. * fix: update displayedTheme initialization in ThemeProvider to use storedTheme for consistency * fix: use theme styling within timeline (#6604) * fix: use theme styling within timeline * fix: remove inline styling and use css classes * fix: network logs within dev tools * compact timeline for grpc * refactor: standardize CSS class naming in StyledWrapper components for better readability * remove styling configuration from Network component * fix: update colors * update colors * fix: color * feat: improve RunnerResults filter bar to use theme system (#6613) * feat: integrate theme support in RunnerResults component for improved styling * refactor: simplify RunnerResults component and enhance filter button styling * style: adjust padding in StyledWrapper and remove aria-pressed from FilterButton * add: global env and workspace flag (#6534) * add: global env and workspace flag * rm: await * update: option name * fix * fix * fix: invalid collection in workspace (#6612) * fix: update Notifications and StatusBar components for improved functionality and styling (#6607) * feat: use theme colors for Console method badges (#6603) * feat: use theme colors for Console method badges * chore(theme): bruno devtools UX updates --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * fix: update @opencollection/types to version 0.6.0 and refactor auth handling in request items (#6619) * feat: enhance HttpMethodSelector to include caret indicator when creating new request (#6620) * feat(theme): update secondary button styles (#6621) * feat: update toast UI to match theme (#6622) * Improve delete collection in workspace overview (#6587) * Improve delete collection in workspace overview * fixes * Feat/v3 UI updates (#6618) * style: enhance button layout and input styles across multiple components for improved UI consistency * style: update RequestsNotLoaded component with new warning styles and enhance theme color definitions for status indicators * refactor: update theme usage across components for consistency - Changed color references from theme.brand to theme.primary.text in various StyledWrapper components. - Added hover effects to enhance UI interactivity in CollectionSettings and FolderSettings. - Removed unnecessary margin and padding adjustments in several components for cleaner layout. - Improved accessibility by ensuring aria attributes are correctly set in MenuDropdown. - Standardized styling for method indicators in RequestPane components. These changes aim to create a more cohesive look and feel across the application while adhering to the updated theme guidelines. * refactor: clean up method selector styling in NewRequest component * chore: temp playwright test fixes * refactor: update modal sizes across various components for consistency - Changed modal size from "sm" to "md" in RenameWorkspace, CreateApiSpec, CloneCollection, DeleteCollectionItem, and RenameCollection components. - Improved styling in HttpMethodSelector by adding padding for better layout. - Updated theme color references in multiple theme files to use a new palette structure for consistency and maintainability. * refactor: enhance styling and theme integration in TimelineItem components - Updated HttpMethodSelector to clarify padding calculation in comments. - Integrated theme colors for OAuth2 indicator and timestamp in TimelineItem for better visual consistency. - Adjusted Method component to use uppercase styling for method display. - Modified RelativeTime component to apply muted text color for improved readability. - Updated INFO color in dark and light themes for better contrast and accessibility. * refactor: remove duplicate import statements in theme files - Cleaned up import statements in vscode.js and light-pastel.js by removing redundant lines for improved code clarity and maintainability. * refactor: improve styling and theme integration in various components - Added accent color and cursor style for checkbox inputs in Modal's StyledWrapper. - Updated border-radius values in HttpMethodSelector and NewRequest StyledWrapper components to use theme variables for consistency. - Introduced a new textbox class in NewRequest StyledWrapper for better styling control. - Changed modal size from "sm" to "md" in CreateEnvironment for improved layout. --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * fix(UX): fix sandbox selector options background color (#6626) * update cdn links (#6628) * fix: toggle switch color (#6627) * fix: modal icon colors to match button colors (#6624) * style: update warning icon color in RemoveCollection and ConfirmSwitchEnv components to use theme colors * fix: font size in BulkEditor * style: update error message styling to use theme colors in QueryResult component * style: update warning icon color * style: update warning color in ConfirmSwitchEnv * chore: minor pr comment --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * fix: folder settings var panel table alignment (#6631) * style: remove font size class from button (#6630) * fix: authmode in graphql (#6636) * fix: file picker component overflow (#6635) * fix: tooltip styling (#6632) * refactor: update color references in OAuth2 components to use theme.primary.text for improved consistency (#6629) * refactor: update color references in OAuth2 components to use theme.primary.text for improved consistency * refactor: update modal size in ImportCollectionLocation component for improved consistency * refactor: set isActiveTab prop in QueryResponse component and update active color in StyledWrapper for consistency * feat: update "Show in Folder" label based on platform in ManageWorkspace, Collection, CollectionItem, and WorkspaceHome components (#6623) * feat: update "Show in Folder" label based on platform in ManageWorkspace, Collection, CollectionItem, and WorkspaceHome components * refactor: remove duplicate "Rename" item push in CollectionItem component * style: update text color classes and button hover effects in RunnerResults (#6637) * style: update text color classes and button hover effects in RunnerResults and StyledWrapper components * Update StyledWrapper.jsx --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * style: update variable validation colors in StyledWrapper components to use theme colors (#6633) --------- Co-authored-by: sanish chirayath <sanish@usebruno.com> Co-authored-by: Abhishek S Lal <abhishek@usebruno.com> Co-authored-by: Pooja <pooja@usebruno.com> Co-authored-by: Chirag Chandrashekhar <chirag@usebruno.com> Co-authored-by: Sanjai Kumar <161328623+sanjaikumar-bruno@users.noreply.github.com> Co-authored-by: lohit <lohit@usebruno.com> Co-authored-by: gopu-bruno <gopu@usebruno.com> Co-authored-by: naman-bruno <naman@usebruno.com> Co-authored-by: Anoop M D <anoop@usebruno.com>
* fix: use themes within protobuf section (#6575) * fix: use themes within protobuf section * chore: fix font weight for protobuf settings --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * fix: radios buttons to use primary color (#6576) * fix: cookie modal theme (#6580) * fix: cookie modal theme * update toggle switch to use primary color * style: enhance theme dropdown and security settings with improved styles and active indicators (#6582) * style: enhance CodeMirror dropdown styles with theme integration (#6577) * style: enhance CodeMirror dropdown styles with theme integration for improved consistency * style: refine dropdown and CodeMirror hint styles for improved consistency and usability * style: clean up scrollbar and CodeMirror hint styles for improved readability * remove max height for keybinding table (#6586) * fix: Add New Request CTA alignment in tabs (#6584) * fix: Add New Request CTA alignment in tabs - Moved the '+' icon before the chevron to maintain alignment once chevrons appear - Added padding to the '+' icon for better spacing. * refactor: streamline New Request button rendering in RequestTabs component - Simplified the rendering logic for the New Request button by removing unnecessary conditional wrappers. - Ensured the button remains functional and maintains its styling within the tab layout. * chore: update delete confirmation modals to use danger button color (#6589) * refactor: remove size prop from Button components for consistency across modals and improve styling * style: update confirm button colors in modal components for consistency * fix: oauth2 callback url field placeholder text update (#6588) * Fix auth panel UI updates (#6590) * style: update padding and font size in OAuth2 and Table components for improved consistency * style: update font styles in OAuth2 components for improved readability * fix: add missing semicolon in StyledWrapper.js for consistent styling * fix: standardize table border colors and improve table styling (#6597) * style: update OAuth2 section labels for improved consistency and readability (#6598) * fix: prefrence modal width (#6595) * fix: theme within grpc timeline (#6581) * fix: theme within grpc timeline * fix: use font from the theme * remove y padding to make timeline item more compact * fix: font * fix: padding * fix: use fira code * fix: icon spacing * add border to the method search * show bg for message section within request * fix: collection already opened in other workspace (#6574) * fix: collection already opened in other workspace * fix * fixes * Merge pull request #6583 from naman-bruno/add/collection-docs add: collection-docs * add: beta tag for opencollection & fix create collection location behaviour (#6594) * add: beta tag for opencollection * fixes * fix * feat: improved dark mode color (#6616) * fix: resolve request pane tooltip visibility issue (#6615) * Feat/update file picker (#6614) * styling: file-picker editor component * use filepicker component within filebody and response example filebody * edit example to use button components * fix: hide delete, disable checkbox in preview mode * make label italic * chore: change example cta buttons to filled style --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * fix: folder docs save button visibility issue (#6617) * refactor: improve theme handling in ThemeProvider for better responsiveness to system preferences (#6606) * refactor: improve theme handling in ThemeProvider for better responsiveness to system preferences - Introduced helper functions to determine effective theme and apply it to the root element. - Updated theme application logic to respond to system theme changes more efficiently. - Simplified theme computation to avoid race conditions by directly using storedTheme. * fix: update displayedTheme initialization in ThemeProvider to use storedTheme for consistency * fix: use theme styling within timeline (#6604) * fix: use theme styling within timeline * fix: remove inline styling and use css classes * fix: network logs within dev tools * compact timeline for grpc * refactor: standardize CSS class naming in StyledWrapper components for better readability * remove styling configuration from Network component * fix: update colors * update colors * fix: color * feat: improve RunnerResults filter bar to use theme system (#6613) * feat: integrate theme support in RunnerResults component for improved styling * refactor: simplify RunnerResults component and enhance filter button styling * style: adjust padding in StyledWrapper and remove aria-pressed from FilterButton * add: global env and workspace flag (#6534) * add: global env and workspace flag * rm: await * update: option name * fix * fix * fix: invalid collection in workspace (#6612) * fix: update Notifications and StatusBar components for improved functionality and styling (#6607) * feat: use theme colors for Console method badges (#6603) * feat: use theme colors for Console method badges * chore(theme): bruno devtools UX updates --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * fix: update @opencollection/types to version 0.6.0 and refactor auth handling in request items (#6619) * feat: enhance HttpMethodSelector to include caret indicator when creating new request (#6620) * feat(theme): update secondary button styles (#6621) * feat: update toast UI to match theme (#6622) * Improve delete collection in workspace overview (#6587) * Improve delete collection in workspace overview * fixes * Feat/v3 UI updates (#6618) * style: enhance button layout and input styles across multiple components for improved UI consistency * style: update RequestsNotLoaded component with new warning styles and enhance theme color definitions for status indicators * refactor: update theme usage across components for consistency - Changed color references from theme.brand to theme.primary.text in various StyledWrapper components. - Added hover effects to enhance UI interactivity in CollectionSettings and FolderSettings. - Removed unnecessary margin and padding adjustments in several components for cleaner layout. - Improved accessibility by ensuring aria attributes are correctly set in MenuDropdown. - Standardized styling for method indicators in RequestPane components. These changes aim to create a more cohesive look and feel across the application while adhering to the updated theme guidelines. * refactor: clean up method selector styling in NewRequest component * chore: temp playwright test fixes * refactor: update modal sizes across various components for consistency - Changed modal size from "sm" to "md" in RenameWorkspace, CreateApiSpec, CloneCollection, DeleteCollectionItem, and RenameCollection components. - Improved styling in HttpMethodSelector by adding padding for better layout. - Updated theme color references in multiple theme files to use a new palette structure for consistency and maintainability. * refactor: enhance styling and theme integration in TimelineItem components - Updated HttpMethodSelector to clarify padding calculation in comments. - Integrated theme colors for OAuth2 indicator and timestamp in TimelineItem for better visual consistency. - Adjusted Method component to use uppercase styling for method display. - Modified RelativeTime component to apply muted text color for improved readability. - Updated INFO color in dark and light themes for better contrast and accessibility. * refactor: remove duplicate import statements in theme files - Cleaned up import statements in vscode.js and light-pastel.js by removing redundant lines for improved code clarity and maintainability. * refactor: improve styling and theme integration in various components - Added accent color and cursor style for checkbox inputs in Modal's StyledWrapper. - Updated border-radius values in HttpMethodSelector and NewRequest StyledWrapper components to use theme variables for consistency. - Introduced a new textbox class in NewRequest StyledWrapper for better styling control. - Changed modal size from "sm" to "md" in CreateEnvironment for improved layout. --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * fix(UX): fix sandbox selector options background color (#6626) * update cdn links (#6628) * fix: toggle switch color (#6627) * fix: modal icon colors to match button colors (#6624) * style: update warning icon color in RemoveCollection and ConfirmSwitchEnv components to use theme colors * fix: font size in BulkEditor * style: update error message styling to use theme colors in QueryResult component * style: update warning icon color * style: update warning color in ConfirmSwitchEnv * chore: minor pr comment --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * fix: folder settings var panel table alignment (#6631) * style: remove font size class from button (#6630) * fix: authmode in graphql (#6636) * fix: file picker component overflow (#6635) * fix: tooltip styling (#6632) * refactor: update color references in OAuth2 components to use theme.primary.text for improved consistency (#6629) * refactor: update color references in OAuth2 components to use theme.primary.text for improved consistency * refactor: update modal size in ImportCollectionLocation component for improved consistency * refactor: set isActiveTab prop in QueryResponse component and update active color in StyledWrapper for consistency * feat: update "Show in Folder" label based on platform in ManageWorkspace, Collection, CollectionItem, and WorkspaceHome components (#6623) * feat: update "Show in Folder" label based on platform in ManageWorkspace, Collection, CollectionItem, and WorkspaceHome components * refactor: remove duplicate "Rename" item push in CollectionItem component * style: update text color classes and button hover effects in RunnerResults (#6637) * style: update text color classes and button hover effects in RunnerResults and StyledWrapper components * Update StyledWrapper.jsx --------- Co-authored-by: Bijin A B <bijin@usebruno.com> * style: update variable validation colors in StyledWrapper components to use theme colors (#6633) * refactor: update Tabs component structure and theme colors (#6638) - Replaced the div wrapper in the Tabs component with StyledWrapper for improved styling. - Simplified TabsList and TabsTrigger components by removing theme dependency and using classnames for styling. - Updated inactive background colors in multiple theme files to enhance visual consistency across themes. * feat: integrate theme support in ImportCollection component (#6639) * feat: integrate theme support in ImportCollection component for improved styling consistency * chore: remove debug console log from ImportCollection component * refactor: update theme import in ImportCollection component for improved consistency * style: enhance syntax highlighting in GQL Docs and Doc Gen (#6640) * style: enhance syntax highlighting and theme integration in QueryEditor and GenerateDocs components * fix: fixed generate code theming issues * style: update color references to use theme.draftColor for unsaved changes across multiple components (#6641) * chore: theme updates (#6642) --------- Co-authored-by: sanish chirayath <sanish@usebruno.com> Co-authored-by: Abhishek S Lal <abhishek@usebruno.com> Co-authored-by: Pooja <pooja@usebruno.com> Co-authored-by: Chirag Chandrashekhar <chirag@usebruno.com> Co-authored-by: Sanjai Kumar <161328623+sanjaikumar-bruno@users.noreply.github.com> Co-authored-by: lohit <lohit@usebruno.com> Co-authored-by: gopu-bruno <gopu@usebruno.com> Co-authored-by: naman-bruno <naman@usebruno.com> Co-authored-by: Anoop M D <anoop@usebruno.com>
Description
Contribution Checklist:
Note: Keeping the PR small and focused helps make it easier to review and merge. If you have multiple changes you want to make, please consider submitting them as separate pull requests.
Publishing to New Package Managers
Please see here for more information.
Summary by CodeRabbit
New Features
Bug Fixes / UX
✏️ Tip: You can customize this high-level summary in your review settings.