Skip to content

Commit b7b7b77

Browse files
fix: allow Send API Request button with proxy-only configuration (#1274)
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
1 parent bce73a6 commit b7b7b77

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

  • packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer

packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/Request/index.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import React, { useState } from "react";
1111
import { useDoc } from "@docusaurus/plugin-content-docs/client";
1212
import { translate } from "@docusaurus/Translate";
1313
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
14-
import type { ThemeConfig } from "docusaurus-theme-openapi-docs/src/types";
1514
import Accept from "@theme/ApiExplorer/Accept";
1615
import Authorization from "@theme/ApiExplorer/Authorization";
1716
import Body from "@theme/ApiExplorer/Body";
@@ -30,6 +29,7 @@ import { useTypedDispatch, useTypedSelector } from "@theme/ApiItem/hooks";
3029
import { OPENAPI_REQUEST } from "@theme/translationIds";
3130
import { ParameterObject } from "docusaurus-plugin-openapi-docs/src/openapi/types";
3231
import { ApiItem } from "docusaurus-plugin-openapi-docs/src/types";
32+
import type { ThemeConfig } from "docusaurus-theme-openapi-docs/src/types";
3333
import * as sdk from "postman-collection";
3434
import { FormProvider, useForm } from "react-hook-form";
3535

@@ -200,7 +200,7 @@ function Request({ item }: { item: ApiItem }) {
200200
const showServerOptions = serverOptions.length > 0;
201201
const showAcceptOptions = acceptOptions.length > 1;
202202
const showRequestBody = contentType !== undefined;
203-
const showRequestButton = item.servers && !hideSendButton;
203+
const showRequestButton = (item.servers || proxy) && !hideSendButton;
204204
const showAuth = authSelected !== undefined;
205205
const showParams = allParams.length > 0;
206206
const requestBodyRequired = item.requestBody?.required;
@@ -210,7 +210,8 @@ function Request({ item }: { item: ApiItem }) {
210210
!showAuth &&
211211
!showParams &&
212212
!showRequestBody &&
213-
!showServerOptions
213+
!showServerOptions &&
214+
!showRequestButton
214215
) {
215216
return null;
216217
}

packages/docusaurus-theme-openapi-docs/src/theme/ApiExplorer/Response/index.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ import React from "react";
1010
import { useDoc } from "@docusaurus/plugin-content-docs/client";
1111
import { usePrismTheme } from "@docusaurus/theme-common";
1212
import { translate } from "@docusaurus/Translate";
13+
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
1314
import ApiCodeBlock from "@theme/ApiExplorer/ApiCodeBlock";
1415
import { useTypedDispatch, useTypedSelector } from "@theme/ApiItem/hooks";
1516
import SchemaTabs from "@theme/SchemaTabs";
1617
import TabItem from "@theme/TabItem";
1718
import { OPENAPI_RESPONSE } from "@theme/translationIds";
1819
import clsx from "clsx";
1920
import { ApiItem } from "docusaurus-plugin-openapi-docs/src/types";
21+
import type { ThemeConfig } from "docusaurus-theme-openapi-docs/src/types";
2022

2123
import { clearResponse, clearCode, clearHeaders } from "./slice";
2224

@@ -42,7 +44,11 @@ function formatXml(xml: string) {
4244

4345
function Response({ item }: { item: ApiItem }) {
4446
const metadata = useDoc();
47+
const { siteConfig } = useDocusaurusContext();
48+
const themeConfig = siteConfig.themeConfig as ThemeConfig;
4549
const hideSendButton = metadata.frontMatter.hide_send_button;
50+
const proxy =
51+
metadata.frontMatter.proxy ?? themeConfig.api?.proxy;
4652
const prismTheme = usePrismTheme();
4753
const code = useTypedSelector((state: any) => state.response.code);
4854
const headers = useTypedSelector((state: any) => state.response.headers);
@@ -57,7 +63,7 @@ function Response({ item }: { item: ApiItem }) {
5763
? "openapi-response__dot--success"
5864
: "openapi-response__dot--info");
5965

60-
if (!item.servers || hideSendButton) {
66+
if ((!item.servers && !proxy) || hideSendButton) {
6167
return null;
6268
}
6369

0 commit comments

Comments
 (0)