forked from Archives/Athou_commafeed
load swagger-ui css lazily
This commit is contained in:
@@ -17,7 +17,6 @@ import { AdminUsersPage } from "pages/admin/AdminUsersPage"
|
|||||||
import { MetricsPage } from "pages/admin/MetricsPage"
|
import { MetricsPage } from "pages/admin/MetricsPage"
|
||||||
import { AboutPage } from "pages/app/AboutPage"
|
import { AboutPage } from "pages/app/AboutPage"
|
||||||
import { AddPage } from "pages/app/AddPage"
|
import { AddPage } from "pages/app/AddPage"
|
||||||
import { ApiDocumentationPage } from "pages/app/ApiDocumentationPage"
|
|
||||||
import { CategoryDetailsPage } from "pages/app/CategoryDetailsPage"
|
import { CategoryDetailsPage } from "pages/app/CategoryDetailsPage"
|
||||||
import { FeedDetailsPage } from "pages/app/FeedDetailsPage"
|
import { FeedDetailsPage } from "pages/app/FeedDetailsPage"
|
||||||
import { FeedEntriesPage } from "pages/app/FeedEntriesPage"
|
import { FeedEntriesPage } from "pages/app/FeedEntriesPage"
|
||||||
@@ -61,6 +60,9 @@ function Providers(props: { children: React.ReactNode }) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// swagger-ui is very large, load only on-demand
|
||||||
|
const ApiDocumentationPage = React.lazy(() => import("pages/app/ApiDocumentationPage"))
|
||||||
|
|
||||||
function AppRoutes() {
|
function AppRoutes() {
|
||||||
return (
|
return (
|
||||||
<Routes>
|
<Routes>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import dayjs from "dayjs"
|
|||||||
import relativeTime from "dayjs/plugin/relativeTime"
|
import relativeTime from "dayjs/plugin/relativeTime"
|
||||||
import ReactDOM from "react-dom/client"
|
import ReactDOM from "react-dom/client"
|
||||||
import { Provider } from "react-redux"
|
import { Provider } from "react-redux"
|
||||||
import "swagger-ui-react/swagger-ui.css"
|
|
||||||
import { App } from "./App"
|
import { App } from "./App"
|
||||||
|
|
||||||
dayjs.extend(relativeTime)
|
dayjs.extend(relativeTime)
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
import { Loader } from "components/Loader"
|
import SwaggerUI from "swagger-ui-react"
|
||||||
import React, { Suspense } from "react"
|
import "swagger-ui-react/swagger-ui.css"
|
||||||
|
|
||||||
export function ApiDocumentationPage() {
|
function ApiDocumentationPage() {
|
||||||
// swagger-ui is very large, load only on-demand
|
return <SwaggerUI url="swagger/swagger.json" />
|
||||||
const SwaggerUI = React.lazy(() => import("swagger-ui-react"))
|
|
||||||
return (
|
|
||||||
<Suspense fallback={<Loader />}>
|
|
||||||
<SwaggerUI url="swagger/swagger.json" />
|
|
||||||
</Suspense>
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default ApiDocumentationPage
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import {
|
|||||||
DEFAULT_THEME,
|
DEFAULT_THEME,
|
||||||
Group,
|
Group,
|
||||||
Header,
|
Header,
|
||||||
|
Loader,
|
||||||
Navbar,
|
Navbar,
|
||||||
ScrollArea,
|
ScrollArea,
|
||||||
Title,
|
Title,
|
||||||
@@ -25,7 +26,7 @@ import { OnDesktop } from "components/responsive/OnDesktop"
|
|||||||
import { OnMobile } from "components/responsive/OnMobile"
|
import { OnMobile } from "components/responsive/OnMobile"
|
||||||
import { useAppLoading } from "hooks/useAppLoading"
|
import { useAppLoading } from "hooks/useAppLoading"
|
||||||
import { LoadingPage } from "pages/LoadingPage"
|
import { LoadingPage } from "pages/LoadingPage"
|
||||||
import { ReactNode, useEffect } from "react"
|
import { ReactNode, Suspense, useEffect } from "react"
|
||||||
import { TbPlus } from "react-icons/tb"
|
import { TbPlus } from "react-icons/tb"
|
||||||
import { Outlet } from "react-router-dom"
|
import { Outlet } from "react-router-dom"
|
||||||
|
|
||||||
@@ -168,7 +169,9 @@ export default function Layout({ sidebar, header }: LayoutProps) {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Box className={classes.mainContent}>
|
<Box className={classes.mainContent}>
|
||||||
<Outlet />
|
<Suspense fallback={<Loader />}>
|
||||||
|
<Outlet />
|
||||||
|
</Suspense>
|
||||||
</Box>
|
</Box>
|
||||||
</ScrollArea>
|
</ScrollArea>
|
||||||
</AppShell>
|
</AppShell>
|
||||||
|
|||||||
Reference in New Issue
Block a user