React
Use prebuilt React components to add the Docs Embed to your React application
Steps
1
npm install @gitbook/embed2
import {
GitBookProvider,
GitBookFrame,
} from "@gitbook/embed/react";3
function App() {
return (
<GitBookProvider siteURL="https://docs.company.com">
<YourAppContent />
</GitBookProvider>
);
}4
function App() {
return (
<GitBookProvider siteURL="https://docs.company.com">
<div className="app">
<YourAppContent />
<GitBookFrame
visitor={{
token: 'your-jwt-token', // Optional: for Adaptive Content or Authenticated Access
unsignedClaims: { userId: '123' } // Optional: custom claims for dynamic expressions
}}
/>
</div>
</GitBookProvider>
);
}5
<GitBookProvider siteURL="https://docs.company.com">
<GitBookFrame
trademark={false}
tabs={['assistant', 'search', 'docs']}
colorScheme="dark"
greeting={{ title: 'Welcome!', subtitle: 'How can I help?' }}
assistantName="Support Copilot"
closeButton={true}
suggestions={['What is GitBook?', 'How do I get started?']}
actions={[
{
icon: 'circle-question',
label: 'Contact Support',
onClick: () => window.open('https://support.example.com', '_blank')
}
]}
tools={[/* ... */]}
visitor={{
token: 'your-jwt-token',
unsignedClaims: { userId: '123' }
}}
/>
</GitBookProvider>6
import { useGitBook } from "@gitbook/embed/react";
function HelpButton() {
const gitbook = useGitBook();
const frameURL = gitbook.getFrameURL({ visitor: { token: '...' } });
const handleNavigate = () => {
const iframe = document.createElement('iframe');
iframe.src = frameURL;
const frame = gitbook.createFrame(iframe);
frame.navigateToPage('/getting-started');
frame.navigateToAssistant();
frame.postUserMessage('How do I get started?');
};
return <button onClick={handleNavigate}>Get Help</button>;
}7
function App() {
const [showEmbed, setShowEmbed] = useState(false);
return (
<GitBookProvider siteURL="https://docs.company.com">
<button onClick={() => setShowEmbed(true)}>Get Help</button>
{showEmbed && <GitBookFrame />}
</GitBookProvider>
);
}8
import dynamic from "next/dynamic";
const GitBookProvider = dynamic(
() => import("@gitbook/embed/react").then((mod) => mod.GitBookProvider),
{ ssr: false }
);
const GitBookFrame = dynamic(
() => import("@gitbook/embed/react").then((mod) => mod.GitBookFrame),
{ ssr: false }
);Props & Configuration
Prop
Type
Required
Default
Description
Prop
Type
Required
Default
Description
Configuration Options
tabs
tabscolorScheme
colorSchemeactions
actionsgreeting
greetingassistantName
assistantNamecloseButton
closeButtonsuggestions
suggestionstrademark
trademarktools
toolsvisitor (Authenticated Access)
visitor (Authenticated Access)Common pitfalls
Last updated
Was this helpful?