Skip to content

Commit fd2f065

Browse files
authored
[Bug] Add condition for handling arrays of discriminators (#344)
* Add condition for handling arrays of discriminators and add missing return statement to createProperties * Add missing --openapi-input-background var * Match discriminator tab styles to schema tab styles
1 parent 05860ec commit fd2f065

File tree

4 files changed

+26
-13
lines changed

4 files changed

+26
-13
lines changed

packages/docusaurus-plugin-openapi-docs/src/markdown/createRequestSchema.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,16 @@ function createAnyOneOf(schema: SchemaObject): any {
104104

105105
function createProperties(schema: SchemaObject) {
106106
const discriminator = schema.discriminator;
107-
return Object.entries(schema.properties!).map(([key, val]) =>
108-
createEdges({
107+
return Object.entries(schema.properties!).map(([key, val]) => {
108+
return createEdges({
109109
name: key,
110110
schema: val,
111111
required: Array.isArray(schema.required)
112112
? schema.required.includes(key)
113113
: false,
114114
discriminator,
115-
})
116-
);
115+
});
116+
});
117117
}
118118

119119
function createAdditionalProperties(schema: SchemaObject) {
@@ -613,6 +613,10 @@ function createEdges({
613613
return createDetailsNode(name, schemaName, schema, required);
614614
}
615615

616+
if (schema.items?.anyOf !== undefined || schema.items?.oneOf !== undefined) {
617+
return createDetailsNode(name, schemaName, schema, required);
618+
}
619+
616620
if (schema.readOnly && schema.readOnly === true) {
617621
return undefined;
618622
}

packages/docusaurus-plugin-openapi-docs/src/markdown/createResponseSchema.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,16 @@ function createAnyOneOf(schema: SchemaObject): any {
109109

110110
function createProperties(schema: SchemaObject) {
111111
const discriminator = schema.discriminator;
112-
return Object.entries(schema.properties!).map(([key, val]) =>
113-
createEdges({
112+
return Object.entries(schema.properties!).map(([key, val]) => {
113+
return createEdges({
114114
name: key,
115115
schema: val,
116116
required: Array.isArray(schema.required)
117117
? schema.required.includes(key)
118118
: false,
119119
discriminator,
120-
})
121-
);
120+
});
121+
});
122122
}
123123

124124
function createAdditionalProperties(schema: SchemaObject) {
@@ -613,6 +613,10 @@ function createEdges({
613613
return createDetailsNode(name, schemaName, schema, required);
614614
}
615615

616+
if (schema.items?.anyOf !== undefined || schema.items?.oneOf !== undefined) {
617+
return createDetailsNode(name, schemaName, schema, required);
618+
}
619+
616620
if (schema.writeOnly && schema.writeOnly === true) {
617621
return undefined;
618622
}

packages/docusaurus-theme-openapi-docs/src/theme/DiscriminatorTabs/styles.module.css

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,19 @@
1212
height: 1.8rem;
1313
margin-top: 0 !important;
1414
margin-right: 0.5rem;
15-
border: 1px solid var(--openapi-code-dim-dark);
15+
border: 1px solid var(--ifm-color-primary);
1616
border-radius: var(--ifm-global-radius);
17-
color: var(--openapi-code-dim-dark);
17+
color: var(--ifm-color-primary);
1818
font-size: 12px;
1919
}
2020

21+
.tabItem:not(.discriminatorTabActive) {
22+
opacity: 0.65;
23+
}
24+
2125
.tabItem:hover {
22-
color: var(--ifm-color-emphasis-500) !important;
26+
opacity: 1;
27+
background-color: var(--ifm-color-emphasis-100);
2328
}
2429

2530
.tabItem:last-child {
@@ -59,8 +64,7 @@
5964
}
6065

6166
.tabItem.discriminatorTabActive {
62-
border: 1px solid var(--ifm-color-primary);
63-
color: var(--ifm-color-primary);
67+
background-color: var(--ifm-color-emphasis-100);
6468
}
6569

6670
.discriminatorTabLabel {

packages/docusaurus-theme-openapi-docs/src/theme/styles.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
--openapi-card-background-color: var(--ifm-color-gray-100);
1515
--openapi-card-border-radius: var(--ifm-pre-border-radius);
1616
--openapi-input-border: var(--ifm-color-primary);
17+
--openapi-input-background: var(--openapi-card-background-color);
1718
}
1819

1920
[data-theme="dark"] {

0 commit comments

Comments
 (0)