|
1 | | -import { Accessor, createSignal, JSX, Setter, Show } from "solid-js"; |
| 1 | +import { Accessor, createSignal, JSX, onMount, Setter, Show } from "solid-js"; |
2 | 2 | import { |
3 | 3 | RnClassName, |
4 | 4 | DatePickerOnChange, |
|
8 | 8 | } from "../../interface/general"; |
9 | 9 | import { |
10 | 10 | convertDateObjectToDate, |
| 11 | + convertDateToDateObject, |
11 | 12 | labelFormat, |
12 | 13 | } from "@rnwonder/simple-datejs/utils"; |
13 | 14 | import { DatePicker, DatePickerProps } from "../DatePicker"; |
@@ -243,6 +244,54 @@ export const DatePickerGroup = (props: DatePickerInputSJProps) => { |
243 | 244 |
|
244 | 245 | const inputJSX = renderCustomJSX(props.renderInput); |
245 | 246 |
|
| 247 | + onMount(() => { |
| 248 | + const valueData = props.value?.()?.value || value().value; |
| 249 | + |
| 250 | + if (valueData.selected || valueData.selectedDateObject) { |
| 251 | + const selectedDate = valueData.selected |
| 252 | + ? convertDateToDateObject(new Date(valueData.selected)) |
| 253 | + : valueData.selectedDateObject; |
| 254 | + |
| 255 | + handleOnChange({ |
| 256 | + type: "single", |
| 257 | + selectedDate, |
| 258 | + }); |
| 259 | + } |
| 260 | + |
| 261 | + if (valueData.start || valueData.startDateObject) { |
| 262 | + const startDate = valueData.start |
| 263 | + ? convertDateToDateObject(new Date(valueData.start)) |
| 264 | + : valueData.startDateObject; |
| 265 | + |
| 266 | + const endDate = valueData.end |
| 267 | + ? convertDateToDateObject(new Date(valueData.end)) |
| 268 | + : valueData.endDateObject; |
| 269 | + |
| 270 | + handleOnChange({ |
| 271 | + type: "range", |
| 272 | + startDate, |
| 273 | + endDate, |
| 274 | + }); |
| 275 | + } |
| 276 | + |
| 277 | + if (valueData.multiple || valueData.multipleDateObject) { |
| 278 | + const multipleDateObject = valueData.multipleDateObject?.length |
| 279 | + ? valueData.multipleDateObject |
| 280 | + : valueData.multiple |
| 281 | + ? valueData.multiple.map((date) => |
| 282 | + convertDateToDateObject(new Date(date)), |
| 283 | + ) |
| 284 | + : undefined; |
| 285 | + |
| 286 | + if (!multipleDateObject?.length) return; |
| 287 | + |
| 288 | + handleOnChange({ |
| 289 | + type: "multiple", |
| 290 | + multipleDates: multipleDateObject, |
| 291 | + }); |
| 292 | + } |
| 293 | + }); |
| 294 | + |
246 | 295 | return ( |
247 | 296 | <Popover |
248 | 297 | isShown={isShown()} |
|
0 commit comments