UNPKG

docusaurus-theme-redoc

Version:
34 lines (33 loc) 1.2 kB
import React from 'react'; import useSpecData from '@theme/useSpecData'; import clsx from 'clsx'; import '../../global'; import { RedocStandalone } from 'redoc'; import { useSpecOptions } from '../../utils/useSpecOptions'; import './styles.css'; import ServerRedoc from './ServerRedoc'; const isDevMode = process.env.NODE_ENV === 'development'; /*! * Redocusaurus * https://redocusaurus.vercel.app/ * (c) 2025 Rohit Gohri * Released under the MIT License */ function Redoc(initProps) { // eslint-disable-next-line react/destructuring-assignment const specProps = useSpecData(initProps.id, initProps.spec); const finalProps = { ...specProps, ...initProps, }; const { spec, className, isSpecFile = spec != null, url, themeId, optionsOverrides, } = finalProps; const { options } = useSpecOptions(themeId, optionsOverrides); const enableServerRendering = spec != null && (!isDevMode || isSpecFile); if (enableServerRendering) { return <ServerRedoc {...finalProps} spec={spec}/>; } return (<div className={clsx(['redocusaurus', className])}> <RedocStandalone specUrl={url} options={options}/> </div>); } export default Redoc;