feat: configure overview camera per curriculum week
This commit is contained in:
@@ -116,6 +116,8 @@ export function CurriculumPage({ session, selectedCourseId }: { session: AuthSes
|
||||
const [draftTitle, setDraftTitle] = useState('');
|
||||
const [draftDuration, setDraftDuration] = useState('');
|
||||
const [draftOverview, setDraftOverview] = useState('');
|
||||
const [draftCameraUrl, setDraftCameraUrl] = useState('');
|
||||
const [draftCameraPassword, setDraftCameraPassword] = useState('');
|
||||
const [draftDeliverable, setDraftDeliverable] = useState('');
|
||||
const [draftIsTeamProject, setDraftIsTeamProject] = useState(false);
|
||||
const [draftTopics, setDraftTopics] = useState<string[]>([]);
|
||||
@@ -274,6 +276,8 @@ export function CurriculumPage({ session, selectedCourseId }: { session: AuthSes
|
||||
setDraftTitle(selectedWeek.title);
|
||||
setDraftDuration(selectedWeek.duration);
|
||||
setDraftOverview(selectedWeek.detail.overview);
|
||||
setDraftCameraUrl(selectedWeek.detail.camera?.url ?? '');
|
||||
setDraftCameraPassword(selectedWeek.detail.camera?.password ?? '');
|
||||
setDraftDeliverable(selectedWeek.detail.deliverable);
|
||||
setDraftIsTeamProject(Boolean(selectedWeek.isTeamProject));
|
||||
setDraftTopics(selectedWeek.topics.length ? selectedWeek.topics : ['']);
|
||||
@@ -350,6 +354,8 @@ export function CurriculumPage({ session, selectedCourseId }: { session: AuthSes
|
||||
title: draftTitle,
|
||||
duration: draftDuration,
|
||||
overview: draftOverview,
|
||||
cameraViewUrl: draftCameraUrl,
|
||||
cameraPassword: draftCameraPassword,
|
||||
deliverable: draftDeliverable,
|
||||
isTeamProject: draftIsTeamProject,
|
||||
topics: draftTopics.map((topic) => topic.trim()).filter(Boolean),
|
||||
@@ -398,6 +404,8 @@ export function CurriculumPage({ session, selectedCourseId }: { session: AuthSes
|
||||
title: draftTitle,
|
||||
duration: draftDuration,
|
||||
overview: draftOverview,
|
||||
cameraViewUrl: draftCameraUrl,
|
||||
cameraPassword: draftCameraPassword,
|
||||
deliverable: draftDeliverable,
|
||||
isTeamProject: draftIsTeamProject,
|
||||
topics,
|
||||
@@ -439,6 +447,8 @@ export function CurriculumPage({ session, selectedCourseId }: { session: AuthSes
|
||||
title: draftTitle,
|
||||
duration: draftDuration,
|
||||
overview: draftOverview,
|
||||
cameraViewUrl: draftCameraUrl,
|
||||
cameraPassword: draftCameraPassword,
|
||||
deliverable: draftDeliverable,
|
||||
isTeamProject: draftIsTeamProject,
|
||||
topics: draftTopics.map((topic) => topic.trim()).filter(Boolean),
|
||||
@@ -1205,6 +1215,19 @@ export function CurriculumPage({ session, selectedCourseId }: { session: AuthSes
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
<div className="grid min-w-0 gap-3">
|
||||
<label className="block min-w-0">
|
||||
<span className="text-[12px] font-black text-[#475569]">오버뷰 시청 URL</span>
|
||||
<input type="url" value={draftCameraUrl} onChange={(event) => setDraftCameraUrl(event.target.value)}
|
||||
placeholder="시청 링크"
|
||||
className="mt-1.5 h-10 w-full min-w-0 rounded-md border border-[#d1d9e6] bg-white px-3 text-[13px] outline-none focus:border-[#2563eb]" />
|
||||
</label>
|
||||
<label className="block min-w-0">
|
||||
<span className="text-[12px] font-black text-[#475569]">오버뷰 방 비밀번호</span>
|
||||
<input type="password" autoComplete="new-password" value={draftCameraPassword} onChange={(event) => setDraftCameraPassword(event.target.value)}
|
||||
className="mt-1.5 h-10 w-full min-w-0 rounded-md border border-[#d1d9e6] bg-white px-3 text-[13px] outline-none focus:border-[#2563eb]" />
|
||||
</label>
|
||||
</div>
|
||||
<label className="block h-[100px]">
|
||||
<span className="text-[12px] font-black text-[#475569]">주차 개요</span>
|
||||
<textarea
|
||||
|
||||
Reference in New Issue
Block a user