fix: Loading of API docs

This commit is contained in:
Alicia Sykes 2024-06-22 20:39:33 +01:00
parent 07b6ca3222
commit 2186fff4dc

View File

@ -1,9 +1,7 @@
--- ---
import BaseLayout from '@layouts/Base.astro'; import BaseLayout from '@layouts/Base.astro';
import NavBar from '@components/scafold/Nav.astro'; import NavBar from '@components/scafold/Nav.astro';
// import Footer from '@components/scafold/Footer.astro'; import Footer from '@components/scafold/Footer.astro';
// import config from '../site-config';
--- ---
<BaseLayout <BaseLayout
@ -17,12 +15,13 @@ import NavBar from '@components/scafold/Nav.astro';
<main> <main>
<NavBar /> <NavBar />
<div id="swagger-ui"></div> <div id="swagger-ui"></div>
<Footer />
</main> </main>
</BaseLayout> </BaseLayout>
<script is:inline src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/4.1.3/swagger-ui-bundle.js"></script> <script is:inline src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/4.1.3/swagger-ui-bundle.js"></script>
<script type="module" is:inline> <script is:inline>
window.onload = () => { function initializeSwagger() {
SwaggerUIBundle({ SwaggerUIBundle({
url: '/resources/openapi-spec.yml', url: '/resources/openapi-spec.yml',
dom_id: '#swagger-ui', dom_id: '#swagger-ui',
@ -33,19 +32,24 @@ import NavBar from '@components/scafold/Nav.astro';
], ],
}); });
} }
// Initialize Swagger when visiting page directly
document.addEventListener('DOMContentLoaded', initializeSwagger);
// Initialize Swagger when navigating to page from another page
if (document.readyState === 'complete' || document.readyState === 'interactive') {
initializeSwagger();
}
</script> </script>
<style lang="scss"> <style lang="scss">
@import '@styles/global.scss'; @import '@styles/global.scss';
main { main {
padding: 2rem;
margin: 0 auto;
height: 100vh; height: 100vh;
width: 100vw; padding-top: 2rem;
max-width: 1600px; #swagger-ui {
@include mobile-down { margin: 0 auto;
padding: 0; width: calc(100vw - 4rem);
max-width: 1600px;
min-height: 100vh;
} }
} }
</style> </style>