Skip to content

Commit 4550e4d

Browse files
committed
feat: add hideSingleRequestSampleTab option
1 parent de2aed2 commit 4550e4d

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/components/RequestSamples/RequestSamples.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
import { observer } from 'mobx-react';
22
import * as React from 'react';
3-
import { OperationModel } from '../../services/models';
3+
import { OperationModel, RedocNormalizedOptions } from '../../services';
44
import { PayloadSamples } from '../PayloadSamples/PayloadSamples';
55
import { SourceCodeWithCopy } from '../SourceCode/SourceCode';
66

77
import { RightPanelHeader, Tab, TabList, TabPanel, Tabs } from '../../common-elements';
8+
import { OptionsContext } from '../OptionsProvider';
89

910
export interface RequestSamplesProps {
1011
operation: OperationModel;
1112
}
1213

1314
@observer
1415
export class RequestSamples extends React.Component<RequestSamplesProps> {
16+
static contextType = OptionsContext;
17+
context: RedocNormalizedOptions;
1518
operation: OperationModel;
1619

1720
render() {
@@ -21,13 +24,17 @@ export class RequestSamples extends React.Component<RequestSamplesProps> {
2124
const samples = operation.codeSamples;
2225

2326
const hasSamples = hasBodySample || samples.length > 0;
27+
const hideTabList =
28+
samples.length + (hasBodySample ? 1 : 0) === 1
29+
? this.context.hideSingleRequestSampleTab
30+
: false;
2431
return (
2532
(hasSamples && (
2633
<div>
2734
<RightPanelHeader> Request samples </RightPanelHeader>
2835

2936
<Tabs defaultIndex={0}>
30-
<TabList>
37+
<TabList hidden={hideTabList}>
3138
{hasBodySample && <Tab key="payload"> Payload </Tab>}
3239
{samples.map(sample => (
3340
<Tab key={sample.lang + '_' + (sample.label || '')}>

src/services/RedocNormalizedOptions.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export interface RedocRawOptions {
2020
disableSearch?: boolean | string;
2121
onlyRequiredInSamples?: boolean | string;
2222
showExtensions?: boolean | string | string[];
23+
hideSingleRequestSampleTab?: boolean | string;
2324

2425
unstable_ignoreMimeParameters?: boolean;
2526

@@ -120,6 +121,7 @@ export class RedocNormalizedOptions {
120121
disableSearch: boolean;
121122
onlyRequiredInSamples: boolean;
122123
showExtensions: boolean | string[];
124+
hideSingleRequestSampleTab: boolean;
123125

124126
/* tslint:disable-next-line */
125127
unstable_ignoreMimeParameters: boolean;
@@ -147,6 +149,7 @@ export class RedocNormalizedOptions {
147149
this.disableSearch = argValueToBoolean(raw.disableSearch);
148150
this.onlyRequiredInSamples = argValueToBoolean(raw.onlyRequiredInSamples);
149151
this.showExtensions = RedocNormalizedOptions.normalizeShowExtensions(raw.showExtensions);
152+
this.hideSingleRequestSampleTab = argValueToBoolean(raw.hideSingleRequestSampleTab);
150153

151154
this.unstable_ignoreMimeParameters = argValueToBoolean(raw.unstable_ignoreMimeParameters);
152155

0 commit comments

Comments
 (0)