From 595c553dd2fe6f74e46bf7cd3bc14e3a8abe2da5 Mon Sep 17 00:00:00 2001 From: austinkelsay Date: Sun, 11 Feb 2024 16:26:33 -0600 Subject: [PATCH] Full login /signup flow working, basic profile page and user avatar, pulling in resources from nostr and rendering --- next.config.js | 2 +- .../migration.sql | 1 + prisma/schema.prisma | 1 + src/components/navbar/Navbar.js | 25 ++---- src/components/navbar/navbar.module.css | 1 + src/components/navbar/user/UserAvatar.js | 81 +++++++++++++++++++ src/components/resources/ResourcesCarousel.js | 55 +++---------- src/hooks/useImageProxy.js | 12 +++ src/hooks/useLogin.js | 48 +++++++---- src/hooks/useNostr.js | 32 ++++++++ src/pages/_app.js | 2 +- src/pages/api/image-proxy.js | 27 +++++++ src/pages/index.js | 9 +++ src/pages/profile.js | 55 +++++++++++++ src/redux/reducers/eventsReducer.js | 28 ++++--- src/redux/reducers/userReducer.js | 12 +-- src/utils/nostr.js | 50 +++++++++++- 17 files changed, 338 insertions(+), 103 deletions(-) rename prisma/migrations/{20240211045317_init => 20240211200050_init}/migration.sql (99%) create mode 100644 src/components/navbar/user/UserAvatar.js create mode 100644 src/hooks/useImageProxy.js create mode 100644 src/pages/api/image-proxy.js create mode 100644 src/pages/profile.js diff --git a/next.config.js b/next.config.js index 4a7af98..5435e7d 100644 --- a/next.config.js +++ b/next.config.js @@ -2,7 +2,7 @@ const nextConfig = { reactStrictMode: true, images: { - domains: ['fakestoreapi.com'], + domains: ['localhost'], }, } diff --git a/prisma/migrations/20240211045317_init/migration.sql b/prisma/migrations/20240211200050_init/migration.sql similarity index 99% rename from prisma/migrations/20240211045317_init/migration.sql rename to prisma/migrations/20240211200050_init/migration.sql index 939570e..65055eb 100644 --- a/prisma/migrations/20240211045317_init/migration.sql +++ b/prisma/migrations/20240211200050_init/migration.sql @@ -3,6 +3,7 @@ CREATE TABLE "User" ( "id" SERIAL NOT NULL, "pubkey" TEXT NOT NULL, "username" TEXT, + "avatar" TEXT, "roleId" INTEGER, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 341511e..ef7fda6 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -11,6 +11,7 @@ model User { id Int @id @default(autoincrement()) pubkey String @unique username String? @unique + avatar String? purchased Purchase[] role Role? @relation(fields: [roleId], references: [id]) roleId Int? diff --git a/src/components/navbar/Navbar.js b/src/components/navbar/Navbar.js index 23a8046..535cfe2 100644 --- a/src/components/navbar/Navbar.js +++ b/src/components/navbar/Navbar.js @@ -1,32 +1,17 @@ -import React from 'react'; +import React, {useRef} from 'react'; import Image from 'next/image'; -import { useRouter } from 'next/router'; -import { Button } from 'primereact/button'; +import UserAvatar from './user/UserAvatar'; import { Menubar } from 'primereact/menubar'; -import { useSelector } from 'react-redux'; +import { useRouter } from 'next/router'; import 'primereact/resources/primereact.min.css'; import 'primeicons/primeicons.css'; import styles from './navbar.module.css'; const Navbar = () => { const router = useRouter(); - const user = useSelector((state) => state.user); - - const end = ( - (user && user?.username || user.pubkey) ? -

{user.username || user.pubkey}

- : -