diff --git a/app/login/page.tsx b/app/login/page.tsx index 764b09d..0bf2a6e 100644 --- a/app/login/page.tsx +++ b/app/login/page.tsx @@ -1,6 +1,7 @@ 'use client'; import { signIn } from 'next-auth/react'; +import { FaGithub, FaGoogle } from "react-icons/fa"; export default function LoginPage() { return ( @@ -8,16 +9,22 @@ export default function LoginPage() {

Worklog

Track your billable hours

- - +
+ + +
); diff --git a/auth.ts b/auth.ts index 3348652..94b0810 100644 --- a/auth.ts +++ b/auth.ts @@ -1,5 +1,6 @@ import { NextAuthOptions } from 'next-auth'; import GithubProvider from 'next-auth/providers/github'; +import GoogleProvider from 'next-auth/providers/google'; export const authOptions: NextAuthOptions = { secret: process.env.NEXTAUTH_SECRET, @@ -9,6 +10,10 @@ export const authOptions: NextAuthOptions = { clientId: process.env.AUTH_GITHUB_ID!, clientSecret: process.env.AUTH_GITHUB_SECRET!, }), + GoogleProvider({ + clientId: process.env.GOOGLE_CLIENT_ID!, + clientSecret: process.env.GOOGLE_CLIENT_SECRET! + }) ], pages: { signIn: '/login', diff --git a/package-lock.json b/package-lock.json index bc80ed2..e9e8a2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,8 @@ "pg": "^8.18.0", "prisma": "^7.4.0", "react": "19.2.4", - "react-dom": "19.2.4" + "react-dom": "19.2.4", + "react-icons": "^5.6.0" }, "devDependencies": { "@edge-runtime/primitives": "^6.0.0", @@ -31,6 +32,7 @@ "@types/pg": "^8.16.0", "@types/react": "^19", "@types/react-dom": "^19", + "@types/react-icons": "^2.2.7", "eslint": "^9.39.2", "eslint-config-next": "16.1.6", "eslint-config-prettier": "^10.1.8", @@ -3393,6 +3395,27 @@ "@types/react": "^19.2.0" } }, + "node_modules/@types/react-icon-base": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@types/react-icon-base/-/react-icon-base-2.1.6.tgz", + "integrity": "sha512-ebbN1JjCm6RxBd3HdI1+8VCdiOI4qMjnl9DIHWJFrB/eYLF4mzIgdL34PIqCJBLY3vlwil9v6IHQvzsa8vgMsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-icons": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@types/react-icons/-/react-icons-2.2.7.tgz", + "integrity": "sha512-qxc8xtwgDG5Ub/WILU9tZa7zxz2UZqOU4yXbBa+Xg+0LbP031NB9gvf1d/ALvHLGCsCf3WEVttNoW/wc30jn1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*", + "@types/react-icon-base": "*" + } + }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -10594,6 +10617,15 @@ "react": "^19.2.4" } }, + "node_modules/react-icons": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.6.0.tgz", + "integrity": "sha512-RH93p5ki6LfOiIt0UtDyNg/cee+HLVR6cHHtW3wALfo+eOHTp8RnU2kRkI6E+H19zMIs03DyxUG/GfZMOGvmiA==", + "license": "MIT", + "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 39e0823..309b091 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,8 @@ "pg": "^8.18.0", "prisma": "^7.4.0", "react": "19.2.4", - "react-dom": "19.2.4" + "react-dom": "19.2.4", + "react-icons": "^5.6.0" }, "devDependencies": { "@edge-runtime/primitives": "^6.0.0", @@ -35,6 +36,7 @@ "@types/pg": "^8.16.0", "@types/react": "^19", "@types/react-dom": "^19", + "@types/react-icons": "^2.2.7", "eslint": "^9.39.2", "eslint-config-next": "16.1.6", "eslint-config-prettier": "^10.1.8",