date input: add onchange callback prop
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
invalidMessage?: string;
|
invalidMessage?: string;
|
||||||
class?: ClassValue | undefined | null;
|
class?: ClassValue | undefined | null;
|
||||||
format?: FormatString[];
|
format?: FormatString[];
|
||||||
|
onchange?: (date: CalendarDate | null) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
let {
|
let {
|
||||||
@@ -37,7 +38,8 @@
|
|||||||
required = false,
|
required = false,
|
||||||
invalidMessage = 'Valid date is required',
|
invalidMessage = 'Valid date is required',
|
||||||
class: classValue,
|
class: classValue,
|
||||||
format = ['year', 'month', 'day']
|
format = ['year', 'month', 'day'],
|
||||||
|
onchange
|
||||||
}: Props = $props();
|
}: Props = $props();
|
||||||
|
|
||||||
const id = $derived(generateIdentifier('dateinput', name));
|
const id = $derived(generateIdentifier('dateinput', name));
|
||||||
@@ -109,6 +111,7 @@
|
|||||||
setPrevious();
|
setPrevious();
|
||||||
previousYearValue = undefined;
|
previousYearValue = undefined;
|
||||||
value = null;
|
value = null;
|
||||||
|
onchange?.(value);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -122,6 +125,7 @@
|
|||||||
setPrevious();
|
setPrevious();
|
||||||
previousMonthValue = undefined;
|
previousMonthValue = undefined;
|
||||||
value = null;
|
value = null;
|
||||||
|
onchange?.(value);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -135,6 +139,7 @@
|
|||||||
setPrevious();
|
setPrevious();
|
||||||
previousDayValue = undefined;
|
previousDayValue = undefined;
|
||||||
value = null;
|
value = null;
|
||||||
|
onchange?.(value);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -146,6 +151,7 @@
|
|||||||
day ?? (value ? value.day : min.day)
|
day ?? (value ? value.day : min.day)
|
||||||
);
|
);
|
||||||
value = newDate;
|
value = newDate;
|
||||||
|
onchange?.(value);
|
||||||
};
|
};
|
||||||
|
|
||||||
type caretPos = { start: number; end: number } | null;
|
type caretPos = { start: number; end: number } | null;
|
||||||
|
|||||||
Reference in New Issue
Block a user