diff --git a/apps/web/app/page.tsx b/apps/web/app/page.tsx index 42325f7a..d7750cd7 100644 --- a/apps/web/app/page.tsx +++ b/apps/web/app/page.tsx @@ -1,15 +1,6 @@ -import { getServerSession } from "next-auth"; import { Landing } from "../screens/Landing"; -import { authOptions } from "../lib/auth"; -import { redirect } from "next/navigation"; export default async function Page(): Promise { - const session = await getServerSession(authOptions); - - if (!session?.user) { - return redirect("/auth"); - } - return (
diff --git a/apps/web/components/LessonView.tsx b/apps/web/components/LessonView.tsx index 459e8dd0..30c29e61 100644 --- a/apps/web/components/LessonView.tsx +++ b/apps/web/components/LessonView.tsx @@ -2,6 +2,7 @@ import { Blog } from "../../../packages/ui/src/Blog"; import { CodeProblemRenderer } from "../../../packages/ui/src/code/CodeProblemRenderer"; import { Problem, Track, ProblemStatement, CodeLanguage, TestCase } from "@prisma/client"; import MCQQuestionRenderer from "../../../packages/ui/src/MCQQuestionRenderer"; +import RedirectToLoginCard from '../../../packages/ui/src/RedirectToLoginCard'; import db from "@repo/db/client"; import { getServerSession } from "next-auth"; import { authOptions } from "../lib/auth"; @@ -47,16 +48,37 @@ export const LessonView = async ({ showAppBar?: Boolean; isPdfRequested?: Boolean; }) => { + + const session = await getServerSession(authOptions); + + const problemIndex = track.problems.findIndex((p) => p.id === problem.id); + + if(problemIndex > 1 && (!session || !session.user)) { + return + } + if (problem.type === "MCQ") { - return ; + return ( + + ); } if (problem.type === "Code" && problem.problemStatement) { const submissions = await getSubmissions(problem.problemStatement.id); - return ; + return ( + + ); } if (problem.type === "Blog") { - return ; + return ( + + ); } return
Not found
; }; diff --git a/packages/ui/src/Blog.tsx b/packages/ui/src/Blog.tsx index 8ab9c6be..5849a5cd 100644 --- a/packages/ui/src/Blog.tsx +++ b/packages/ui/src/Blog.tsx @@ -9,11 +9,13 @@ export const Blog = ({ track, showAppBar, isPdfRequested, + problemIndex }: { problem: Problem & { notionRecordMap: any }; track: Track & { problems: Problem[] }; showAppBar: Boolean; isPdfRequested?: Boolean; + problemIndex: number }) => { const mounted = useMountStatus(); @@ -25,7 +27,7 @@ export const Blog = ({ return (
- {showAppBar && } + {showAppBar && }
); diff --git a/packages/ui/src/BlogAppbar.tsx b/packages/ui/src/BlogAppbar.tsx index 64b72918..45784ff0 100644 --- a/packages/ui/src/BlogAppbar.tsx +++ b/packages/ui/src/BlogAppbar.tsx @@ -14,6 +14,7 @@ import { Codebar } from "./code/Codebar"; export const BlogAppbar = ({ problem, track, + problemIndex }: { problem: Problem & { notionRecordMap: any } & { problemStatement?: @@ -24,11 +25,8 @@ export const BlogAppbar = ({ | null; }; track: Track & { problems: Problem[] }; + problemIndex: number }) => { - const problemIndex = useMemo(() => { - return track.problems.findIndex((p) => p.id === problem.id); - }, [track, problem]); - let totalPages = Array.from({ length: track.problems.length }, (_, i) => i + 1); function setTheme(arg0: string) { diff --git a/packages/ui/src/MCQQuestionRenderer.tsx b/packages/ui/src/MCQQuestionRenderer.tsx index 7aa4a827..0ebf05a9 100644 --- a/packages/ui/src/MCQQuestionRenderer.tsx +++ b/packages/ui/src/MCQQuestionRenderer.tsx @@ -8,14 +8,16 @@ const MCQQuestionRenderer = ({ problem, track, showAppBar, + problemIndex }: { problem: Problem & { notionRecordMap: any }; track: Track & { problems: Problem[] }; showAppBar?: Boolean; + problemIndex: number }) => { return (
- {showAppBar && } + {showAppBar && }
diff --git a/packages/ui/src/code/CodeProblemRenderer.tsx b/packages/ui/src/code/CodeProblemRenderer.tsx index 822d97e7..72ceb05f 100644 --- a/packages/ui/src/code/CodeProblemRenderer.tsx +++ b/packages/ui/src/code/CodeProblemRenderer.tsx @@ -7,13 +7,13 @@ import { Problem, Track, Submission, CodeLanguage, ProblemStatement, TestCase } import { BlogAppbar } from "../BlogAppbar"; import { useSession } from "next-auth/react"; import ProblemStatementPanel from "./ProblemStatementPanel"; -import RedirectToLoginCard from "../RedirectToLoginCard"; import { Loader } from "lucide-react"; export const CodeProblemRenderer = ({ problem, track, submissions, + problemIndex }: { problem: Problem & { notionRecordMap: any } & { problemStatement: @@ -25,6 +25,7 @@ export const CodeProblemRenderer = ({ }; track: Track & { problems: Problem[] }; submissions: (Submission & { language: CodeLanguage })[] | null; + problemIndex: number }) => { const { data, status } = useSession(); const user = data?.user; @@ -32,7 +33,7 @@ export const CodeProblemRenderer = ({ if (problem.problemStatement) { return (
- + {status === "loading" ? ( ) : user ? (