File tree Expand file tree Collapse file tree 2 files changed +19
-5
lines changed
npm-packages/dashboard-common/src/features/data/components Expand file tree Collapse file tree 2 files changed +19
-5
lines changed Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ type DateTimePickerProps = {
1919 onError ?: ( error : string | undefined ) => void ;
2020 onKeyDown ?: (
2121 event : React . KeyboardEvent < HTMLInputElement > ,
22- date : Date ,
22+ date : Date | undefined ,
2323 ) => void ;
2424} ;
2525
@@ -211,9 +211,13 @@ export function DateTimePicker({
211211 } ;
212212
213213 const handleKeyDown = ( event : React . KeyboardEvent < HTMLInputElement > ) => {
214+ if ( ! onKeyDown ) return ;
215+
214216 const parsedDate = parse ( inputValue , dateTimeFormat , new Date ( ) ) ;
215217 if ( ! Number . isNaN ( parsedDate . getTime ( ) ) ) {
216- onKeyDown ?.( event , parsedDate ) ;
218+ onKeyDown ( event , parsedDate ) ;
219+ } else if ( inputValue . trim ( ) === "" && event . key === "Enter" ) {
220+ onKeyDown ( event , undefined ) ;
217221 }
218222 } ;
219223
Original file line number Diff line number Diff line change @@ -81,7 +81,7 @@ export function CellEditor({
8181 unset
8282 </ div >
8383 ) }
84- { showAsDate && isTimestampLike ? (
84+ { showAsDate && isTimestampLike && typeof editedValue === "number" ? (
8585 < div className = "w-full" >
8686 < DateTimePicker
8787 date = { new Date ( editedValue as number ) }
@@ -91,8 +91,18 @@ export function CellEditor({
9191 onError = { setError }
9292 onKeyDown = { ( e , date ) => {
9393 if ( e . key === "Enter" ) {
94- setEditedValue ( date . getTime ( ) ) ;
95- void saveEditedValue ( date . getTime ( ) ) ;
94+ if ( date === undefined ) {
95+ // User cleared the input - check if undefined is allowed
96+ if ( ! allowTopLevelUndefined ) {
97+ setError ( "This field is required and cannot be unset" ) ;
98+ return ;
99+ }
100+ setEditedValue ( UNDEFINED_PLACEHOLDER ) ;
101+ void saveEditedValue ( UNDEFINED_PLACEHOLDER ) ;
102+ } else {
103+ setEditedValue ( date . getTime ( ) ) ;
104+ void saveEditedValue ( date . getTime ( ) ) ;
105+ }
96106 }
97107 } }
98108 />
You can’t perform that action at this time.
0 commit comments