Skip to content

Commit 105a930

Browse files
authored
Merge pull request #72 from HackDavis/feat/submissions-team-link
Feat/submissions team link
2 parents 3c11387 + 87aeda3 commit 105a930

File tree

17 files changed

+82
-21
lines changed

17 files changed

+82
-21
lines changed

app/(api)/_types/submissions.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
interface SubmissionInt {
2+
_id: string;
23
judge_id: string;
34
team_id: string;
4-
scores: object;
5-
correlations: object;
5+
scores: number[];
6+
correlations: object[];
67
comments?: string;
7-
_id: string;
88
}
99

1010
export default SubmissionInt;

app/(api)/_types/teams.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
interface TeamInt {
2+
_id: string;
23
number: number;
3-
tracks: string[];
44
name: string;
5-
judge_pair_ids?: string[];
6-
submission_ids?: string[];
7-
_id: string;
5+
tracks: string[];
86
}
97

108
export default TeamInt;

app/(api)/api/submissions/get.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,5 @@ import { GetManySubmissions } from '@datalib/submissions/getSubmissions';
55

66
export async function GET(request: NextRequest) {
77
const queries = await getQueries(request);
8-
console.log(queries);
98
return GetManySubmissions(queries);
109
}

app/(pages)/_hooks/useSubmission.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
'use client';
2+
3+
import { useState, useEffect } from 'react';
4+
import { useAuth } from './useAuth';
5+
import { getSubmission } from '@actions/submissions/getSubmission';
6+
7+
export function useSubmission(team_id: string): any {
8+
const { user, loading: authLoading } = useAuth();
9+
const [submission, setSubmssion] = useState<any>(null);
10+
const [loading, setLoading] = useState<boolean>(true);
11+
useEffect(() => {
12+
const getSubmissionWrapper = async (judge_id: string) => {
13+
const submission = await getSubmission(judge_id, team_id);
14+
setSubmssion(submission);
15+
setLoading(false);
16+
};
17+
if (!authLoading && user) {
18+
getSubmissionWrapper(user._id);
19+
}
20+
}, [authLoading, user, team_id]);
21+
22+
return { submission, loading };
23+
}

app/(pages)/_hooks/useTeam.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
'use client';
2+
3+
import { useState, useEffect } from 'react';
4+
import { getTeam } from '@actions/teams/getTeams';
5+
6+
export function useTeam(team_id: string): any {
7+
const [team, setTeam] = useState<any>(null);
8+
const [loading, setLoading] = useState<boolean>(true);
9+
useEffect(() => {
10+
const getTeamWrapper = async (team_id: string) => {
11+
const team = await getTeam(team_id);
12+
setTeam(team);
13+
setLoading(false);
14+
};
15+
getTeamWrapper(team_id);
16+
}, [team_id]);
17+
18+
return { team, loading };
19+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
'use client';
2+
import ScoringForm from '../_components/ScoringForm/ScoringForm';
3+
import { useTeam } from '@hooks/useTeam';
4+
import { useSubmission } from '@hooks/useSubmission';
5+
export default function Scoring({ params }: { params: { team_id: string } }) {
6+
const team_id = params.team_id;
7+
const { team, loading: teamLoading } = useTeam(team_id as string);
8+
const { submission, loading: submissionLoading } = useSubmission(
9+
team_id as string
10+
);
11+
if (submissionLoading || teamLoading) {
12+
return 'loading...';
13+
}
14+
15+
if (team.body === null || submission.body === null) {
16+
return 'something went wrong.';
17+
}
18+
19+
return <ScoringForm team={team.body} _={submission.body} />;
20+
}

app/(pages)/judges/_components/ScoringForm/ScoringForm.tsx renamed to app/(pages)/judges/scoring/_components/ScoringForm/ScoringForm.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,16 @@ import TeamBlock from './ScoringSubComponents/TeamBlock';
55
import ScoringInput from './ScoringSubComponents/ScoreInput';
66
import Comments from './ScoringSubComponents/Comments';
77

8-
export default function ScoringForm() {
8+
import TeamInt from '@typeDefs/teams';
9+
import SubmissionInt from '@typeDefs/submissions';
10+
11+
export default function ScoringForm({
12+
team,
13+
_,
14+
}: {
15+
team: TeamInt;
16+
_: SubmissionInt;
17+
}) {
918
const generalScoreNames = [
1019
'Social Good',
1120
'Technical Complexity',
@@ -34,7 +43,7 @@ export default function ScoringForm() {
3443

3544
return (
3645
<div className={styles.container}>
37-
<TeamBlock />
46+
<TeamBlock team={team} />
3847
<ScoringInput
3948
inputNameHeader="Overall Scoring"
4049
inputScoreNames={generalScoreNames}

app/(pages)/judges/_components/ScoringForm/ScoringSubComponents/TeamBlock.tsx renamed to app/(pages)/judges/scoring/_components/ScoringForm/ScoringSubComponents/TeamBlock.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import TeamInt from '@typeDefs/teams';
12
import styles from './TeamBlock.module.scss';
23
import Link from 'next/link';
34

@@ -35,23 +36,20 @@ const NoteBook = () => {
3536
);
3637
};
3738

38-
export default function TeamBlock() {
39+
export default function TeamBlock({ team }: { team: TeamInt }) {
3940
/* retrieve these from backend */
40-
const tableNumber = 117;
41-
const teamName = 'Haptic Hand';
42-
4341
return (
4442
<div className={styles.teamBlock}>
4543
<div className={styles.topText}>
46-
<h2 className={styles.teamTable}>Table {tableNumber}</h2>
44+
<h2 className={styles.teamTable}>Table {team.number}</h2>
4745

4846
<div className={styles.mapContent}>
4947
<h3 className={styles.mapText}>Find on Map</h3>
5048
<RightArrow />
5149
</div>
5250
</div>
5351

54-
<h1 className={styles.teamName}>{teamName}</h1>
52+
<h1 className={styles.teamName}>{team.name}</h1>
5553
<div className={styles.guideContent}>
5654
<p className={styles.guideText}>
5755
Please refer back to our judging guide for each track. Tracks are on a

app/(pages)/judges/scoring/page.tsx

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)