Skip to content

Commit 533032f

Browse files
authored
Merge pull request #311 from GDGoCINHA/develop
Merge Dev
2 parents e4c9b78 + 5ff48b5 commit 533032f

1 file changed

Lines changed: 21 additions & 28 deletions

File tree

src/app/dashboard/mbti/page.tsx

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,16 @@ type TeamMatchingResponse = {
5757
matchedCount: number
5858
unmatchedCount: number
5959
teamSize: number
60-
teamCount: number
61-
teams: Array<{
62-
teamNumber: number
63-
members: Array<{
64-
name: string
65-
studentId: string
66-
mbtiType: string
60+
teamCount: number
61+
teams: Array<{
62+
teamNumber: number
63+
members: Array<{
64+
name: string
65+
studentId: string
66+
mbtiType: string | null
67+
hasMbtiResult: boolean
68+
}>
6769
}>
68-
}>
6970
unmatchedCandidates: Array<{
7071
name: string
7172
studentId: string
@@ -160,7 +161,7 @@ export default function DashboardMbtiPage() {
160161

161162
const [typeCounts, setTypeCounts] = useState<Array<{ mbtiType: string; count: number }>>([])
162163

163-
const [teamSize, setTeamSize] = useState(4)
164+
const teamSize = 6
164165
const [csvCandidates, setCsvCandidates] = useState<CsvCandidate[]>([])
165166
const [csvFileName, setCsvFileName] = useState('')
166167
const [matchingLoading, setMatchingLoading] = useState(false)
@@ -426,7 +427,7 @@ export default function DashboardMbtiPage() {
426427
<div className="rounded-xl border border-white/10 bg-black p-4">
427428
<h2 className="typo-pc-h4">CSV 기반 팀 매칭</h2>
428429
<p className="mt-1 typo-pc-c2 text-gray-700">
429-
이름, 학번 CSV를 업로드하면 저장된 MBTI 결과와 매칭해 팀을 자동 분배합니다.
430+
이름, 입학년도 2자리 CSV를 업로드하면 저장된 MBTI 결과와 매칭해 팀을 자동 분배합니다.
430431
</p>
431432

432433
<div className="mt-4 grid gap-3 pc:grid-cols-[1fr_auto_auto] pc:items-center">
@@ -444,21 +445,9 @@ export default function DashboardMbtiPage() {
444445
{csvFileName || 'CSV 파일 선택'}
445446
</label>
446447

447-
<label className="flex items-center gap-2 typo-pc-c2">
448-
팀 인원
449-
<input
450-
type="number"
451-
min={2}
452-
max={10}
453-
value={teamSize}
454-
onChange={(event) => {
455-
const value = Number(event.target.value)
456-
if (Number.isNaN(value)) return
457-
setTeamSize(Math.min(10, Math.max(2, value)))
458-
}}
459-
className="h-11 w-20 rounded-lg border border-gray-300 bg-gray-100 px-3 text-white outline-none focus:border-white"
460-
/>
461-
</label>
448+
<div className="flex h-11 items-center rounded-lg border border-white/10 bg-gray-100/30 px-4 typo-pc-c2 text-gray-700">
449+
팀 인원 6명 고정
450+
</div>
462451

463452
<button
464453
type="button"
@@ -471,6 +460,10 @@ export default function DashboardMbtiPage() {
471460

472461
<div className="mt-3 rounded-lg border border-white/10 bg-gray-100/30 p-3 typo-pc-c2 text-gray-700">
473462
CSV 후보 인원: {csvCandidates.length}
463+
<br />
464+
학번은 `22`, `23`처럼 입학년도 2자리 기준으로 비교합니다.
465+
<br />
466+
MBTI 참여자와 미참여자가 팀마다 최대한 고르게 섞이도록 6명씩 편성합니다.
474467
</div>
475468

476469
{matchingError ? (
@@ -491,11 +484,11 @@ export default function DashboardMbtiPage() {
491484
<p className="typo-pc-h4 text-white">{matchingResult.uniqueCandidates}</p>
492485
</div>
493486
<div className="rounded-lg border border-white/10 bg-gray-100/30 p-3">
494-
<p className="typo-pc-c2 text-gray-700">매칭 성공</p>
487+
<p className="typo-pc-c2 text-gray-700">팀 편성 인원</p>
495488
<p className="typo-pc-h4 text-white">{matchingResult.matchedCount}</p>
496489
</div>
497490
<div className="rounded-lg border border-white/10 bg-gray-100/30 p-3">
498-
<p className="typo-pc-c2 text-gray-700">결과 없음</p>
491+
<p className="typo-pc-c2 text-gray-700">편성 제외</p>
499492
<p className="typo-pc-h4 text-white">{matchingResult.unmatchedCount}</p>
500493
</div>
501494
</div>
@@ -514,7 +507,7 @@ export default function DashboardMbtiPage() {
514507
{member.name} ({member.studentId})
515508
</span>
516509
<span className="rounded-full border border-white/20 px-2 py-1 typo-pc-c2">
517-
{member.mbtiType}
510+
{member.hasMbtiResult ? member.mbtiType : 'MBTI 미참여'}
518511
</span>
519512
</li>
520513
))}

0 commit comments

Comments
 (0)