@@ -17,4 +17,4 @@ function InviteFrame() {
)
}
-export default InviteFrame
\ No newline at end of file
+export default InviteFriend
\ No newline at end of file
diff --git a/app/(routes)/dashboard/_components/Upgrade-To-Pro.tsx b/app/(routes)/dashboard/_components/UpgradeToPro.tsx
similarity index 100%
rename from app/(routes)/dashboard/_components/Upgrade-To-Pro.tsx
rename to app/(routes)/dashboard/_components/UpgradeToPro.tsx
diff --git a/app/(routes)/dashboard/_components/UserStates.tsx b/app/(routes)/dashboard/_components/UserStates.tsx
index 26b0228..c912a25 100644
--- a/app/(routes)/dashboard/_components/UserStates.tsx
+++ b/app/(routes)/dashboard/_components/UserStates.tsx
@@ -6,6 +6,7 @@ import { useUser } from '@clerk/nextjs';
function UserStates() {
const { user } = useUser()
+
return (
diff --git a/app/(routes)/dashboard/page.tsx b/app/(routes)/dashboard/page.tsx
index bef416b..ab3992f 100644
--- a/app/(routes)/dashboard/page.tsx
+++ b/app/(routes)/dashboard/page.tsx
@@ -2,9 +2,9 @@ import React from 'react'
import WelcomeBanner from './_components/WelcomeBanner'
import EnrolledCourses from './_components/EnrolledCourses'
import ExploreMore from './_components/ExploreMore'
-import InviteFrame from './_components/InviteFrame'
+import InviteFrame from './_components/InviteFriend'
import UserStates from './_components/UserStates'
-import UpgradeToPro from './_components/Upgrade-To-Pro'
+import UpgradeToPro from './_components/UpgradeToPro'
import Header from '@/app/_components/Header'
function Dashboard() {
diff --git a/app/api/course/route.ts b/app/api/course/route.ts
index be1d793..4e0ae85 100644
--- a/app/api/course/route.ts
+++ b/app/api/course/route.ts
@@ -1,7 +1,7 @@
import {db} from '@/config/db';
-import { CourseChapterTable, CourseTable, EnrolledCourseTable } from '@/config/schema';
+import { CompletedExerciseTable, CourseChapterTable, CourseTable, EnrolledCourseTable } from '@/config/schema';
import { currentUser } from '@clerk/nextjs/server';
-import { and, asc, eq } from 'drizzle-orm';
+import { and, asc, desc, eq } from 'drizzle-orm';
import { NextRequest, NextResponse } from 'next/server';
@@ -25,11 +25,17 @@ if (courseId){
.where(and(eq(EnrolledCourseTable?.courseId,courseId),eq(EnrolledCourseTable.userId,user?.primaryEmailAddress?.emailAddress) ))
const isEnrolledCourse = enrolledCourse?.length>0?true:false
+ //@ts-ignore
+ const completedExercises = await db.select().from(CompletedExerciseTable).where(and(eq(CompletedExerciseTable.courseId,courseId),eq(CompletedExerciseTable.userId,user?.primaryEmailAddress?.emailAddress)))
+ .orderBy(desc(CompletedExerciseTable?.courseId))
+
+
return NextResponse.json({
...result[0],
chapters:chapterResult,
userEnrolled: isEnrolledCourse,
- courseEnrolledInfo: enrolledCourse[0]
+ courseEnrolledInfo: enrolledCourse[0],
+ completedExercises: completedExercises
})
}
else{
diff --git a/components/ui/button.tsx b/components/ui/button.tsx
index f732ce1..a93d123 100644
--- a/components/ui/button.tsx
+++ b/components/ui/button.tsx
@@ -21,6 +21,11 @@ const buttonVariants = cva(
link: "text-primary underline-offset-4 hover:underline",
pixel:
"bg-yellow-400 text-black border-2 border-black shadow-[0px_0px_0_0_#c69405,2px_2px_0_0_#c69405] active:shadow-[0_0_0_0_#000] hover:brightness-105",
+
+ pixelDisabled:
+ "bg-gray-400 text-gray-700 border-2 border-gray-500 shadow-[0px_0px_0_0_#9ca3af,2px_2px_0_0_#9ca3af] cursor-not-allowed hover:brightness-100 active:shadow-[0_0_0_0_#000]"
+
+
},
diff --git a/config/db.js b/config/db.js
deleted file mode 100644
index d2ffac9..0000000
--- a/config/db.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { drizzle } from 'drizzle-orm/neon-http';
-
-export const db = drizzle(process.env.DATABASE_URL);
\ No newline at end of file
diff --git a/config/schema.ts b/config/schema.ts
index fc7378b..4c49bf1 100644
--- a/config/schema.ts
+++ b/config/schema.ts
@@ -43,4 +43,4 @@ export const CompletedExerciseTable = pgTable('completedExercise',{
chapterId: integer(),
exerciseId: integer(),
userId: varchar()
-})
\ No newline at end of file
+})
diff --git a/drizzle.config.ts b/drizzle.config.ts
index 2972634..b5801b3 100644
--- a/drizzle.config.ts
+++ b/drizzle.config.ts
@@ -2,7 +2,7 @@ import 'dotenv/config';
import { defineConfig } from 'drizzle-kit';
export default defineConfig({
- schema: './config/schema.tsx',
+ schema: './config/schema.ts',
dialect: 'postgresql',
dbCredentials: {
url: process.env.DATABASE_URL!,