@flanksource/clicky-ui
Version:
Flanksource Clicky UI — React component library built on shadcn/ui with light/dark and density theming.
38 lines (37 loc) • 1.26 kB
JavaScript
import { jsx } from "react/jsx-runtime";
import { useMemo, Suspense, lazy } from "react";
import { cn } from "../lib/utils.js";
const DEFAULT_OPENAPI_URL = "/api/openapi.json";
const ScalarApiReference = lazy(async () => {
await import("@scalar/api-reference-react/style.css");
const mod = await import("@scalar/api-reference-react");
return { default: mod.ApiReferenceReact };
});
function ApiExplorer({
openApiUrl = DEFAULT_OPENAPI_URL,
configuration,
className,
style
}) {
const scalarConfiguration = useMemo(() => {
if (configuration == null) {
return { url: openApiUrl };
}
if (Array.isArray(configuration)) {
return configuration;
}
return { url: openApiUrl, ...configuration };
}, [configuration, openApiUrl]);
return /* @__PURE__ */ jsx("div", { className: cn("h-full min-h-0 overflow-auto", className), style, children: /* @__PURE__ */ jsx(
Suspense,
{
fallback: /* @__PURE__ */ jsx("div", { className: "p-4 text-sm text-muted-foreground", children: "Loading API explorer..." }),
children: /* @__PURE__ */ jsx(ScalarApiReference, { configuration: scalarConfiguration })
}
) });
}
export {
ApiExplorer,
DEFAULT_OPENAPI_URL
};
//# sourceMappingURL=ApiExplorer.js.map