diff --git a/apps/portal/.env.example b/apps/portal/.env.example
index bf48e8b5..a3d958b7 100644
--- a/apps/portal/.env.example
+++ b/apps/portal/.env.example
@@ -8,3 +8,7 @@ NEXTAUTH_URL=http://localhost:3000
# Next Auth GitHub Provider
GITHUB_CLIENT_ID=a5164b1943b5413ff2f5
GITHUB_CLIENT_SECRET=
+
+# Supabase
+SUPABASE_URL=
+SUPABASE_ANON_KEY=
diff --git a/apps/portal/package.json b/apps/portal/package.json
index 9948c01e..88ad7dfd 100644
--- a/apps/portal/package.json
+++ b/apps/portal/package.json
@@ -16,13 +16,16 @@
"@heroicons/react": "^2.0.11",
"@next-auth/prisma-adapter": "^1.0.4",
"@prisma/client": "^4.4.0",
+ "@supabase/supabase-js": "^1.35.7",
"@tih/ui": "*",
"@trpc/client": "^9.27.2",
"@trpc/next": "^9.27.2",
"@trpc/react": "^9.27.2",
"@trpc/server": "^9.27.2",
+ "axios": "^1.1.2",
"clsx": "^1.2.1",
"date-fns": "^2.29.3",
+ "formidable": "^2.0.1",
"next": "12.3.1",
"next-auth": "~4.10.3",
"react": "18.2.0",
@@ -36,6 +39,7 @@
"devDependencies": {
"@tih/tailwind-config": "*",
"@tih/tsconfig": "*",
+ "@types/formidable": "^2.0.5",
"@types/node": "^18.0.0",
"@types/react": "^18.0.21",
"@types/react-dom": "^18.0.6",
diff --git a/apps/portal/prisma/migrations/20221009093357_update_question_encounter_schema/migration.sql b/apps/portal/prisma/migrations/20221009093357_update_question_encounter_schema/migration.sql
new file mode 100644
index 00000000..3972d1b5
--- /dev/null
+++ b/apps/portal/prisma/migrations/20221009093357_update_question_encounter_schema/migration.sql
@@ -0,0 +1,8 @@
+/*
+ Warnings:
+
+ - Added the required column `seenAt` to the `QuestionsQuestionEncounter` table without a default value. This is not possible if the table is not empty.
+
+*/
+-- AlterTable
+ALTER TABLE "QuestionsQuestionEncounter" ADD COLUMN "seenAt" TIMESTAMP(3) NOT NULL;
diff --git a/apps/portal/prisma/schema.prisma b/apps/portal/prisma/schema.prisma
index 13287fea..59c53a40 100644
--- a/apps/portal/prisma/schema.prisma
+++ b/apps/portal/prisma/schema.prisma
@@ -206,6 +206,7 @@ model QuestionsQuestionEncounter {
company String @db.Text
location String @db.Text
role String @db.Text
+ seenAt DateTime
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
diff --git a/apps/portal/public/favicon.ico b/apps/portal/public/favicon.ico
index d3b456c0..2b50a782 100644
Binary files a/apps/portal/public/favicon.ico and b/apps/portal/public/favicon.ico differ
diff --git a/apps/portal/src/components/global/AppShell.tsx b/apps/portal/src/components/global/AppShell.tsx
index fde9d3b6..eeb2dfc9 100644
--- a/apps/portal/src/components/global/AppShell.tsx
+++ b/apps/portal/src/components/global/AppShell.tsx
@@ -1,29 +1,21 @@
import clsx from 'clsx';
import Link from 'next/link';
+import { useRouter } from 'next/router';
import { signIn, signOut, useSession } from 'next-auth/react';
import type { ReactNode } from 'react';
import { Fragment, useState } from 'react';
-import { Dialog, Menu, Transition } from '@headlessui/react';
-import {
- Bars3BottomLeftIcon,
- BriefcaseIcon,
- CurrencyDollarIcon,
- DocumentTextIcon,
- HomeIcon,
- XMarkIcon,
-} from '@heroicons/react/24/outline';
+import { Menu, Transition } from '@headlessui/react';
+import { Bars3BottomLeftIcon } from '@heroicons/react/24/outline';
-const sidebarNavigation = [
- { current: false, href: '/', icon: HomeIcon, name: 'Home' },
- { current: false, href: '/resumes', icon: DocumentTextIcon, name: 'Resumes' },
- {
- current: false,
- href: '/questions',
- icon: BriefcaseIcon,
- name: 'Questions',
- },
- { current: false, href: '/offers', icon: CurrencyDollarIcon, name: 'Offers' },
-];
+import GlobalNavigation from '~/components/global/GlobalNavigation';
+import HomeNavigation from '~/components/global/HomeNavigation';
+import OffersNavigation from '~/components/offers/OffersNavigation';
+import QuestionsNavigation from '~/components/questions/QuestionsNavigation';
+import ResumesNavigation from '~/components/resumes/ResumesNavigation';
+
+import MobileNavigation from './MobileNavigation';
+import type { ProductNavigationItems } from './ProductNavigation';
+import ProductNavigation from './ProductNavigation';
type Props = Readonly<{
children: ReactNode;
@@ -39,14 +31,15 @@ function ProfileJewel() {
if (session == null) {
return (
- {
event.preventDefault();
signIn();
}}>
Sign in
-
+
);
}
@@ -65,7 +58,7 @@ function ProfileJewel() {
return (