동작

선택 시 닫기

shouldCloseOnSelect가 활성화되면 프리셋을 클릭할 때 피커가 자동으로 확인되고 닫힙니다.

ℹ️ Info

시간이 활성화된 피커의 경우, 사용자가 아직 시간을 설정해야 하므로 날짜 클릭에는 적용되지 않고 프리셋 클릭에만 shouldCloseOnSelect가 적용됩니다.

import { useState } from "react";
import "react-date-range-picker-styled/rdrp-styles.css";
import { DateRangeTimePicker } from "react-date-range-picker-styled";
function ShouldCloseOnSelect() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
return (
<DateRangeTimePicker
value={value}
onChange={setValue}
shouldCloseOnSelect
time={{ minuteStep: 5 }}
/>
);
}

다중 월 표시

기본값인 2개월보다 더 많은 달을 나란히 표시합니다.

import { useState } from "react";
import "react-date-range-picker-styled/rdrp-styles.css";
import { DateRangeTimePicker } from "react-date-range-picker-styled";
function MultiMonth() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
return (
<DateRangeTimePicker
value={value}
onChange={setValue}
numberOfMonths={3}
time={{ minuteStep: 5 }}
/>
);
}

폼 통합

name prop을 사용하여 네이티브 폼 제출을 위한 숨겨진 입력(hidden input)을 포함합니다.

💡 Tip

이 예제의 제출 버튼 스타일링은 커스텀입니다. 이 라이브러리는 날짜 피커만 제공합니다.

import { type SubmitEvent, useState } from "react";
import "react-date-range-picker-styled/rdrp-styles.css";
import { DateRangeTimePicker } from "react-date-range-picker-styled";
function FormIntegration() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
const handleSubmit = (e: SubmitEvent<HTMLFormElement>) => {
e.preventDefault();
const formData = new FormData(e.currentTarget);
const start = formData.get("booking");
const end = formData.get("booking-end");
alert(
`Submitted range: ${typeof start === "string" ? start : ""} ~ ${typeof end === "string" ? end : ""}`,
);
};
return (
<form onSubmit={handleSubmit} style={{ display: "flex", alignItems: "center", gap: 8 }}>
<DateRangeTimePicker
value={value}
onChange={setValue}
name="booking"
time={{ minuteStep: 5 }}
/>
<button
type="submit"
style={{
padding: "6px 14px",
border: "1px solid #d1d5db",
borderRadius: 6,
background: "#3b82f6",
color: "#fff",
cursor: "pointer",
fontSize: 13,
}}
>
Submit
</button>
</form>
);
}