'use client'import { createContext, use } from 'react'import type { ReactNode } from 'react'const ReviewContext = createContext({ enabled: true })export function ReviewProvider({ children }: { children: ReactNode }) { return <ReviewContext value={{ enabled: true }}>{children}</ReviewContext>}export function useReview() { return use(ReviewContext)}
See Building Custom Components for component path and client boundary details. Providers nest in array order, with the first entry outermost; providers is listed with the other root slots in Root Components.
React Context is available to Client Components. Keep server-only work in a
Server Component and pass serializable values into the provider.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"FrogBot Docs","colors":{"primary":"#030712","light":"#F9FAFB","dark":"#3acf6a"},"logo":{"light":"https://mintcdn.com/firmware/1jF8tzNdCWHCfika/logo/FrogBotLightGreen.svg?fit=max\u0026auto=format\u0026n=1jF8tzNdCWHCfika\u0026q=85\u0026s=de657b1e4825a6b0d0c7607cc6cd1933","dark":"https://mintcdn.com/firmware/1jF8tzNdCWHCfika/logo/FrogBotLongGreen.svg?fit=max\u0026auto=format\u0026n=1jF8tzNdCWHCfika\u0026q=85\u0026s=eed21f0fb6485cf12699700d0f455341"},"favicon":"https://mintcdn.com/firmware/pvDTxOOi5ftoZro_/favicon.svg?fit=max\u0026auto=format\u0026n=pvDTxOOi5ftoZro_\u0026q=85\u0026s=044d843a7a3071dad0518e3ad6f7d59d","api":{"mdx":{"auth":{"method":"bearer"},"server":"https://app.frogbot.ai/api"}},"background":{"color":{"light":"#F9FAFB","dark":"#0b1120"}},"navbar":{"links":[{"href":"https://github.com/frogbotai/frogbot","type":"github"},{"icon":"discord","href":"https://discord.gg/JBZF7syAnU","label":"Discord"},{"href":"https://x.com/cgilly2fast","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.frogbot.ai"}},"footer":{"socials":{"x":"https://x.com/frogbot_ai","linkedin":"https://www.linkedin.com/company/frogbotai"}},"styling":{"codeblocks":{"theme":"tokyo-night"},"latex":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"firmware","hasAudioNarration":false,"actualSubdomain":"firmware","customDomains":["docs.frogbot.ai"],"gitSource":{"type":"github","owner":"frogbotai","repo":"frogbot","deployBranch":"main","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae354449757c0f6dff43b35","collectionId":"547721b1-d6ea-4b0a-982d-fd3b3bb600a4","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae354449757c0f6dff43b35"},"entitlements":{},"buildId":"6ae54e87335dd0cca3e42f8f","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"General","count":174},{"language":"default","tag":"Features","count":75},{"language":"default","tag":"Basics","count":54},{"language":"default","tag":"Fields","count":34},{"language":"default","tag":"Ecosystem","count":24},{"language":"default","tag":"Cloud","count":21},{"language":"default","tag":"Plugins","count":16},{"language":"default","tag":"Managing Data","count":14},{"language":"default","tag":"Chat","count":11},{"language":"default","tag":"Pieces","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".dark #sidebar-content a,.dark #sidebar-content button{color:#d1d5db!important}.dark #sidebar-content a:hover,.dark #sidebar-content button:hover{color:#f9fafb!important}.dark .sidebar-group-header{color:#e5e7eb}.dark #content-area,.dark #content-area [data-as=p],.dark #content-area li,.dark #content-area p,.dark #content-area span:not(:where(pre, code) span),.dark .prose :where(p, li, span):not(:where(code, code *)){color:#cbd5e1!important}.dark .prose{--tw-prose-invert-body:#cbd5e1;--tw-prose-invert-lead:#cbd5e1;--tw-prose-invert-bullets:#64748b;--tw-prose-invert-counters:#94a3b8;--tw-prose-invert-quotes:#e2e8f0;--tw-prose-invert-captions:#94a3b8;--tw-prose-invert-headings:#f8fafc;--tw-prose-invert-bold:#f8fafc}.dark [data-component-part=card-content],.dark [data-component-part=card-content] *{color:#cbd5e1!important}.dark #table-of-contents a{color:#cbd5e1}.dark #table-of-contents a:hover{color:#f1f5f9}.dark #content-area h1,.dark #content-area h1 *,.dark #content-area h2,.dark #content-area h2 *,.dark #content-area h3,.dark #content-area h3 *,.dark #content-area h4,.dark #content-area h4 *,.dark [data-component-part=card-title]{color:#f8fafc!important}.prompt{background-color:#fff!important;border-color:rgb(var(--gray-950)/.1)!important;color:rgb(var(--gray-700))!important}.dark .prompt{background-color:rgb(var(--background-dark))!important;border-color:rgb(255 255 255/.1)!important;color:#cbd5e1!important}.prompt [data-component-part=prompt-action-copy-button]{background-color:rgb(var(--primary-dark))!important;border-color:transparent!important;color:#fff!important}.prompt [data-component-part=prompt-action-copy-button]:hover{background-color:rgb(var(--primary-dark)/.9)!important}.dark #content-area .prompt [data-component-part=prompt-action-copy-button] *,.prompt [data-component-part=prompt-action-copy-button] *{color:#fff!important}"}],"page":{"pagePath":"custom-components/custom-providers","slug":"/custom-components/custom-providers","pageMetadata":{"title":"Swap in your own React Context providers","label":"Custom Providers","order":30,"desc":"Add React Context providers around the FrogBot Admin Panel.","keywords":"admin, components, providers, context, react","description":null,"href":"/custom-components/custom-providers"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Custom Providers wrap the `,_jsx(_components.a,{href:`/admin/admin-navigation`,children:`Admin Panel`}),` with your own React Context. Register them through `,_jsx(_components.code,{children:`admin.components.providers`}),` in your FrogBot config:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes tokyo-night tokyo-night`,style:{backgroundColor:`#1a1b26`,\"--shiki-dark-bg\":`#1a1b26`,color:`#a9b1d6`,\"--shiki-dark\":`#a9b1d6`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:`import`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` { `}),_jsx(_components.span,{style:{color:`#0DB9D7`,\"--shiki-dark\":`#0DB9D7`},children:`buildConfig`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` }`}),_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:` from`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:` '`}),_jsx(_components.span,{style:{color:`#9ECE6A`,\"--shiki-dark\":`#9ECE6A`},children:`frogbot`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:`export`}),_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:` default`}),_jsx(_components.span,{style:{color:`#7AA2F7`,\"--shiki-dark\":`#7AA2F7`},children:` buildConfig`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#73DACA`,\"--shiki-dark\":`#73DACA`},children:` admin`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`:`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#73DACA`,\"--shiki-dark\":`#73DACA`},children:` components`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`:`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#41A6B5`,\"--shiki-dark\":`#41A6B5`},children:` providers`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`:`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` [`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`'`}),_jsx(_components.span,{style:{color:`#9ECE6A`,\"--shiki-dark\":`#9ECE6A`},children:`/components/ReviewProvider#ReviewProvider`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`'`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:`]`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` }`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` }`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:`})`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Then create the provider as a Client Component:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`tsx`,children:_jsx(_components.pre,{className:`shiki shiki-themes tokyo-night tokyo-night`,style:{backgroundColor:`#1a1b26`,\"--shiki-dark-bg\":`#1a1b26`,color:`#a9b1d6`,\"--shiki-dark\":`#a9b1d6`},language:`tsx`,children:_jsxs(_components.code,{language:`tsx`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`'`}),_jsx(_components.span,{style:{color:`#9ECE6A`,\"--shiki-dark\":`#9ECE6A`},children:`use client`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:`import`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` { `}),_jsx(_components.span,{style:{color:`#0DB9D7`,\"--shiki-dark\":`#0DB9D7`},children:`createContext`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`,`}),_jsx(_components.span,{style:{color:`#0DB9D7`,\"--shiki-dark\":`#0DB9D7`},children:` use`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` }`}),_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:` from`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:` '`}),_jsx(_components.span,{style:{color:`#9ECE6A`,\"--shiki-dark\":`#9ECE6A`},children:`react`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:`import`}),_jsx(_components.span,{style:{color:`#BB9AF7`,\"--shiki-dark\":`#BB9AF7`},children:` type`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` { `}),_jsx(_components.span,{style:{color:`#0DB9D7`,\"--shiki-dark\":`#0DB9D7`},children:`ReactNode`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` }`}),_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:` from`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:` '`}),_jsx(_components.span,{style:{color:`#9ECE6A`,\"--shiki-dark\":`#9ECE6A`},children:`react`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9D7CD8`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9D7CD8`,\"--shiki-dark-font-style\":`italic`},children:`const`}),_jsx(_components.span,{style:{color:`#BB9AF7`,\"--shiki-dark\":`#BB9AF7`},children:` ReviewContext`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:` =`}),_jsx(_components.span,{style:{color:`#7AA2F7`,\"--shiki-dark\":`#7AA2F7`},children:` createContext`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:`({`}),_jsx(_components.span,{style:{color:`#73DACA`,\"--shiki-dark\":`#73DACA`},children:` enabled`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`:`}),_jsx(_components.span,{style:{color:`#FF9E64`,\"--shiki-dark\":`#FF9E64`},children:` true`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` })`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:`export`}),_jsx(_components.span,{style:{color:`#BB9AF7`,\"--shiki-dark\":`#BB9AF7`},children:` function`}),_jsx(_components.span,{style:{color:`#7AA2F7`,\"--shiki-dark\":`#7AA2F7`},children:` ReviewProvider`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:`(`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`{`}),_jsx(_components.span,{style:{color:`#E0AF68`,\"--shiki-dark\":`#E0AF68`},children:` children`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:` }:`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` {`}),_jsx(_components.span,{style:{color:`#C0CAF5`,\"--shiki-dark\":`#C0CAF5`},children:` children`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`:`}),_jsx(_components.span,{style:{color:`#C0CAF5`,\"--shiki-dark\":`#C0CAF5`},children:` ReactNode`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` })`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#BB9AF7`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#BB9AF7`,\"--shiki-dark-font-style\":`italic`},children:` return`}),_jsx(_components.span,{style:{color:`#BA3C97`,\"--shiki-dark\":`#BA3C97`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#DE5971`,\"--shiki-dark\":`#DE5971`},children:`ReviewContext `}),_jsx(_components.span,{style:{color:`#BB9AF7`,\"--shiki-dark\":`#BB9AF7`},children:`value`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`=`}),_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:`{`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:`{`}),_jsx(_components.span,{style:{color:`#73DACA`,\"--shiki-dark\":`#73DACA`},children:` enabled`}),_jsx(_components.span,{style:{color:`#89DDFF`,\"--shiki-dark\":`#89DDFF`},children:`:`}),_jsx(_components.span,{style:{color:`#FF9E64`,\"--shiki-dark\":`#FF9E64`},children:` true`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` }`}),_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:`}`}),_jsx(_components.span,{style:{color:`#BA3C97`,\"--shiki-dark\":`#BA3C97`},children:`>`}),_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:`{`}),_jsx(_components.span,{style:{color:`#C0CAF5`,\"--shiki-dark\":`#C0CAF5`},children:`children`}),_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:`}`}),_jsx(_components.span,{style:{color:`#BA3C97`,\"--shiki-dark\":`#BA3C97`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#DE5971`,\"--shiki-dark\":`#DE5971`},children:`ReviewContext`}),_jsx(_components.span,{style:{color:`#BA3C97`,\"--shiki-dark\":`#BA3C97`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7DCFFF`,\"--shiki-dark\":`#7DCFFF`},children:`export`}),_jsx(_components.span,{style:{color:`#BB9AF7`,\"--shiki-dark\":`#BB9AF7`},children:` function`}),_jsx(_components.span,{style:{color:`#7AA2F7`,\"--shiki-dark\":`#7AA2F7`},children:` useReview`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:`()`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#BB9AF7`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#BB9AF7`,\"--shiki-dark-font-style\":`italic`},children:` return`}),_jsx(_components.span,{style:{color:`#7AA2F7`,\"--shiki-dark\":`#7AA2F7`},children:` use`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:`(`}),_jsx(_components.span,{style:{color:`#C0CAF5`,\"--shiki-dark\":`#C0CAF5`},children:`ReviewContext`}),_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#9ABDF5`,\"--shiki-dark\":`#9ABDF5`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/custom-components/overview#building-custom-components`,children:`Building Custom Components`}),` for component path and client boundary details. Providers nest in array order, with the first entry outermost; `,_jsx(_components.code,{children:`providers`}),` is listed with the other root slots in `,_jsx(_components.a,{href:`/custom-components/root-components#config-options`,children:`Root Components`}),`.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`React Context is available to Client Components. Keep server-only work in a\nServer Component and pass serializable values into the provider.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":"tokyo-night"},"config":{},"pageMetadata":{"title":"Swap in your own React Context providers","label":"Custom Providers","order":30,"desc":"Add React Context providers around the FrogBot Admin Panel.","keywords":"admin, components, providers, context, react","description":null,"href":"/custom-components/custom-providers"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"firmware","siteName":"FrogBot Docs","title":"Swap in your own React Context providers - FrogBot Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T14:12:55.023Z","originalFileLocation":"custom-components/custom-providers.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"FrogBot Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/firmware/-rhCEx-k_rFkB_Pu/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/firmware/-rhCEx-k_rFkB_Pu/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/firmware/-rhCEx-k_rFkB_Pu/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/firmware/-rhCEx-k_rFkB_Pu/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/firmware/-rhCEx-k_rFkB_Pu/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/firmware/-rhCEx-k_rFkB_Pu/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/firmware/-rhCEx-k_rFkB_Pu/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/firmware/-rhCEx-k_rFkB_Pu/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/firmware/-rhCEx-k_rFkB_Pu/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Swap in your own React Context providers - FrogBot Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"FrogBot Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.frogbot.ai/custom-components/custom-providers\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://firmware.mintlify.app/_mintlify/api/og/v2?division=Custom+Components\u0026amp;title=Swap+in+your+own+React+Context+providers\u0026amp;theme=f4bccae87e3aea4ea0fb024f\u0026amp;signature=78d60b24680378f6608f552763e792b27e90ab751032b406b84df3186d1794d3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Swap in your own React Context providers - FrogBot Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://firmware.mintlify.app/_mintlify/api/og/v2?division=Custom+Components\u0026amp;title=Swap+in+your+own+React+Context+providers\u0026amp;theme=f4bccae87e3aea4ea0fb024f\u0026amp;signature=78d60b24680378f6608f552763e792b27e90ab751032b406b84df3186d1794d3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/firmware/-rhCEx-k_rFkB_Pu/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"FrogBot Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#030712\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.frogbot.ai/custom-components/custom-providers\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/custom-components/custom-providers.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.frogbot.ai/#organization\",\"name\":\"FrogBot Docs\",\"url\":\"https://docs.frogbot.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/firmware/1jF8tzNdCWHCfika/logo/FrogBotLightGreen.svg?fit=max\u0026auto=format\u0026n=1jF8tzNdCWHCfika\u0026q=85\u0026s=de657b1e4825a6b0d0c7607cc6cd1933\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.frogbot.ai#website\",\"name\":\"FrogBot Docs\",\"url\":\"https://docs.frogbot.ai\",\"publisher\":{\"@id\":\"https://docs.frogbot.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.frogbot.ai/custom-components/custom-providers#webpage\",\"url\":\"https://docs.frogbot.ai/custom-components/custom-providers\",\"name\":\"Swap in your own React Context providers\",\"dateModified\":\"2026-10-29T14:12:55.023Z\",\"isPartOf\":{\"@id\":\"https://docs.frogbot.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.frogbot.ai/custom-components/custom-providers#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.frogbot.ai/custom-components/custom-providers#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Features\",\"item\":\"https://docs.frogbot.ai/admin/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Custom Components\",\"item\":\"https://docs.frogbot.ai/custom-components/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Swap in your own React Context providers\",\"item\":\"https://docs.frogbot.ai/custom-components/custom-providers\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.frogbot.ai/custom-components/custom-providers#article\",\"headline\":\"Swap in your own React Context providers\",\"name\":\"Swap in your own React Context providers\",\"url\":\"https://docs.frogbot.ai/custom-components/custom-providers\",\"mainEntityOfPage\":{\"@id\":\"https://docs.frogbot.ai/custom-components/custom-providers#webpage\"},\"dateModified\":\"2026-10-29T14:12:55.023Z\",\"publisher\":{\"@id\":\"https://docs.frogbot.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.frogbot.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"FrogBot Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"FrogBot Docs","nav":{"global":{},"tabs":[{"tab":"General","groups":[{"group":"Start here","pages":[{"title":"What is FrogBot?","sidebarTitle":"What is FrogBot?","href":""},{"title":"Set up FrogBot step by step","sidebarTitle":"Step-by-step setup","href":"/getting-started/setup"},{"title":"Start with a coding agent","sidebarTitle":"Start with a coding agent","href":"/getting-started/coding-agent"},{"title":"Installation","sidebarTitle":"Installation","href":"/getting-started/installation"},{"title":"CLI","sidebarTitle":"CLI","href":"/getting-started/cli"},{"title":"FrogBot concepts","sidebarTitle":"Concepts","href":"/getting-started/concepts"}]},{"group":"Basics","pages":[{"group":"Configuration","expanded":false,"pages":[{"title":"Configuration","sidebarTitle":"Overview","href":"/configuration/overview"},{"title":"Collection Configs","sidebarTitle":"Collections","href":"/configuration/collections"},{"title":"Environment Variables","sidebarTitle":"Environment Variables","href":"/configuration/environment-vars"},{"title":"I18n","sidebarTitle":"I18n","href":"/configuration/i18n"},{"title":"Localization","sidebarTitle":"Localization","href":"/configuration/localization"}]},{"group":"Database","expanded":false,"pages":[{"title":"Database","sidebarTitle":"Overview","href":"/database/overview"},{"title":"MongoDB","sidebarTitle":"MongoDB","href":"/database/mongodb"},{"title":"Postgres","sidebarTitle":"Postgres","href":"/database/postgres"},{"title":"SQLite","sidebarTitle":"SQLite","href":"/database/sqlite"},{"title":"Migrations","sidebarTitle":"Migrations","href":"/database/migrations"},{"title":"Transactions","href":"/database/transactions"},{"title":"Indexes","sidebarTitle":"Indexes","href":"/database/indexes"}]},{"group":"Search","expanded":false,"pages":[{"title":"Collection search","sidebarTitle":"Overview","href":"/search/overview"}]},{"group":"Access Control","expanded":false,"pages":[{"title":"Access Control","sidebarTitle":"Overview","href":"/access-control/overview"},{"title":"Collection Access Control","sidebarTitle":"Collections","href":"/access-control/collections"},{"title":"Field-level Access Control","sidebarTitle":"Fields","href":"/access-control/fields"}]},{"group":"Hooks","expanded":false,"pages":[{"title":"Hooks Overview","sidebarTitle":"Overview","href":"/hooks/overview"},{"title":"Collection Hooks","sidebarTitle":"Collections","href":"/hooks/collections"},{"title":"Field Hooks","sidebarTitle":"Fields","href":"/hooks/fields"},{"title":"Context","sidebarTitle":"Context","href":"/hooks/context"}]},{"group":"Fields","expanded":false,"pages":[{"title":"Fields Overview","sidebarTitle":"Overview","href":"/fields/overview"},{"title":"Text Field","sidebarTitle":"Text","href":"/fields/text"},{"title":"Textarea Field","sidebarTitle":"Textarea","href":"/fields/textarea"},{"title":"Number Field","sidebarTitle":"Number","href":"/fields/number"},{"title":"Email Field","sidebarTitle":"Email","href":"/fields/email"},{"title":"Checkbox Field","sidebarTitle":"Checkbox","href":"/fields/checkbox"},{"title":"Date Field","sidebarTitle":"Date","href":"/fields/date"},{"title":"Select Field","sidebarTitle":"Select","href":"/fields/select"},{"title":"Radio Group Field","sidebarTitle":"Radio Group","href":"/fields/radio"},{"title":"Relationship Field","sidebarTitle":"Relationship","href":"/fields/relationship"},{"title":"Upload Field","sidebarTitle":"Upload","href":"/fields/upload"},{"title":"Rich Text Field","sidebarTitle":"Rich Text","href":"/fields/rich-text"},{"title":"Array Field","sidebarTitle":"Array","href":"/fields/array"},{"title":"Blocks Field","sidebarTitle":"Blocks","href":"/fields/blocks"},{"title":"Group Field","sidebarTitle":"Group","href":"/fields/group"},{"title":"Tabs Field","sidebarTitle":"Tabs","href":"/fields/tabs"},{"title":"Row Field","sidebarTitle":"Row","href":"/fields/row"},{"title":"Collapsible Field","sidebarTitle":"Collapsible","href":"/fields/collapsible"},{"title":"Join Field","sidebarTitle":"Join","href":"/fields/join"},{"title":"JSON Field","sidebarTitle":"JSON","href":"/fields/json"},{"title":"Vector field","sidebarTitle":"Vector","href":"/fields/vector"},{"title":"Code Field","sidebarTitle":"Code","href":"/fields/code"},{"title":"Point Field","sidebarTitle":"Point","href":"/fields/point"},{"title":"UI Field","sidebarTitle":"UI","href":"/fields/ui"},{"group":"Field kinds","pages":[{"title":"Money Field","sidebarTitle":"Money","href":"/fields/money"},{"title":"Percent Field","sidebarTitle":"Percent","href":"/fields/percent"},{"title":"Rating Field","sidebarTitle":"Rating","href":"/fields/rating"},{"title":"Duration Field","sidebarTitle":"Duration","href":"/fields/duration"},{"title":"URL Field","sidebarTitle":"URL","href":"/fields/url"},{"title":"Phone Field","sidebarTitle":"Phone","href":"/fields/phone"},{"title":"Barcode Field","sidebarTitle":"Barcode","href":"/fields/barcode"},{"title":"Autonumber Field","sidebarTitle":"Autonumber","href":"/fields/autonumber"},{"title":"AI Field","sidebarTitle":"AI","href":"/fields/ai"}]},{"title":"Fields Generated by FrogBot","sidebarTitle":"Generated Fields","href":"/fields/default-fields"}]}]},{"group":"Managing Data","pages":[{"group":"Local API","expanded":false,"pages":[{"title":"Local API","sidebarTitle":"Overview","href":"/local-api/overview"},{"title":"Respecting Access Control with Local API Operations","sidebarTitle":"Access Control","href":"/local-api/access-control"},{"title":"Using Local API Operations with Server Functions","sidebarTitle":"Server Functions","href":"/local-api/server-functions"},{"title":"Using FrogBot outside Next.js","sidebarTitle":"Outside Next.js","href":"/local-api/outside-nextjs"}]},{"group":"REST API","expanded":false,"pages":[{"title":"REST API","sidebarTitle":"Overview","href":"/rest-api/overview"}]},{"group":"GraphQL","expanded":false,"pages":[{"title":"Enable GraphQL","sidebarTitle":"Enable GraphQL","href":"/graphql/enable"},{"title":"GraphQL Overview","sidebarTitle":"Overview","href":"/graphql/overview"},{"title":"GraphQL Schema","sidebarTitle":"GraphQL Schema","href":"/graphql/graphql-schema"},{"title":"Adding your own Queries and Mutations","sidebarTitle":"Custom Queries and Mutations","href":"/graphql/extending"}]},{"group":"Queries","expanded":false,"pages":[{"title":"Querying your Documents","sidebarTitle":"Overview","href":"/queries/overview"},{"title":"Depth","sidebarTitle":"Depth","href":"/queries/depth"},{"title":"Pagination","sidebarTitle":"Pagination","href":"/queries/pagination"},{"title":"Select","sidebarTitle":"Select","href":"/queries/select"},{"title":"Sort","sidebarTitle":"Sort","href":"/queries/sort"}]}]},{"group":"Features","pages":[{"group":"Admin","expanded":false,"pages":[{"title":"Admin panel","sidebarTitle":"Overview","href":"/admin/overview"},{"title":"Admin navigation","sidebarTitle":"Admin navigation","href":"/admin/admin-navigation"},{"title":"Collection board","href":"/admin/collection-board"},{"title":"Collection calendar","href":"/admin/collection-calendar"}]},{"group":"Authentication","expanded":false,"pages":[{"title":"Authentication Overview","sidebarTitle":"Overview","href":"/authentication/overview"},{"title":"OAuth sign-in","sidebarTitle":"Sign-in","href":"/authentication/sign-in"},{"title":"Authentication Operations","sidebarTitle":"Operations","href":"/authentication/operations"},{"title":"JWT Strategy","sidebarTitle":"JWT Strategy","href":"/authentication/jwt"},{"title":"Cookie Strategy","sidebarTitle":"Cookie Strategy","href":"/authentication/cookies"},{"title":"Authentication Emails","sidebarTitle":"Email Verification","href":"/authentication/email"},{"title":"API Key Strategy","sidebarTitle":"API Key Strategy","href":"/authentication/api-keys"},{"title":"Token Data","sidebarTitle":"Token Data","href":"/authentication/token-data"},{"title":"Custom Strategies","sidebarTitle":"Custom Strategies","href":"/authentication/custom-strategies"}]},{"group":"Upload","expanded":false,"pages":[{"title":"Uploads","sidebarTitle":"Overview","href":"/upload/overview"},{"title":"Storage Adapters","sidebarTitle":"Storage Adapters","href":"/upload/storage-adapters"},{"title":"Files","sidebarTitle":"Files","href":"/upload/files"}]},{"group":"Jobs Queue","expanded":false,"pages":[{"title":"Jobs","href":"/jobs-queue/overview"},{"title":"Job workers","href":"/jobs-queue/workers"}]},{"group":"Versions","expanded":false,"pages":[{"title":"Versions","sidebarTitle":"Overview","href":"/versions/overview"},{"title":"Drafts","sidebarTitle":"Drafts","href":"/versions/drafts"},{"title":"Autosave","sidebarTitle":"Autosave","href":"/versions/autosave"}]},{"group":"Email","expanded":false,"pages":[{"title":"Email","sidebarTitle":"Overview","href":"/email/overview"}]},{"group":"Trash","expanded":false,"pages":[{"title":"Trash","sidebarTitle":"Overview","href":"/trash/overview"}]},{"group":"TypeScript","expanded":false,"pages":[{"title":"TypeScript - Overview","sidebarTitle":"Overview","href":"/typescript/overview"},{"title":"Generating TypeScript Interfaces","sidebarTitle":"Generating Types","href":"/typescript/generating-types"}]},{"group":"Troubleshooting","expanded":false,"pages":[{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","href":"/troubleshooting/troubleshooting"}]},{"group":"Custom Components","expanded":false,"pages":[{"title":"Swap in your own React components","href":"/custom-components/overview"},{"title":"Root Components","description":null,"href":"/custom-components/root-components"},{"title":"Swap in your own React Context providers","href":"/custom-components/custom-providers"},{"title":"Customizing Views","description":null,"href":"/custom-components/custom-views"},{"title":"Dashboard Widgets","href":"/custom-components/dashboard"},{"title":"Document Views","href":"/custom-components/document-views"},{"title":"Edit View","href":"/custom-components/edit-view"},{"title":"List View","href":"/custom-components/list-view"}]},{"group":"Rich Text","expanded":false,"pages":[{"title":"Rich Text Editor","sidebarTitle":"Overview","href":"/rich-text/overview"},{"title":"Official Features","sidebarTitle":"Official Features","href":"/rich-text/official-features"},{"title":"Lexical Converters","sidebarTitle":"Converters","href":"/rich-text/converters"},{"title":"Converting JSX","sidebarTitle":"Converting JSX","href":"/rich-text/converting-jsx"},{"title":"Converting HTML","sidebarTitle":"Converting HTML","href":"/rich-text/converting-html"},{"title":"Converting Markdown","sidebarTitle":"Converting Markdown","href":"/rich-text/converting-markdown"},{"title":"Converting Plain Text","sidebarTitle":"Converting Plain Text","href":"/rich-text/converting-plaintext"},{"title":"Blocks","sidebarTitle":"Blocks","href":"/rich-text/blocks"},{"title":"Custom Features","sidebarTitle":"Custom Features","href":"/rich-text/custom-features"},{"title":"Rendering on demand (Experimental)","sidebarTitle":"Rendering on demand","href":"/rich-text/rendering-on-demand"},{"title":"Views (Experimental)","sidebarTitle":"Views","href":"/rich-text/views"}]},{"group":"Live Preview","expanded":false,"pages":[{"title":"Live Preview","sidebarTitle":"Overview","href":"/live-preview/overview"},{"title":"Implementing Live Preview in your frontend","sidebarTitle":"Frontend","href":"/live-preview/frontend"},{"title":"Server-side Live Preview","sidebarTitle":"Server-side","href":"/live-preview/server"},{"title":"Client-side Live Preview","sidebarTitle":"Client-side","href":"/live-preview/client"}]},{"group":"AI","expanded":false,"pages":[{"title":"AI","sidebarTitle":"AI","href":"/ai/overview"}]},{"group":"Agents","expanded":false,"pages":[{"title":"Agents","sidebarTitle":"Agents","href":"/agents/overview"}]},{"group":"Chat","expanded":false,"pages":[{"title":"Chat persistence","sidebarTitle":"Overview","href":"/chat/overview"},{"title":"Ask the user questions","sidebarTitle":"Questions","href":"/chat/questions"},{"title":"Turns and queued messages","sidebarTitle":"Turns and queues","href":"/chat/turns"},{"title":"Chat manifest","sidebarTitle":"Manifest","api":"GET https://app.frogbot.ai/api/frogbot","href":"/chat/manifest"},{"title":"Training data export","sidebarTitle":"Training data","href":"/chat/training-data"},{"title":"Install the chat UI","sidebarTitle":"UI installation","href":"/chat/ui-installation"},{"title":"Set up the chat provider","sidebarTitle":"Provider setup","href":"/chat/ui-provider"},{"title":"Render Chat","sidebarTitle":"Chat component","href":"/chat/ui-chat"},{"title":"Theme and white-label the chat UI","sidebarTitle":"Theming","href":"/chat/ui-theming"},{"title":"Register tools and artifacts","sidebarTitle":"Tools and artifacts","href":"/chat/ui-registries"},{"title":"Build your own chat shell","sidebarTitle":"Build your own shell","href":"/chat/ui-custom-shell"}]},{"group":"MCP","expanded":false,"pages":[{"title":"MCP servers","sidebarTitle":"MCP servers","href":"/mcp/overview"}]},{"group":"Connections","expanded":false,"pages":[{"title":"Connections","sidebarTitle":"Connections","href":"/connections/overview"}]},{"group":"Pieces","expanded":false,"pages":[{"title":"Pieces","sidebarTitle":"Pieces","href":"/pieces/overview"},{"title":"Available pieces","sidebarTitle":"Available pieces","href":"/pieces/index"},{"title":"Triggers","href":"/pieces/triggers"},{"title":"Web search via pieces","sidebarTitle":"Web search","href":"/pieces/web-search"},{"title":"Slack","href":"/pieces/slack"},{"title":"Discord","href":"/pieces/discord"},{"title":"Microsoft Teams","href":"/pieces/teams"},{"title":"Telegram","href":"/pieces/telegram"},{"title":"GitHub","href":"/pieces/github"},{"title":"Linear","href":"/pieces/linear"},{"title":"Channel questions","href":"/pieces/channel-questions"}]}]},{"group":"Ecosystem","pages":[{"group":"Plugins","expanded":false,"pages":[{"title":"Plugins","sidebarTitle":"Overview","href":"/plugins/overview"},{"title":"AI policy","href":"/plugins/ai-policy"},{"title":"API keys","sidebarTitle":"API keys","href":"/plugins/api-keys"},{"title":"Audit log","href":"/plugins/audit-log"},{"title":"AI request capture","href":"/plugins/capture"},{"title":"Dojo","href":"/plugins/dojo"},{"title":"Roles","sidebarTitle":"Roles","href":"/plugins/roles"},{"title":"Usage reports","href":"/plugins/usage-reports"},{"title":"MCP server","sidebarTitle":"MCP server","href":"/plugins/mcp"},{"title":"Import and export","href":"/plugins/import-export"},{"title":"Nested documents","href":"/plugins/nested-docs"},{"title":"Redirects","href":"/plugins/redirects"},{"title":"Sentry","href":"/plugins/sentry"},{"title":"SEO","href":"/plugins/seo"},{"title":"Stripe","href":"/plugins/stripe"},{"title":"Building Your Own Plugin","sidebarTitle":"Build Your Own","href":"/plugins/build-your-own"}]},{"group":"Gateway","expanded":false,"pages":[{"title":"Gateway","sidebarTitle":"Overview","href":"/gateway/overview"},{"title":"Providers","sidebarTitle":"Providers","href":"/gateway/providers"},{"title":"Configuration","sidebarTitle":"Configuration","href":"/gateway/configuration"},{"title":"Embedding","sidebarTitle":"Embedding","href":"/gateway/embedding"},{"title":"Hooks","sidebarTitle":"Hooks","href":"/gateway/hooks"},{"title":"Observability","sidebarTitle":"Observability","href":"/gateway/observability"},{"title":"Errors","sidebarTitle":"Errors","href":"/gateway/errors"}]},{"group":"Agent Skills","expanded":false,"pages":[{"title":"Coding agents","href":"/skills/coding-agents"}]}]},{"group":"Deployment","pages":[{"group":"Deployment","expanded":false,"pages":[{"title":"Deployment","sidebarTitle":"Deployment","href":"/deployment/overview"}]}]}]},{"tab":"Cloud","pages":[{"title":"Cloud","href":"/subscription-intro"}]}]},"basePath":"","title":"Swap in your own React Context providers - FrogBot Docs","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}