Skip to content

Commit

Permalink
Fix missing key on RecursiveRequirement
Browse files Browse the repository at this point in the history
  • Loading branch information
jasonappah committed Feb 13, 2024
1 parent 7e10c75 commit 1cd1344
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 28 deletions.
37 changes: 16 additions & 21 deletions src/components/planner/Sidebar/RecursiveRequirement.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useMemo } from 'react';
import React, { useMemo, Fragment } from 'react';
import { v4 as uuidv4 } from 'uuid';

import { trpc } from '@/utils/trpc';
Expand Down Expand Up @@ -36,15 +36,14 @@ export function RecursiveRequirement({
>
<>
{req.requirements.map((req2, idx) => (
<>
<Fragment key={req2.metadata.id}>
<div className="h-2 px-2 text-sm">Option {idx + 1}</div>
<RecursiveRequirement
key={idx}
req={req2}
courses={courses}
validCourses={validCourses}
/>
</>
</Fragment>
))}
</>
</Accordion>
Expand All @@ -58,15 +57,13 @@ export function RecursiveRequirement({
filled={req.filled}
>
<>
{req.requirements.map((req2, idx) => (
<>
<RecursiveRequirement
key={idx}
req={req2}
courses={courses}
validCourses={validCourses}
/>
</>
{req.requirements.map((req2) => (
<RecursiveRequirement
key={req2.metadata.id}
req={req2}
courses={courses}
validCourses={validCourses}
/>
))}
</>
</Accordion>
Expand All @@ -85,15 +82,14 @@ export function RecursiveRequirement({
>
<>
{req.requirements.map((req2, idx) => (
<>
<Fragment key={req2.metadata.id}>
<div className="h-2 px-2 text-sm">Option {idx + 1}</div>
<RecursiveRequirement
key={idx}
req={req2}
courses={courses}
validCourses={validCourses}
/>
</>
</Fragment>
))}
</>
</Accordion>
Expand All @@ -112,15 +108,14 @@ export function RecursiveRequirement({
>
<>
{req.requirements.map((req2, idx) => (
<>
<Fragment key={req2.metadata.id}>
<div className="h-2 px-2 text-sm">Option {idx + 1}</div>
<RecursiveRequirement
key={idx}
req={req2}
courses={courses}
validCourses={validCourses}
/>
</>
</Fragment>
))}
</>
</Accordion>
Expand All @@ -140,7 +135,7 @@ export function RecursiveRequirement({
<>
{req.prefix_groups.map((req2, idx) => (
<RecursiveRequirement
key={idx}
key={req2.metadata.id}
req={req2}
courses={courses}
validCourses={validCourses}
Expand All @@ -156,7 +151,7 @@ export function RecursiveRequirement({
return <div>NOT SUPPORTED</div>;
}
};
return <>{getRequirement()}</>;
return getRequirement();
}

function CourseRequirementComponent({
Expand Down
12 changes: 7 additions & 5 deletions src/components/planner/Sidebar/RequirementsContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,9 @@ const getRequirementGroup = (
course: `${c.subject_prefix} ${c.course_number}`,
matcher: 'Course',
filled: courses.includes(`${c.subject_prefix} ${c.course_number}`),
metadata: {},
metadata: {
id: `course-${c.id}`,
},
}))
: [],
filterFunction: filterFunc,
Expand Down Expand Up @@ -200,12 +202,12 @@ const getRequirementGroup = (
};

export const ProgressComponent2 = ({ value, max }: { value: number; max: number }) => {
const heh = `${(value * 100) / max}%`;
const width = `${(value * 100) / max}%`;

return (
<div className="flex w-full flex-col items-center justify-center">
<div className="mt-2 h-1 w-full overflow-hidden rounded-2xl bg-[#F5F5F5] ">
<div style={{ width: heh }} className={`h-full bg-primary`}></div>
<div style={{ width }} className={`h-full bg-primary`}></div>
</div>
</div>
);
Expand All @@ -220,15 +222,15 @@ export const ProgressComponent = ({
max: number;
unit?: string;
}) => {
const heh = `${(value * 100) / max}%`;
const width = `${(value * 100) / max}%`;

return (
<div className="flex w-24 flex-col items-center justify-center">
<div className="w-max text-[10px]">
{value}/{max} {unit}
</div>
<div className="h-3 w-full overflow-hidden rounded-2xl bg-[#F5F5F5]">
<div style={{ width: heh }} className={`h-full bg-primary`}></div>
<div style={{ width }} className={`h-full bg-primary`}></div>
</div>
</div>
);
Expand Down
3 changes: 1 addition & 2 deletions src/components/planner/Sidebar/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export type DegreeRequirement = Requirement & {

export interface Requirement {
matcher: string;
metadata: { [key: string]: string };
metadata: { id: string; [key: string]: string };
filled: boolean;
}

Expand All @@ -36,7 +36,6 @@ export type AndRequirementGroup = Requirement & {

export type HoursRequirementGroup = Requirement & {
matcher: 'Hours';
metadata: { [key: string]: string };
required_hours: number;
fulfilled_hours: number;
requirements: RequirementTypes[];
Expand Down

0 comments on commit 1cd1344

Please sign in to comment.