e.stopPropagation()}
+ >
+ {/* 1 — 일 선택 (Figma 1:546 업장 변경/추가 달력) */}
+ {flow.step === 1 ? (
+ <>
+
+
+
+
+
+ >
+ ) : null}
+
+ {/* 2 — 근무 시간 (Figma 1:815 — 출근·퇴근 시간 시:분 단위 표기) */}
+ {flow.step === 2 ? (
+ <>
+
+
+
+ 근무 시간 선택
+
+
+
+
+
+
+
+
+
+ >
+ ) : null}
+
+ {/* 3 — 요약 (지원 상세와 동일 패턴) */}
+ {flow.step === 3 ? (
+ <>
+
+
+
+ {storeName}
+
+
+
+
+
+
+ 요일
+
+
+ {WEEKDAY_LABELS.map(day => {
+ const selected =
+ flow.selectedWeekdayLabel != null &&
+ day === flow.selectedWeekdayLabel
+ return (
+
+ {selected ? (
+
+ {day}
+
+ ) : (
+
+ {day}
+
+ )}
+
+ )
+ })}
+
+
+
+
+
+ 시간
+
+
+
+ {flow.summarySelectedTimeLabel}
+
+
+
+
+
+
+
+
+
+
+
+ >
+ ) : null}
+
+ {/* 4 — 근무자 목록 */}
+ {flow.step === 4 ? (
+ <>
+
+
+
+ 대타 가능한 근무자 목록
+
+
+
+
+
+ {flow.substituteScheduleId == null ? (
+
+ 선택한 날짜에 등록된 스케줄이 없어 교환 가능한 근무자를 불러올
+ 수 없습니다.
+
+ ) : flow.exchangeableLoading ? (
+
+ 교환 가능한 근무자를 불러오는 중...
+
+ ) : flow.exchangeableError ? (
+
+
+ 교환 가능한 근무자 목록을 불러오지 못했습니다.
+
+
+
+ ) : flow.exchangeableWorkers.length === 0 ? (
+
+ 교환 가능한 근무자가 없습니다.
+
+ ) : (
+ flow.exchangeableWorkers.map(w => {
+ const key = `ew-${w.workerId}`
+ const selected = flow.selectedCandidateKeys.has(key)
+ return (
+
+ )
+ })
+ )}
+
+
+
+
+
+ >
+ ) : null}
+
+ {/* 5 — 대타 사유 */}
+ {flow.step === 5 ? (
+ <>
+
+
+
+ 대타 사유 입력
+
+
+
+
+
+ >
+ ) : null}
+