From 06244f91205aa339fe9f5966e34ada17fd4338ea Mon Sep 17 00:00:00 2001 From: Leah Bush <157434496+LeahMarieBush@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:33:15 -0500 Subject: [PATCH] feat: add button to download api-docs json (#2612) * feat: add button to download api-docs json * remove styles --- src/views/open-api-docs-view/index.tsx | 13 +++++++++++++ src/views/open-api-docs-view/server.ts | 1 + src/views/open-api-docs-view/types.ts | 5 +++++ 3 files changed, 19 insertions(+) diff --git a/src/views/open-api-docs-view/index.tsx b/src/views/open-api-docs-view/index.tsx index 37e5086c77..88a34db5ab 100644 --- a/src/views/open-api-docs-view/index.tsx +++ b/src/views/open-api-docs-view/index.tsx @@ -12,6 +12,9 @@ import SidebarBackToLink from 'components/sidebar/components/sidebar-back-to-lin import VersionSwitcher from 'components/version-switcher' import OpenApiSidebarContents from 'components/open-api-sidebar-contents' import { ApiDocsVersionAlert } from 'views/api-docs-view/components' +import StandaloneLink from '@components/standalone-link' +import { IconDownload16 } from '@hashicorp/flight-icons/svg-react/download-16' + // Local import { OpenApiDocsMobileMenuLevels, @@ -40,6 +43,7 @@ function OpenApiDocsView({ versionSwitcherProps, isVersionedUrl, versionAlert, + schemaFileString, }: OpenApiDocsViewProps) { return ( + } + iconPosition="leading" + download="hcp.swagger.json" + href={`data:text/json;charset=utf-8,${encodeURIComponent( + schemaFileString + )}`} + />

Operations

diff --git a/src/views/open-api-docs-view/server.ts b/src/views/open-api-docs-view/server.ts index 68c839bbaa..9d1289f50e 100644 --- a/src/views/open-api-docs-view/server.ts +++ b/src/views/open-api-docs-view/server.ts @@ -171,6 +171,7 @@ export async function getStaticProps({ latestStableVersion: defaultVersion, basePath, }, + schemaFileString, }, } } diff --git a/src/views/open-api-docs-view/types.ts b/src/views/open-api-docs-view/types.ts index 4bfa8951b9..61d3f62907 100644 --- a/src/views/open-api-docs-view/types.ts +++ b/src/views/open-api-docs-view/types.ts @@ -176,6 +176,11 @@ export interface OpenApiDocsViewProps { * Optional. If provided, a version alert will be shown. */ versionAlert?: ApiDocsVersionAlertProps + + /** + * File string for downloading api-docs spec file + */ + schemaFileString: string } /**