fix: UI bugs

This commit is contained in:
swve 2024-08-08 21:07:29 +02:00
parent 360c6b1e1a
commit dc1673c053
4 changed files with 21 additions and 17 deletions

View file

@ -21,7 +21,7 @@ import { getAssignmentFromActivityUUID, getFinalGrade, submitAssignmentForGradin
import AssignmentStudentActivity from '@components/Objects/Activities/Assignment/AssignmentStudentActivity' import AssignmentStudentActivity from '@components/Objects/Activities/Assignment/AssignmentStudentActivity'
import { AssignmentProvider } from '@components/Contexts/Assignments/AssignmentContext' import { AssignmentProvider } from '@components/Contexts/Assignments/AssignmentContext'
import { AssignmentsTaskProvider } from '@components/Contexts/Assignments/AssignmentsTaskContext' import { AssignmentsTaskProvider } from '@components/Contexts/Assignments/AssignmentsTaskContext'
import AssignmentSubmissionProvider, { AssignmentSubmissionContext, useAssignmentSubmission } from '@components/Contexts/Assignments/AssignmentSubmissionContext' import AssignmentSubmissionProvider, { useAssignmentSubmission } from '@components/Contexts/Assignments/AssignmentSubmissionContext'
import toast from 'react-hot-toast' import toast from 'react-hot-toast'
import { mutate } from 'swr' import { mutate } from 'swr'
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal' import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
@ -340,8 +340,10 @@ function AssignmentTools(props: {
} }
useEffect(() => { useEffect(() => {
if ( submission && submission.length > 0 && submission[0].submission_status === 'GRADED') {
getGradingBasedOnMethod(); getGradingBasedOnMethod();
} }
}
, [submission, props.assignment]) , [submission, props.assignment])
if (!submission || submission.length === 0) { if (!submission || submission.length === 0) {

View file

@ -59,10 +59,9 @@ function AssignmentsHome() {
<div className='flex space-x-2 items-center'> <div className='flex space-x-2 items-center'>
<MiniThumbnail course={courses[index]} /> <MiniThumbnail course={courses[index]} />
<div className='flex flex-col font-bold text-lg '> <div className='flex flex-col font-bold text-lg '>
<p className='bg-gray-200 text-gray-700 px-2 text-xs py-0.5 rounded-full'>Course</p> <p className='bg-gray-200 text-gray-700 px-2 text-xs py-0.5 rounded-full w-fit'>Course</p>
<p>{courses[index].name}</p> <p>{courses[index].name}</p>
</div> </div>
</div> </div>
<Link <Link
href={{ href={{
@ -84,7 +83,7 @@ function AssignmentsHome() {
<p>Assignment</p> <p>Assignment</p>
</div> </div>
<div className='flex font-semibold text-lg'>{assignment.title}</div> <div className='flex font-semibold text-lg'>{assignment.title}</div>
<div className='flex font-semibold text'>{assignment.description}</div> <div className='flex font-semibold text-gray-600 px-2 py-0.5 rounded outline outline-gray-200/70'>{assignment.description}</div>
</div> </div>
<div className='flex space-x-2 font-bold text-sm items-center'> <div className='flex space-x-2 font-bold text-sm items-center'>

View file

@ -20,6 +20,7 @@ function AssignmentBoxUI({ type, view, currentPoints, maxPoints, saveFC, submitF
const [customGrade, setCustomGrade] = React.useState<number>(0) const [customGrade, setCustomGrade] = React.useState<number>(0)
const submission = useAssignmentSubmission() as any const submission = useAssignmentSubmission() as any
useEffect(() => { useEffect(() => {
console.log(submission)
} }
, [submission]) , [submission])
@ -88,10 +89,11 @@ function AssignmentBoxUI({ type, view, currentPoints, maxPoints, saveFC, submitF
{/* Grading button */} {/* Grading button */}
{view === 'grading' && {view === 'grading' &&
<div <div
onClick={() => gradeFC && gradeFC()}
className='flex px-0.5 py-0.5 cursor-pointer rounded-md space-x-2 items-center bg-gradient-to-bl hover:outline-offset-4 active:outline-offset-1 linear transition-all outline-offset-2 outline-dashed outline-orange-500/60'> className='flex px-0.5 py-0.5 cursor-pointer rounded-md space-x-2 items-center bg-gradient-to-bl hover:outline-offset-4 active:outline-offset-1 linear transition-all outline-offset-2 outline-dashed outline-orange-500/60'>
<p className='font-semibold px-2 text-xs text-orange-700'>Current points : {currentPoints}</p> <p className='font-semibold px-2 text-xs text-orange-700'>Current points : {currentPoints}</p>
<div className='bg-gradient-to-bl text-orange-700 bg-orange-300/20 hover:bg-orange-300/10 items-center flex rounded-md px-2 py-1 space-x-2'> <div
onClick={() => gradeFC && gradeFC()}
className='bg-gradient-to-bl text-orange-700 bg-orange-300/20 hover:bg-orange-300/10 items-center flex rounded-md px-2 py-1 space-x-2'>
<BookPlus size={14} /> <BookPlus size={14} />
<p className='text-xs font-semibold'>Grade</p> <p className='text-xs font-semibold'>Grade</p>
</div> </div>
@ -101,13 +103,14 @@ function AssignmentBoxUI({ type, view, currentPoints, maxPoints, saveFC, submitF
{/* CustomGrading button */} {/* CustomGrading button */}
{view === 'custom-grading' && maxPoints && {view === 'custom-grading' && maxPoints &&
<div <div
onClick={() => gradeCustomFC && gradeCustomFC(customGrade)}
className='flex px-0.5 py-0.5 cursor-pointer rounded-md space-x-2 items-center bg-gradient-to-bl hover:outline-offset-4 active:outline-offset-1 linear transition-all outline-offset-2 outline-dashed outline-orange-500/60'> className='flex px-0.5 py-0.5 cursor-pointer rounded-md space-x-2 items-center bg-gradient-to-bl hover:outline-offset-4 active:outline-offset-1 linear transition-all outline-offset-2 outline-dashed outline-orange-500/60'>
<p className='font-semibold px-2 text-xs text-orange-700'>Current points : {currentPoints}</p> <p className='font-semibold px-2 text-xs text-orange-700'>Current points : {currentPoints}</p>
<input <input
onChange={(e) => setCustomGrade(parseInt(e.target.value))} onChange={(e) => setCustomGrade(parseInt(e.target.value))}
placeholder={maxPoints.toString()} className='w-[100px] light-shadow text-sm py-0.5 outline outline-gray-200 rounded-lg px-2' type="number" /> placeholder={maxPoints.toString()} className='w-[100px] light-shadow text-sm py-0.5 outline outline-gray-200 rounded-lg px-2' type="number" />
<div className='bg-gradient-to-bl text-orange-700 bg-orange-300/20 hover:bg-orange-300/10 items-center flex rounded-md px-2 py-1 space-x-2'> <div
onClick={() => gradeCustomFC && gradeCustomFC(customGrade)}
className='bg-gradient-to-bl text-orange-700 bg-orange-300/20 hover:bg-orange-300/10 items-center flex rounded-md px-2 py-1 space-x-2'>
<BookPlus size={14} /> <BookPlus size={14} />
<p className='text-xs font-semibold'>Grade</p> <p className='text-xs font-semibold'>Grade</p>
</div> </div>

View file

@ -7,7 +7,7 @@ import {
export async function createAssignment(body: any, access_token: string) { export async function createAssignment(body: any, access_token: string) {
const result: any = await fetch( const result: any = await fetch(
`${getAPIUrl()}assignments`, `${getAPIUrl()}assignments/`,
RequestBodyWithAuthHeader('POST', body, null, access_token) RequestBodyWithAuthHeader('POST', body, null, access_token)
) )
const res = await getResponseMetadata(result) const res = await getResponseMetadata(result)