diff --git a/src/components/Tables/ProblemTables/MyProblemsTable.tsx b/src/components/Tables/ProblemTables/MyProblemsTable.tsx index 8e2db36..862ecf9 100644 --- a/src/components/Tables/ProblemTables/MyProblemsTable.tsx +++ b/src/components/Tables/ProblemTables/MyProblemsTable.tsx @@ -1,12 +1,12 @@ import { ColumnDef } from "@tanstack/react-table"; import { - Check, - FileSpreadsheet, - MoreHorizontal, - Tally4, - Tally5, - Timer, - X + Check, + FileSpreadsheet, + MoreHorizontal, + Tally4, + Tally5, + Timer, + X } from "lucide-react"; import { Link } from "react-router-dom"; import { ProgrammingLanguageOptions } from "../../../constants/ProgrammingLanguage"; @@ -16,7 +16,6 @@ import { readableDateFormat } from "../../../utilities/ReadableDateFormat"; import MyProblemDropdown from "../../Dropdowns/MyProblemDropdown"; import { DataTable } from "../Prototype/DataTable"; import DataTableSortableLayout from "../Prototype/DataTableSortableLayout"; -import DifficultyBadge from "../../DifficultyBadge"; const columns: ColumnDef[] = [ { @@ -74,30 +73,6 @@ const columns: ColumnDef[] = [ ), }, - - // { - // accessorKey: "status", - // header: "Status", - // cell: ({ row }) => { - // return ( - //
- // - // Source Code - // - // - // 0}> - // Testcases - // - // - // - // No Runtime Error - // - //
- // ); - // }, - // }, { accessorKey: "source_code", header: () =>
@@ -145,9 +120,9 @@ const columns: ColumnDef[] = [ { accessorKey: "allowed_languages", - header: "Allowed Languages", + header: () =>
Allowed Languages
, cell: ({ row }) => ( -
+
{row.original.allowed_languages.split(",").map((lang) => ( { @@ -160,19 +135,19 @@ const columns: ColumnDef[] = [
), }, + // Temporary hide this column + // { + // accessorKey: "difficulty", + // header: ({ column }) => ( + // column.toggleSorting(column.getIsSorted() === "asc")}> + // Difficulty + // - { - accessorKey: "difficulty", - header: ({ column }) => ( - column.toggleSorting(column.getIsSorted() === "asc")}> - Difficulty - - - ), - cell: ({ row }) => ( - - ), - }, + // ), + // cell: ({ row }) => ( + // + // ), + // }, { accessorKey: "updated_date", diff --git a/src/components/shadcn/Badge.tsx b/src/components/shadcn/Badge.tsx index a448338..953d124 100644 --- a/src/components/shadcn/Badge.tsx +++ b/src/components/shadcn/Badge.tsx @@ -9,11 +9,11 @@ const badgeVariants = cva( variants: { variant: { default: - "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", + "border-transparent bg-primary text-primary-foreground cursor-default", // hover:bg-primary/80", secondary: - "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + "border-transparent bg-secondary text-secondary-foreground", // hover:bg-secondary/80", destructive: - "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + "border-transparent bg-destructive text-destructive-foreground", // hover:bg-destructive/80", outline: "text-foreground", }, }, diff --git a/src/router.tsx b/src/router.tsx index 3969d16..9a18f9d 100644 --- a/src/router.tsx +++ b/src/router.tsx @@ -1,4 +1,4 @@ -import { useContext, useEffect } from "react"; +import { useContext } from "react"; import { Route, Routes } from "react-router-dom"; import { LoginContext } from "./contexts/LoginContext"; import CourseManagement from "./views/CourseManagement"; @@ -27,14 +27,8 @@ import ViewCourseProblem from "./views/ViewCourseProblem"; import ViewProblem from "./views/ViewProblem"; const Router = () => { - // const navigate = useNavigate(); - const {isLogin} = useContext(LoginContext); - useEffect(() => { - console.log('isLogin',isLogin) - if (isLogin !== null && !isLogin) { - } - },[isLogin]) + const { isLogin } = useContext(LoginContext); return ( @@ -44,36 +38,72 @@ const Router = () => { } /> } /> - {(isLogin !== null && !isLogin) && (} />)} + {isLogin !== null && !isLogin && ( + } /> + )} + + {isLogin && ( + <> + } /> + } /> + + } /> + } + /> + } + /> + } + /> - {isLogin && (<> - } /> - } /> + } /> + } + /> + } + /> - } /> - } /> - } /> - } /> + } /> + } + /> + } + /> - } /> - } /> - } /> + } /> + } /> + } + /> - } /> - } /> - } /> + } + /> - } /> - } /> - } /> - - } /> - - } /> - } /> - } /> - )} - + } + /> + } /> + } + /> + + )} ); }; diff --git a/src/views/My/Problems/EditProblem.tsx b/src/views/My/Problems/EditProblem.tsx index 9c39c23..a3acec9 100644 --- a/src/views/My/Problems/EditProblem.tsx +++ b/src/views/My/Problems/EditProblem.tsx @@ -12,62 +12,73 @@ import { CreateProblemRequestForm } from "../../../types/forms/CreateProblemRequ import { ProblemPoplulateCreatorModel } from "../../../types/models/Problem.model"; const EditProblem = () => { - const accountId = String(localStorage.getItem("account_id")); const { problemId } = useParams(); const editProblemId = String(problemId); - const [problem,setProblem] = useState(); + const [problem, setProblem] = useState(); - const [createRequest, setCreateRequest] = useState(); + const [createRequest, setCreateRequest] = + useState(); - const handleSave: OnProblemSaveCallback = ( - setLoading, - createRequest - ) => { + const handleSave: OnProblemSaveCallback = (setLoading, createRequest) => { setLoading(true); - const { request,groups } = transformCreateProblemRequestForm2CreateProblemRequest(createRequest) + const { request, groups } = + transformCreateProblemRequestForm2CreateProblemRequest( + createRequest + ); - ProblemService.update( - String(editProblemId), - accountId, - request - ).then((response) => { - return ProblemService.updateGroupPermissions(response.data.problem_id,accountId,groups) - }).then((response) => { - console.log("Update Completed", response.data); - setLoading(false); - toast({ - title: "Problem Updated", + ProblemService.update(String(editProblemId), accountId, request) + .then((response) => { + return ProblemService.updateGroupPermissions( + response.data.problem_id, + accountId, + groups + ); + }) + .then((response) => { + console.log("Update Completed", response.data); + setLoading(false); + toast({ + title: "Problem Updated", + }); }); - }); }; useEffect(() => { - ProblemService.get(accountId,editProblemId).then((response) => { - setProblem(response.data) - setCreateRequest(transformProblemPopulateAccountAndTestcasesAndProblemGroupPermissionsPopulateGroupModel2CreateProblemRequestForm(response.data)); + ProblemService.get(accountId, editProblemId).then((response) => { + setProblem(response.data); + setCreateRequest( + transformProblemPopulateAccountAndTestcasesAndProblemGroupPermissionsPopulateGroupModel2CreateProblemRequestForm( + response.data + ) + ); + document.title = `${response.data.title} - Edit`; }); - }, []); + + + }, [accountId, editProblemId]); return ( - {createRequest && - handleSave( + {createRequest && ( + } + ) => + handleSave( + setLoading, + + createRequest + ) + } + /> + )} ); }; diff --git a/src/views/My/Problems/ProblemStatistic.tsx b/src/views/My/Problems/ProblemStatistic.tsx index a95e29c..6651b21 100644 --- a/src/views/My/Problems/ProblemStatistic.tsx +++ b/src/views/My/Problems/ProblemStatistic.tsx @@ -1,3 +1,4 @@ +import { Pencil } from "lucide-react"; import { useEffect, useState } from "react"; import { Link, useParams } from "react-router-dom"; import MyProblemSubmissionsTable from "../../../components/Tables/MyProblemSubmissionsTable"; @@ -7,16 +8,10 @@ import { SubmissionService } from "../../../services/Submission.service"; import { ProblemPopulateAccountAndTestcasesAndProblemGroupPermissionsPopulateGroupModel } from "../../../types/models/Problem.model"; import { SubmissionPopulateSubmissionTestcaseAndAccountModel } from "../../../types/models/Submission.model"; import { ProblemService } from "./../../../services/Problem.service"; -import { Pencil, RotateCw } from "lucide-react"; -import { Switch } from "../../../components/shadcn/Switch"; -import { Label } from "../../../components/shadcn/Label"; -import { cn } from "../../../lib/utils"; const ProblemStatistic = () => { const { problemId } = useParams(); const accountId = String(localStorage.getItem("account_id")); - const [loading, setLoading] = useState(false); - const [realtimeSubmission, setRealtimeSubmission] = useState(false); const [problem, setProblem] = useState(); @@ -25,10 +20,10 @@ const ProblemStatistic = () => { const loadSubmissions = () => { if (!problemId) return; - setLoading(true); ProblemService.get(accountId, problemId) .then((response) => { setProblem(response.data); + document.title = `${response.data.title}` return SubmissionService.getByCreatorProblem( accountId, problemId @@ -36,16 +31,10 @@ const ProblemStatistic = () => { }) .then((response) => { setSubmissions(response.data.submissions); - setLoading(false); }); }; useEffect(loadSubmissions, [accountId, problemId]); - useEffect(() => { - if (realtimeSubmission) { - loadSubmissions(); - } - }) return ( @@ -53,35 +42,6 @@ const ProblemStatistic = () => {
{problem?.title}
-
- - {!realtimeSubmission ? ( - - ) : ( - - )} - - - setRealtimeSubmission(!realtimeSubmission) - } - /> -