feat(ux): 날짜 입력 캘린더 전환 - 일정등록 datetime-local (surgical, 캘린더 파일만)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
ac09a5d048
commit
ba68d86c33
@ -84,16 +84,22 @@ export default function ScheduleCalendar() {
|
||||
)
|
||||
}
|
||||
|
||||
// datetime-local(yyyy-MM-ddTHH:mm) → API 계약(yyyy-MM-ddTHH:mm:ss) 보정: 초 없으면 :00 부가
|
||||
function toApiDt(v: string): string {
|
||||
if (!v) return v
|
||||
return v.length === 16 ? `${v}:00` : v
|
||||
}
|
||||
|
||||
function ScheduleForm({ date, type, onClose, onSaved }: { date: string; type: string; onClose: () => void; onSaved: () => void }) {
|
||||
const [title, setTitle] = useState('')
|
||||
const [startDt, setStartDt] = useState(`${date}T09:00:00`)
|
||||
const [endDt, setEndDt] = useState(`${date}T18:00:00`)
|
||||
const [startDt, setStartDt] = useState(`${date}T09:00`)
|
||||
const [endDt, setEndDt] = useState(`${date}T18:00`)
|
||||
const [content, setContent] = useState('')
|
||||
const [err, setErr] = useState('')
|
||||
const save = async () => {
|
||||
setErr('')
|
||||
try {
|
||||
await createSchedule({ scheType: type, title, startDt, endDt, content, attachmentIds: [] })
|
||||
await createSchedule({ scheType: type, title, startDt: toApiDt(startDt), endDt: toApiDt(endDt), content, attachmentIds: [] })
|
||||
onSaved()
|
||||
} catch (e: any) { setErr(e?.response?.data?.message || '저장 실패') }
|
||||
}
|
||||
@ -101,8 +107,8 @@ function ScheduleForm({ date, type, onClose, onSaved }: { date: string; type: st
|
||||
<Modal title="일정 등록" onClose={onClose}
|
||||
footer={<><Button variant="ghost" onClick={onClose}>취소</Button><Button onClick={save}>저장</Button></>}>
|
||||
<FormField label="제목"><Input value={title} onChange={setTitle} style={{ width: '100%' }} /></FormField>
|
||||
<FormField label="시작(yyyy-MM-ddTHH:mm:ss)"><Input value={startDt} onChange={setStartDt} style={{ width: '100%' }} /></FormField>
|
||||
<FormField label="종료"><Input value={endDt} onChange={setEndDt} style={{ width: '100%' }} /></FormField>
|
||||
<FormField label="시작"><Input type="datetime-local" value={startDt} onChange={setStartDt} style={{ width: '100%' }} /></FormField>
|
||||
<FormField label="종료"><Input type="datetime-local" value={endDt} onChange={setEndDt} style={{ width: '100%' }} /></FormField>
|
||||
<FormField label="내용"><Input value={content} onChange={setContent} style={{ width: '100%' }} /></FormField>
|
||||
{err && <div style={{ color: 'var(--uiws-danger)', fontSize: 13 }}>{err}</div>}
|
||||
</Modal>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user