| ... | ... | @@ -1,7 +1,7 @@ |
| 1 | 1 | import React from "react"; |
| 2 | 2 | import ReactDOM from "react-dom/client"; |
| 3 | 3 | import { ClerkProvider } from "@clerk/react"; |
| 4 | | import { passkeys } from "@clerk/electron/passkeys"; |
| 4 | import { passkeys as electronPasskeys } from "@clerk/electron/passkeys"; |
| 5 | 5 | import { ClerkProvider as ElectronClerkProvider } from "@clerk/electron/react"; |
| 6 | 6 | import { createHashHistory, createBrowserHistory } from "@tanstack/react-router"; |
| 7 | 7 | |
| ... | ... | @@ -30,6 +30,16 @@ if (isElectron) { |
| 30 | 30 | |
| 31 | 31 | const clerkPublishableKey = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY as string | undefined; |
| 32 | 32 | |
| 33 | // @clerk/electron reports passkey autofill as supported but executes the |
| 34 | // "quiet" autofill request as a modal prompt, so Clerk's sign-in form pops an |
| 35 | // OS passkey dialog the moment it mounts. Report autofill as unsupported; the |
| 36 | // explicit "Use passkey" button keeps working. |
| 37 | // Upstream: https://github.com/clerk/javascript/issues/9496 |
| 38 | const passkeys = { |
| 39 | ...electronPasskeys, |
| 40 | isAutoFillSupported: () => Promise.resolve(false), |
| 41 | }; |
| 42 | |
| 33 | 43 | const app = <AppRoot router={router} />; |
| 34 | 44 | |
| 35 | 45 | ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( |