From 4b6fec0841dc98aeff14ff4869eccb85d6375d3d Mon Sep 17 00:00:00 2001
From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com>
Date: Sat, 9 Sep 2023 21:39:08 -0500
Subject: [PATCH] feat: add theming
---
package-lock.json | 20 +++++++++++++++
package.json | 2 ++
src/app/account/[[...account]]/page.tsx | 7 +++++-
src/app/layout.tsx | 33 ++++++++++++++-----------
src/app/login/[[...login]]/page.tsx | 20 +++++++++++++--
src/app/page.tsx | 6 +----
src/app/signup/[[...signup]]/page.tsx | 12 ++++++++-
src/components/Navbar.tsx | 23 ++++++++++++-----
src/components/ThemeButton.tsx | 30 ++++++++++++++++++++++
src/providers/index.tsx | 15 ++++++++++-
tailwind.config.ts | 3 +++
11 files changed, 141 insertions(+), 30 deletions(-)
create mode 100644 src/components/ThemeButton.tsx
diff --git a/package-lock.json b/package-lock.json
index bf1826e..efa1e2c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,9 +17,11 @@
"eslint": "8.49.0",
"eslint-config-next": "13.4.19",
"next": "13.4.19",
+ "next-themes": "^0.2.1",
"postcss": "8.4.29",
"react": "18.2.0",
"react-dom": "18.2.0",
+ "react-icons": "^4.11.0",
"tailwindcss": "3.3.3",
"typescript": "5.2.2"
}
@@ -3530,6 +3532,16 @@
}
}
},
+ "node_modules/next-themes": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz",
+ "integrity": "sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==",
+ "peerDependencies": {
+ "next": "*",
+ "react": "*",
+ "react-dom": "*"
+ }
+ },
"node_modules/next/node_modules/postcss": {
"version": "8.4.14",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
@@ -4077,6 +4089,14 @@
"react": "^18.2.0"
}
},
+ "node_modules/react-icons": {
+ "version": "4.11.0",
+ "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.11.0.tgz",
+ "integrity": "sha512-V+4khzYcE5EBk/BvcuYRq6V/osf11ODUM2J8hg2FDSswRrGvqiYUYPRy4OdrWaQOBj4NcpJfmHZLNaD+VH0TyA==",
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
diff --git a/package.json b/package.json
index ba873c3..f36290a 100644
--- a/package.json
+++ b/package.json
@@ -18,9 +18,11 @@
"eslint": "8.49.0",
"eslint-config-next": "13.4.19",
"next": "13.4.19",
+ "next-themes": "^0.2.1",
"postcss": "8.4.29",
"react": "18.2.0",
"react-dom": "18.2.0",
+ "react-icons": "^4.11.0",
"tailwindcss": "3.3.3",
"typescript": "5.2.2"
}
diff --git a/src/app/account/[[...account]]/page.tsx b/src/app/account/[[...account]]/page.tsx
index af51cee..95949a6 100644
--- a/src/app/account/[[...account]]/page.tsx
+++ b/src/app/account/[[...account]]/page.tsx
@@ -1,3 +1,5 @@
+'use client';
+
import { UserProfile } from '@clerk/nextjs';
export default function AccountPage() {
@@ -6,7 +8,10 @@ export default function AccountPage() {
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 39a7902..54ab28d 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,5 +1,5 @@
import Navbar from '@/components/Navbar';
-import ConvexProvider from '@/providers';
+import { ConvexProvider, NextThemesProvider } from '@/providers';
import { ClerkProvider } from '@clerk/nextjs';
import type { Metadata } from 'next';
import { Inter } from 'next/font/google';
@@ -17,20 +17,25 @@ export default function RootLayout({
children: React.ReactNode;
}) {
return (
-
-
-
+
-
-
- {children}
-
-
-
-
+
+
+
+ {children}
+
+
+
+