@@ -1503,7 +1503,7 @@ let initialReContent = `Js.log("Hello Reason 3.6!");`
15031503
15041504@react.component
15051505let make = (~bundleBaseUrl : string , ~versions : array <string >) => {
1506- let router = Next . Router . useRouter ()
1506+ let ( searchParams , setSearchParams ) = ReactRouter . useSearchParams ()
15071507
15081508 let versions =
15091509 versions
@@ -1523,7 +1523,7 @@ let make = (~bundleBaseUrl: string, ~versions: array<string>) => {
15231523 | [v ] => Some (v ) // only single version available. maybe local dev.
15241524 | versions => {
15251525 let lastStableVersion = versions -> Array .find (version => version .preRelease -> Option .isNone )
1526- switch Dict .get (router . query , (CompilerManagerHook .Version :> string )) {
1526+ switch searchParams -> Object .get ((CompilerManagerHook .Version :> string )) {
15271527 | Some (version ) => version -> Semver .parse
15281528 | None =>
15291529 switch Url .getVersionFromStorage (Playground ) {
@@ -1534,20 +1534,20 @@ let make = (~bundleBaseUrl: string, ~versions: array<string>) => {
15341534 }
15351535 }
15361536
1537- let initialLang = switch Dict .get (router . query , (CompilerManagerHook .Ext :> string )) {
1537+ let initialLang = switch searchParams -> Object .get ((CompilerManagerHook .Ext :> string )) {
15381538 | Some ("re" ) => Api .Lang .Reason
15391539 | _ => Api .Lang .Res
15401540 }
15411541
1542- let initialModuleSystem = Dict .get (router . query , (Module :> string ))
1543- let initialJsxPreserveMode = Dict .get (router . query , (JsxPreserve :> string ))-> Option .isSome
1542+ let initialModuleSystem = searchParams -> Object .get ((Module :> string ))
1543+ let initialJsxPreserveMode = searchParams -> Object .get ((JsxPreserve :> string ))-> Option .isSome
15441544
15451545 let initialExperimentalFeatures =
1546- Dict . get ( router . query , ( Experiments :> string )) -> Option . mapOr ([], str =>
1547- str -> String . split ( "," ) -> Array . map ( String . trim )
1548- )
1546+ searchParams
1547+ -> Object . get (( Experiments :> string ) )
1548+ -> Option . mapOr ([], str => str -> String . split ( "," ) -> Array . map ( String . trim ) )
15491549
1550- let initialContent = switch (Dict .get (router . query , (Code :> string )), initialLang ) {
1550+ let initialContent = switch (searchParams -> Object .get ((Code :> string )), initialLang ) {
15511551 | (Some (compressedCode ), _ ) => LzString .decompressToEncodedURIComponent (compressedCode )
15521552 | (None , Reason ) => initialReContent
15531553 | (None , Res ) =>
@@ -1597,7 +1597,11 @@ let make = (~bundleBaseUrl: string, ~versions: array<string>) => {
15971597 we take any success results and set the editor code to the new formatted code */
15981598 switch compilerState {
15991599 | Ready ({result : FinalResult .Nothing } as ready ) =>
1600- compilerDispatch (CompileCode (ready .targetLang , editorCode .current ))
1600+ try {
1601+ compilerDispatch (CompileCode (ready .targetLang , editorCode .current ))
1602+ } catch {
1603+ | err => Console .error (err )
1604+ }
16011605 | Ready ({result : FinalResult .Conv (Api .ConversionResult .Success ({code }))}) =>
16021606 editorCode .current = code
16031607 | _ => ()
@@ -1617,7 +1621,12 @@ let make = (~bundleBaseUrl: string, ~versions: array<string>) => {
16171621 React .useEffect (() => {
16181622 timeoutCompile .current = () =>
16191623 switch compilerState {
1620- | Ready (ready ) => compilerDispatch (CompileCode (ready .targetLang , editorCode .current ))
1624+ | Ready (ready ) =>
1625+ try {
1626+ compilerDispatch (CompileCode (ready .targetLang , editorCode .current ))
1627+ } catch {
1628+ | err => Console .error (err )
1629+ }
16211630 | _ => ()
16221631 }
16231632
0 commit comments