From a69c662d799438e63436e13c87c1ed3fcfb5a014 Mon Sep 17 00:00:00 2001 From: IndieCoderMM Date: Thu, 10 Aug 2023 23:02:19 +0630 Subject: [PATCH 1/7] Set up clerk --- package-lock.json | 72 ++++++++++++++++++++++++++++++++ package.json | 1 + src/app/App.tsx | 29 ++++++++++--- src/common/components/Navbar.tsx | 4 +- src/main.tsx | 1 + src/pages/Home.tsx | 2 +- src/pages/SnippetsFeed.tsx | 4 +- 7 files changed, 102 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 48955c0..8e48ff2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "snippit-frontend", "version": "0.0.0", "dependencies": { + "@clerk/clerk-react": "^4.23.2", "@headlessui/react": "^1.7.15", "@heroicons/react": "^2.0.18", "@reduxjs/toolkit": "^1.9.5", @@ -429,6 +430,56 @@ "node": ">=6.9.0" } }, + "node_modules/@clerk/clerk-react": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@clerk/clerk-react/-/clerk-react-4.23.2.tgz", + "integrity": "sha512-6MJa8ecr22qHhTfdkMMIJGctMBqj01fLJ4vmfZvr22tIkwkPXoeYJd5XcFKuSoO2dXc1eHD/F9i/HdCqGm68gw==", + "dependencies": { + "@clerk/shared": "^0.21.0", + "@clerk/types": "^3.49.0", + "tslib": "2.4.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16" + } + }, + "node_modules/@clerk/clerk-react/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/@clerk/shared": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@clerk/shared/-/shared-0.21.0.tgz", + "integrity": "sha512-tkV2OAddFMPBHDjcMbtNNrV3NQD+hGKf2hn3TKv1mRJNZ2oR5Bfk8r0bkaqwoqxX8ndkbHLCa9gwR8SWO7GGow==", + "dependencies": { + "glob-to-regexp": "0.4.1", + "js-cookie": "3.0.1", + "swr": "1.3.0" + }, + "peerDependencies": { + "react": ">=16" + } + }, + "node_modules/@clerk/types": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/@clerk/types/-/types-3.49.0.tgz", + "integrity": "sha512-vAx5R/iYfsgIaIDMiDr6ZKQnAneAmRrUVYz6KCtPG6/hnEAnRYhwXpEUi89e5G0BFmuUfSxe/N/Anfc1PNteXQ==", + "dependencies": { + "csstype": "3.1.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@clerk/types/node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, "node_modules/@esbuild/android-arm": { "version": "0.18.12", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.12.tgz", @@ -2347,6 +2398,11 @@ "node": ">=10.13.0" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -2553,6 +2609,14 @@ "jiti": "bin/jiti.js" } }, + "node_modules/js-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz", + "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==", + "engines": { + "node": ">=12" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -3647,6 +3711,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swr": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/swr/-/swr-1.3.0.tgz", + "integrity": "sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==", + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/tailwindcss": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", diff --git a/package.json b/package.json index 559433d..f931040 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "preview": "vite preview" }, "dependencies": { + "@clerk/clerk-react": "^4.23.2", "@headlessui/react": "^1.7.15", "@heroicons/react": "^2.0.18", "@reduxjs/toolkit": "^1.9.5", diff --git a/src/app/App.tsx b/src/app/App.tsx index 196a935..d2cf844 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -1,4 +1,5 @@ -import { Routes, Route } from 'react-router-dom'; +import { Routes, Route, useNavigate } from 'react-router-dom'; +import { ClerkProvider, SignIn, SignUp, SignedIn, SignedOut } from '@clerk/clerk-react'; import Navbar from '../common/components/Navbar'; import SnippetsFeed from '../pages/SnippetsFeed'; @@ -9,15 +10,31 @@ import Sidebar from '../common/components/Sidebar'; import PageNotFound from '../pages/PageNotFound'; import Bookmarks from '../pages/Bookmarks'; import TagPage from '../pages/TagPage'; +import Home from '../pages/Home'; + +const CLERK_KEY = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY as string; function App() { + const navigate = useNavigate(); return ( - <> + navigate(to)}> - -
+
- } /> + + + + + + + + + + } /> + } /> + } /> + } /> } /> } /> @@ -26,7 +43,7 @@ function App() { } />
- + ); } diff --git a/src/common/components/Navbar.tsx b/src/common/components/Navbar.tsx index e935a59..d01c341 100644 --- a/src/common/components/Navbar.tsx +++ b/src/common/components/Navbar.tsx @@ -6,7 +6,7 @@ import { XMarkIcon, } from '@heroicons/react/24/outline'; import { useLocation } from 'react-router-dom'; -import ProfileMenu from './ProfileMenu'; +import { UserButton } from '@clerk/clerk-react' const navigation = [ { name: 'Home', href: '/' }, @@ -55,7 +55,7 @@ const Navbar = () => { View notifications