feat: add weekly curriculum cover image upload and display
This commit is contained in:
@@ -2,6 +2,7 @@ import { useEffect, useMemo, useRef, useState } from 'react';
|
||||
import { createPortal } from 'react-dom';
|
||||
import { CheckCircle2, CirclePlay, Clock3, FileCode2, FileText, Loader2, Map, Plus, RadioTower, Save, Target, Trash2, Upload, UsersRound, type LucideIcon } from 'lucide-react';
|
||||
import { ConfirmDialog } from '../../components/ConfirmDialog';
|
||||
import { WeekCoverEditor } from '../../components/WeekCoverEditor';
|
||||
import { PageHeader } from '../../components/PageHeader';
|
||||
import { useToast } from '../../components/ToastProvider';
|
||||
import { createInstructorCurriculumMap, deleteCurriculumReference, deleteInstructorCurriculumWeek, getInstructorCurriculum, updateInstructorCurriculum, uploadCurriculumExampleCode, uploadCurriculumReference, type CurriculumEnvironmentProfile, type CurriculumWeek, type InstructorCurriculumResponse } from '../../lib/curriculum';
|
||||
@@ -106,6 +107,7 @@ function readEnvironmentModuleDockerImages(
|
||||
export function CurriculumPage({ session, selectedCourseId }: { session: AuthSession; selectedCourseId: string }) {
|
||||
const { showToast } = useToast();
|
||||
const [weeks, setWeeks] = useState<CurriculumWeek[]>([]);
|
||||
const [coverOverrides, setCoverOverrides] = useState<Record<string, CurriculumWeek['detail']['coverImage']>>({});
|
||||
const [groups, setGroups] = useState<InstructorGroup[]>([]);
|
||||
const [selectedGroupId, setSelectedGroupId] = useState<string>('');
|
||||
const [activeWeek, setActiveWeek] = useState(1);
|
||||
@@ -1398,6 +1400,11 @@ export function CurriculumPage({ session, selectedCourseId }: { session: AuthSes
|
||||
)}
|
||||
</div>
|
||||
</section>
|
||||
{selectedWeek && <WeekCoverEditor key={`${selectedCourseId}:${selectedWeek.week}`}
|
||||
accessToken={session.accessToken} courseId={selectedCourseId} week={selectedWeek.week}
|
||||
cover={coverOverrides[`${selectedCourseId}:${selectedWeek.week}`] !== undefined
|
||||
? coverOverrides[`${selectedCourseId}:${selectedWeek.week}`] ?? null : selectedWeek.detail.coverImage ?? null}
|
||||
onChange={(cover) => setCoverOverrides((current) => ({ ...current, [`${selectedCourseId}:${selectedWeek.week}`]: cover }))} />}
|
||||
<label className="block">
|
||||
<h3 className="text-[15px] font-black text-[#111827]">제출 기준</h3>
|
||||
<textarea
|
||||
|
||||
Reference in New Issue
Block a user