@@ -4,10 +4,11 @@ import {
44 WidgetEvent ,
55} from "@site/src/lib/playground" ;
66import { WidgetInstance } from "friendly-challenge" ;
7- import React , { useEffect , useRef , useState } from "react" ;
7+ import React , { useEffect , useMemo , useRef , useState } from "react" ;
88import PlaygroundForm from "./PlaygroundForm" ;
99import { FriendlyCaptchaSDK , WidgetHandle } from "@friendlycaptcha/sdk" ;
1010import PlaygroundFormHeader from "./PlaygroundFormHeader" ;
11+ import { useColorMode } from "@docusaurus/theme-common" ;
1112
1213const friendlyCaptchaSDK = new FriendlyCaptchaSDK ( {
1314 disableEvalPatching : true ,
@@ -39,9 +40,16 @@ export default function PlaygroundWidgetPreview({
3940 const widgetInstanceRef = useRef < WidgetInstance | WidgetHandle > ( null ) ;
4041 const clenaupFunc = useRef < ( ) => void > ( null ) ;
4142
43+ const { colorMode } = useColorMode ( ) ;
44+
4245 const [ isCreating , setIsCreating ] = useState < boolean > ( false ) ;
4346 const [ widgetState , setWidgetState ] = useState < string > ( "none" ) ;
4447
48+ const resolvedTheme = useMemo (
49+ ( ) => ( settings . theme === "auto" ? colorMode : settings . theme ) ,
50+ [ colorMode , settings . theme ]
51+ ) ;
52+
4553 const getSitekey = ( ) => {
4654 if ( settings . version === "v1" ) {
4755 // v1 doesn't have widget modes, use any sitekey
@@ -142,7 +150,7 @@ export default function PlaygroundWidgetPreview({
142150 element : widgetRef . current ,
143151 sitekey : getSitekey ( ) ,
144152 startMode : settings . startMode ,
145- theme : settings . theme ,
153+ theme : resolvedTheme ,
146154 language :
147155 settings . language !== "auto" ? settings . language : undefined ,
148156 apiEndpoint :
@@ -270,11 +278,11 @@ export default function PlaygroundWidgetPreview({
270278 settings . version ,
271279 settings . widgetMode ,
272280 settings . startMode ,
273- settings . theme ,
274281 settings . endpoint ,
275282 settings . customEndpoint ,
276283 settings . language ,
277284 settings . simulateFalsePositive ,
285+ resolvedTheme ,
278286 ] ) ;
279287
280288 return (
@@ -292,7 +300,7 @@ export default function PlaygroundWidgetPreview({
292300 key = { `widget-${ settings . version } ` }
293301 ref = { widgetRef }
294302 className = {
295- "frc-captcha" + ( settings . theme === "dark" ? " dark" : "" )
303+ "frc-captcha" + ( resolvedTheme === "dark" ? " dark" : "" )
296304 }
297305 />
298306 < button
0 commit comments