import { FC, ReactElement } from 'react';
import { Button } from '@imphnen-frontend-service/ui/atoms';
import { useNavigate, useParams } from 'react-router';
import { useTeamById, useTeamSubmission } from '@imphnen-frontend-service/service';
const SubmissionViewPage: FC = (): ReactElement => {
const { teamId } = useParams<{ teamId: string }>();
const navigate = useNavigate();
const { data: teamData } = useTeamById(teamId || '');
const { data: submissionData, isLoading } = useTeamSubmission(teamId || '', !!teamId);
const team = teamData?.data;
const submission = submissionData?.data;
if (isLoading) {
return (
);
}
if (!submission) {
return (
📄
No Submission Yet
Your team hasn't submitted a project
);
}
const submittedDate = submission.submitted_at
? new Date(submission.submitted_at).toLocaleString('id-ID', {
day: 'numeric',
month: 'long',
year: 'numeric',
hour: '2-digit',
minute: '2-digit',
})
: 'Not submitted';
return (
Project Submission
{team?.name}
{/* Status Banner */}
{submission.status === 'submitted' ? (
✅
Project Submitted Successfully
Submitted on {submittedDate}
This submission is now read-only and cannot be edited
) : submission.status === 'pending_verification' ? (
⏳
Submission Pending Verification
Your submission is being processed
) : (
📝
Draft Submission
This submission is still in draft and has not been finalized
)}
{/* Project Header */}
{submission.project_name}
Team: {team?.name}
{/* Project Details */}
{/* Description */}
{/* Links */}
{/* Repository */}
{/* Demo URL */}
{submission.demo_url && (
)}
{/* Screenshots */}
{submission.screenshots && submission.screenshots.length > 0 && (
Screenshots ({submission.screenshots.length})
{submission.screenshots.map((url, index) => (
))}
)}
{/* Submission Info */}
Submission Information
Status:
{submission.status === 'submitted'
? '✓ Submitted'
: submission.status === 'pending_verification'
? '⏳ Pending Verification'
: '📝 Draft'}
Submitted:
{submittedDate}
Submission ID:
{submission.id}
{/* Read-only Notice */}
Note: This submission is now locked and cannot be edited or deleted.
If you need to make changes, please contact the hackathon organizers.
);
};
export default SubmissionViewPage;