feat: add clerk to vite-template

This commit is contained in:
afiqzudinhadi 2025-06-23 14:50:04 +08:00
parent da8aaa1db6
commit 14ef2719c7
4 changed files with 65 additions and 31 deletions

View file

@ -10,6 +10,7 @@
"lint": "eslint src/ --max-warnings 0" "lint": "eslint src/ --max-warnings 0"
}, },
"dependencies": { "dependencies": {
"@clerk/clerk-react": "^5.32.0",
"@repo/ui": "*", "@repo/ui": "*",
"react": "^18.3.1", "react": "^18.3.1",
"react-dom": "^18.3.1" "react-dom": "^18.3.1"

View file

@ -10,9 +10,29 @@ import {
CardHeader, CardHeader,
CardTitle, CardTitle,
} from "@repo/ui/components/card"; } from "@repo/ui/components/card";
import {
SignedIn,
SignedOut,
SignInButton,
UserButton,
} from "@clerk/clerk-react";
function App() { function App() {
return ( return (
<div>
<header className="flex items-center justify-end py-4 px-6 bg-white shadow-sm mb-6">
<div>
<SignedOut>
<SignInButton mode="modal">
<Button variant="outline">Sign In</Button>
</SignInButton>
</SignedOut>
<SignedIn>
<UserButton afterSignOutUrl="/" />
</SignedIn>
</div>
</header>
<div className="container"> <div className="container">
<h1 className="title"> <h1 className="title">
Admin <br /> Admin <br />
@ -38,6 +58,7 @@ function App() {
</Link> </Link>
</p> </p>
</div> </div>
</div>
); );
} }

View file

@ -2,13 +2,24 @@ import React from "react";
import { createRoot } from "react-dom/client"; import { createRoot } from "react-dom/client";
import App from "./app"; import App from "./app";
import "./index.css"; import "./index.css";
import { ClerkProvider } from "@clerk/clerk-react";
const PUBLISHABLE_KEY = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY;
if (!PUBLISHABLE_KEY) {
throw new Error(
"VITE_PUBLISHABLE_KEY is not defined. Please set it in your environment variables."
);
}
const el = document.getElementById("root"); const el = document.getElementById("root");
if (el) { if (el) {
const root = createRoot(el); const root = createRoot(el);
root.render( root.render(
<React.StrictMode> <React.StrictMode>
<ClerkProvider publishableKey={PUBLISHABLE_KEY} afterSignOutUrl="/">
<App /> <App />
</ClerkProvider>
</React.StrictMode> </React.StrictMode>
); );
} else { } else {

1
package-lock.json generated
View file

@ -276,6 +276,7 @@
"apps/vite-template": { "apps/vite-template": {
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"@clerk/clerk-react": "^5.32.0",
"@repo/ui": "*", "@repo/ui": "*",
"react": "^18.3.1", "react": "^18.3.1",
"react-dom": "^18.3.1" "react-dom": "^18.3.1"