mirror of
https://github.com/usebruno/bruno.git
synced 2026-07-02 17:08:32 +00:00
feat: add hideResultTypeSelector prop to QueryResponse component (#6452)
* Introduced hideResultTypeSelector prop to conditionally render the QueryResultTypeSelector in the QueryResponse component. * Updated BodyBlock to pass the type prop to control the visibility of the result type selector based on the request or response context. * Adjusted styling in StyledWrapper for improved layout consistency.
This commit is contained in:
@@ -8,8 +8,8 @@ const StyledWrapper = styled.div`
|
||||
border-radius: 4px;
|
||||
border: 1px solid ${(props) => props.theme.console.border};
|
||||
|
||||
.query-response-content {
|
||||
border-top: 1px solid ${(props) => props.theme.console.border};
|
||||
.result-type-selector {
|
||||
border-bottom: 1px solid ${(props) => props.theme.console.border};
|
||||
}
|
||||
`;
|
||||
|
||||
|
||||
@@ -12,7 +12,8 @@ const QueryResponse = ({
|
||||
dataBuffer,
|
||||
disableRunEventListener,
|
||||
headers,
|
||||
error
|
||||
error,
|
||||
hideResultTypeSelector
|
||||
}) => {
|
||||
const { initialFormat, initialTab } = useInitialResponseFormat(dataBuffer, headers);
|
||||
const previewFormatOptions = useResponsePreviewFormatOptions(dataBuffer, headers);
|
||||
@@ -27,20 +28,23 @@ const QueryResponse = ({
|
||||
}, [initialFormat, initialTab]);
|
||||
return (
|
||||
<StyledWrapper>
|
||||
<div className="flex items-center justify-end p-2">
|
||||
<QueryResultTypeSelector
|
||||
formatOptions={previewFormatOptions}
|
||||
formatValue={selectedFormat}
|
||||
onFormatChange={(newFormat) => {
|
||||
setSelectedFormat(newFormat);
|
||||
}}
|
||||
onPreviewTabSelect={() => {
|
||||
setSelectedTab((prev) => prev === 'editor' ? 'preview' : 'editor');
|
||||
}}
|
||||
selectedTab={selectedTab}
|
||||
/>
|
||||
</div>
|
||||
<div className={classnames('flex-1 query-response-content', selectedTab === 'editor' ? 'px-2 py-1' : '')}>
|
||||
{!hideResultTypeSelector && (
|
||||
<div className="flex items-center justify-end p-2 result-type-selector">
|
||||
|
||||
<QueryResultTypeSelector
|
||||
formatOptions={previewFormatOptions}
|
||||
formatValue={selectedFormat}
|
||||
onFormatChange={(newFormat) => {
|
||||
setSelectedFormat(newFormat);
|
||||
}}
|
||||
onPreviewTabSelect={() => {
|
||||
setSelectedTab((prev) => prev === 'editor' ? 'preview' : 'editor');
|
||||
}}
|
||||
selectedTab={selectedTab}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
<div className={classnames('flex-1 result-content', selectedTab === 'editor' ? 'px-2 py-1' : '')}>
|
||||
<QueryResult
|
||||
item={item}
|
||||
collection={collection}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import QueryResponse from 'components/ResponsePane/QueryResponse/index';
|
||||
import { useState } from 'react';
|
||||
|
||||
const BodyBlock = ({ collection, data, dataBuffer, headers, error, item }) => {
|
||||
const BodyBlock = ({ collection, data, dataBuffer, headers, error, item, type }) => {
|
||||
const [isBodyCollapsed, toggleBody] = useState(true);
|
||||
return (
|
||||
<div className="collapsible-section">
|
||||
@@ -22,6 +22,7 @@ const BodyBlock = ({ collection, data, dataBuffer, headers, error, item }) => {
|
||||
headers={headers}
|
||||
error={error}
|
||||
key={item?.uid}
|
||||
hideResultTypeSelector={type === 'request'}
|
||||
/>
|
||||
</div>
|
||||
) : (
|
||||
|
||||
@@ -32,7 +32,7 @@ const Request = ({ collection, request, item }) => {
|
||||
<Headers headers={headers} type="request" />
|
||||
|
||||
{/* Body */}
|
||||
<BodyBlock collection={collection} data={data} dataBuffer={dataBuffer} error={error} headers={headers} item={item} />
|
||||
<BodyBlock collection={collection} data={data} dataBuffer={dataBuffer} error={error} headers={headers} item={item} type="request" />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -35,7 +35,7 @@ const Response = ({ collection, response, item }) => {
|
||||
<Headers headers={headers} type="response" />
|
||||
|
||||
{/* Body */}
|
||||
<BodyBlock collection={collection} data={data} dataBuffer={dataBuffer} error={error} headers={headers} item={item} />
|
||||
<BodyBlock collection={collection} data={data} dataBuffer={dataBuffer} error={error} headers={headers} item={item} type="response" />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user