mirror of
https://github.com/usebruno/bruno.git
synced 2026-07-08 14:35:03 +00:00
* 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>
136 lines
4.5 KiB
JavaScript
136 lines
4.5 KiB
JavaScript
import React from 'react';
|
|
import { useDispatch } from 'react-redux';
|
|
import StyledWrapper from './StyledWrapper';
|
|
import { updateCollectionPresets } from 'providers/ReduxStore/slices/collections';
|
|
import { saveCollectionSettings } from 'providers/ReduxStore/slices/collections/actions';
|
|
import { get } from 'lodash';
|
|
import Button from 'ui/Button';
|
|
|
|
const PresetsSettings = ({ collection }) => {
|
|
const dispatch = useDispatch();
|
|
const initialPresets = { requestType: 'http', requestUrl: '' };
|
|
|
|
// Get presets from draft.brunoConfig if it exists, otherwise from brunoConfig
|
|
const currentPresets = collection.draft?.brunoConfig
|
|
? get(collection, 'draft.brunoConfig.presets', initialPresets)
|
|
: get(collection, 'brunoConfig.presets', initialPresets);
|
|
|
|
// Helper to update presets config
|
|
const updatePresets = (updates) => {
|
|
const updatedPresets = { ...currentPresets, ...updates };
|
|
dispatch(updateCollectionPresets({
|
|
collectionUid: collection.uid,
|
|
presets: updatedPresets
|
|
}));
|
|
};
|
|
|
|
const handleSave = () => dispatch(saveCollectionSettings(collection.uid));
|
|
|
|
const handleRequestTypeChange = (e) => {
|
|
updatePresets({ requestType: e.target.value });
|
|
};
|
|
|
|
const handleRequestUrlChange = (e) => {
|
|
updatePresets({ requestUrl: e.target.value });
|
|
};
|
|
|
|
return (
|
|
<StyledWrapper className="h-full w-full">
|
|
<div className="text-xs mb-4 text-muted">
|
|
These presets will be used as the default values for new requests in this collection.
|
|
</div>
|
|
<div className="bruno-form">
|
|
<div className="mb-3 flex items-center">
|
|
<label className="settings-label flex items-center" htmlFor="http">
|
|
Request Type
|
|
</label>
|
|
<div className="flex items-center">
|
|
<input
|
|
id="http"
|
|
className="cursor-pointer"
|
|
type="radio"
|
|
name="requestType"
|
|
onChange={handleRequestTypeChange}
|
|
value="http"
|
|
checked={(currentPresets.requestType || 'http') === 'http'}
|
|
/>
|
|
<label htmlFor="http" className="ml-1 cursor-pointer select-none">
|
|
HTTP
|
|
</label>
|
|
|
|
<input
|
|
id="graphql"
|
|
className="ml-4 cursor-pointer"
|
|
type="radio"
|
|
name="requestType"
|
|
onChange={handleRequestTypeChange}
|
|
value="graphql"
|
|
checked={(currentPresets.requestType || 'http') === 'graphql'}
|
|
/>
|
|
<label htmlFor="graphql" className="ml-1 cursor-pointer select-none">
|
|
GraphQL
|
|
</label>
|
|
|
|
<input
|
|
id="grpc"
|
|
className="ml-4 cursor-pointer"
|
|
type="radio"
|
|
name="requestType"
|
|
onChange={handleRequestTypeChange}
|
|
value="grpc"
|
|
checked={(currentPresets.requestType || 'http') === 'grpc'}
|
|
/>
|
|
<label htmlFor="grpc" className="ml-1 cursor-pointer select-none">
|
|
gRPC
|
|
</label>
|
|
|
|
<input
|
|
id="ws"
|
|
className="ml-4 cursor-pointer"
|
|
type="radio"
|
|
name="requestType"
|
|
onChange={handleRequestTypeChange}
|
|
value="ws"
|
|
checked={(currentPresets.requestType || 'http') === 'ws'}
|
|
/>
|
|
<label htmlFor="ws" className="ml-1 cursor-pointer select-none">
|
|
WebSocket
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div className="mb-3 flex items-center">
|
|
<label className="settings-label" htmlFor="request-url">
|
|
Base URL
|
|
</label>
|
|
<div className="flex items-center w-full">
|
|
<div className="flex items-center flex-grow input-container h-full">
|
|
<input
|
|
id="request-url"
|
|
type="text"
|
|
name="requestUrl"
|
|
placeholder="Request URL"
|
|
className="block textbox"
|
|
autoComplete="off"
|
|
autoCorrect="off"
|
|
autoCapitalize="off"
|
|
spellCheck="false"
|
|
onChange={handleRequestUrlChange}
|
|
value={currentPresets.requestUrl || ''}
|
|
style={{ width: '100%' }}
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="mt-6">
|
|
<Button type="button" size="sm" onClick={handleSave}>
|
|
Save
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
</StyledWrapper>
|
|
);
|
|
};
|
|
|
|
export default PresetsSettings;
|