Skip to content

Commit 3dc71cd

Browse files
authored
Merge pull request #958 from PaloAltoNetworks/default-values
render default value as string literal instead of markdown
2 parents dca70f4 + 8323e7d commit 3dc71cd

File tree

4 files changed

+248
-32
lines changed

4 files changed

+248
-32
lines changed

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -416,16 +416,16 @@ function createDetailsNode(
416416
create("div", {
417417
style: { marginLeft: "1rem" },
418418
children: [
419-
guard(getQualifierMessage(schema), (message) =>
419+
guard(schema.description, (description) =>
420420
create("div", {
421421
style: { marginTop: ".5rem", marginBottom: ".5rem" },
422-
children: createDescription(message),
422+
children: createDescription(description),
423423
})
424424
),
425-
guard(schema.description, (description) =>
425+
guard(getQualifierMessage(schema), (message) =>
426426
create("div", {
427427
style: { marginTop: ".5rem", marginBottom: ".5rem" },
428-
children: createDescription(description),
428+
children: createDescription(message),
429429
})
430430
),
431431
createNodes(schema, SCHEMA_TYPE),
@@ -559,20 +559,20 @@ function createPropertyDiscriminator(
559559
]),
560560
],
561561
}),
562-
guard(getQualifierMessage(discriminator), (message) =>
562+
guard(schema.description, (description) =>
563563
create("div", {
564564
style: {
565565
paddingLeft: "1rem",
566566
},
567-
children: createDescription(message),
567+
children: createDescription(description),
568568
})
569569
),
570-
guard(schema.description, (description) =>
570+
guard(getQualifierMessage(discriminator), (message) =>
571571
create("div", {
572572
style: {
573573
paddingLeft: "1rem",
574574
},
575-
children: createDescription(description),
575+
children: createDescription(message),
576576
})
577577
),
578578
create("DiscriminatorTabs", {

packages/docusaurus-theme-openapi-docs/src/theme/ParamsItem/index.tsx

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,18 @@ function ParamsItem({ param, ...rest }: Props) {
7171
} = param;
7272

7373
let schema = param.schema;
74+
let defaultValue: string | undefined;
7475

7576
if (!schema || !schema?.type) {
7677
schema = { type: "any" };
7778
}
79+
if (schema) {
80+
if (schema.items) {
81+
defaultValue = schema.items.default;
82+
} else {
83+
defaultValue = schema.default;
84+
}
85+
}
7886

7987
const renderSchemaName = guard(schema, (schema) => (
8088
<span className="openapi-schema__type"> {getSchemaName(schema)}</span>
@@ -131,18 +139,29 @@ function ParamsItem({ param, ...rest }: Props) {
131139
}
132140
);
133141

134-
const renderDefaultValue = guard(
135-
schema && schema.items
136-
? schema.items.default
137-
: schema
138-
? schema.default
139-
: undefined,
140-
(value) => (
141-
<div>
142-
<ReactMarkdown children={`**Default value:** \`${value}\``} />
143-
</div>
144-
)
145-
);
142+
function renderDefaultValue() {
143+
if (defaultValue !== undefined) {
144+
if (typeof defaultValue === "string") {
145+
return (
146+
<div>
147+
<strong>Default value: </strong>
148+
<span>
149+
<code>{defaultValue}</code>
150+
</span>
151+
</div>
152+
);
153+
}
154+
return (
155+
<div>
156+
<strong>Default value: </strong>
157+
<span>
158+
<code>{JSON.stringify(defaultValue)}</code>
159+
</span>
160+
</div>
161+
);
162+
}
163+
return undefined;
164+
}
146165

147166
const renderExample = guard(toString(example), (example) => (
148167
<div>
@@ -196,9 +215,9 @@ function ParamsItem({ param, ...rest }: Props) {
196215
{renderDeprecated}
197216
</span>
198217
{renderSchema}
199-
{renderDefaultValue}
200218
{renderDescription}
201219
{renderEnumDescriptions}
220+
{renderDefaultValue()}
202221
{renderExample}
203222
{renderExamples}
204223
</div>

packages/docusaurus-theme-openapi-docs/src/theme/SchemaItem/index.tsx

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export default function SchemaItem(props: Props) {
6565
} = props;
6666
let deprecated;
6767
let schemaDescription;
68-
let defaultValue;
68+
let defaultValue: string | undefined;
6969
let nullable;
7070
let enumDescriptions: [string, string][] = [];
7171

@@ -133,11 +133,29 @@ export default function SchemaItem(props: Props) {
133133
</div>
134134
));
135135

136-
const renderDefaultValue = guard(defaultValue, (value) => (
137-
<div className="">
138-
<ReactMarkdown children={`**Default value:** \`${value}\``} />
139-
</div>
140-
));
136+
function renderDefaultValue() {
137+
if (defaultValue !== undefined) {
138+
if (typeof defaultValue === "string") {
139+
return (
140+
<div>
141+
<strong>Default value: </strong>
142+
<span>
143+
<code>{defaultValue}</code>
144+
</span>
145+
</div>
146+
);
147+
}
148+
return (
149+
<div>
150+
<strong>Default value: </strong>
151+
<span>
152+
<code>{JSON.stringify(defaultValue)}</code>
153+
</span>
154+
</div>
155+
);
156+
}
157+
return undefined;
158+
}
141159

142160
const schemaContent = (
143161
<div>
@@ -157,10 +175,10 @@ export default function SchemaItem(props: Props) {
157175
{renderRequired}
158176
{renderDeprecated}
159177
</span>
160-
{renderQualifierMessage}
161-
{renderDefaultValue}
162178
{renderSchemaDescription}
163179
{renderEnumDescriptions}
180+
{renderQualifierMessage}
181+
{renderDefaultValue()}
164182
{collapsibleSchemaContent ?? collapsibleSchemaContent}
165183
</div>
166184
);

0 commit comments

Comments
 (0)