@@ -321,6 +321,13 @@ function AdminDashboard() {
321321 type = 'number'
322322 value = { newFloorData . floorNumber }
323323 onChange = { ( e ) => setNewFloorData ( prev => ( { ...prev , floorNumber : e . target . value } ) ) }
324+ onKeyPress = { ( e ) => {
325+ if ( e . key === '.' || e . key === '-' || e . key === 'e' || e . key === 'E' ) {
326+ e . preventDefault ( ) ;
327+ }
328+ } }
329+ min = '1'
330+ step = '1'
324331 className = 'w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500'
325332 placeholder = 'Enter floor number'
326333 />
@@ -359,9 +366,16 @@ function AdminDashboard() {
359366 Room Number < span className = 'text-red-500' > *</ span >
360367 </ label >
361368 < input
362- type = 'text '
369+ type = 'number '
363370 value = { room . roomNumber }
364371 onChange = { ( e ) => updateFloorRoom ( index , 'roomNumber' , e . target . value ) }
372+ onKeyPress = { ( e ) => {
373+ if ( e . key === '.' || e . key === '-' || e . key === 'e' || e . key === 'E' ) {
374+ e . preventDefault ( ) ;
375+ }
376+ } }
377+ min = '1'
378+ step = '1'
365379 className = 'w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500'
366380 placeholder = 'e.g., 101'
367381 />
@@ -387,8 +401,14 @@ function AdminDashboard() {
387401 < input
388402 type = 'number'
389403 step = '0.01'
404+ min = '0'
390405 value = { room . size }
391406 onChange = { ( e ) => updateFloorRoom ( index , 'size' , e . target . value ) }
407+ onKeyPress = { ( e ) => {
408+ if ( e . key === '-' || e . key === 'e' || e . key === 'E' ) {
409+ e . preventDefault ( ) ;
410+ }
411+ } }
392412 className = 'w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500'
393413 placeholder = 'e.g., 25.5'
394414 />
@@ -400,8 +420,15 @@ function AdminDashboard() {
400420 </ label >
401421 < input
402422 type = 'number'
423+ min = '0'
424+ step = '0.01'
403425 value = { room . rentAmount }
404426 onChange = { ( e ) => updateFloorRoom ( index , 'rentAmount' , e . target . value ) }
427+ onKeyPress = { ( e ) => {
428+ if ( e . key === '-' || e . key === 'e' || e . key === 'E' ) {
429+ e . preventDefault ( ) ;
430+ }
431+ } }
405432 className = 'w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500'
406433 placeholder = 'e.g., 5000'
407434 />
@@ -451,6 +478,13 @@ function AdminDashboard() {
451478 type = 'number'
452479 value = { newRoomData . floor }
453480 onChange = { ( e ) => setNewRoomData ( prev => ( { ...prev , floor : e . target . value } ) ) }
481+ onKeyPress = { ( e ) => {
482+ if ( e . key === '.' || e . key === '-' || e . key === 'e' || e . key === 'E' ) {
483+ e . preventDefault ( ) ;
484+ }
485+ } }
486+ min = '1'
487+ step = '1'
454488 className = 'w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500'
455489 placeholder = 'Enter floor number'
456490 />
@@ -461,9 +495,16 @@ function AdminDashboard() {
461495 Room Number < span className = 'text-red-500' > *</ span >
462496 </ label >
463497 < input
464- type = 'text '
498+ type = 'number '
465499 value = { newRoomData . roomNumber }
466500 onChange = { ( e ) => setNewRoomData ( prev => ( { ...prev , roomNumber : e . target . value } ) ) }
501+ onKeyPress = { ( e ) => {
502+ if ( e . key === '.' || e . key === '-' || e . key === 'e' || e . key === 'E' ) {
503+ e . preventDefault ( ) ;
504+ }
505+ } }
506+ min = '1'
507+ step = '1'
467508 className = 'w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500'
468509 placeholder = 'e.g., 101'
469510 />
@@ -489,8 +530,14 @@ function AdminDashboard() {
489530 < input
490531 type = 'number'
491532 step = '0.01'
533+ min = '0'
492534 value = { newRoomData . size }
493535 onChange = { ( e ) => setNewRoomData ( prev => ( { ...prev , size : e . target . value } ) ) }
536+ onKeyPress = { ( e ) => {
537+ if ( e . key === '-' || e . key === 'e' || e . key === 'E' ) {
538+ e . preventDefault ( ) ;
539+ }
540+ } }
494541 className = 'w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500'
495542 placeholder = 'e.g., 25.5'
496543 />
@@ -502,8 +549,15 @@ function AdminDashboard() {
502549 </ label >
503550 < input
504551 type = 'number'
552+ min = '0'
553+ step = '0.01'
505554 value = { newRoomData . rentAmount }
506555 onChange = { ( e ) => setNewRoomData ( prev => ( { ...prev , rentAmount : e . target . value } ) ) }
556+ onKeyPress = { ( e ) => {
557+ if ( e . key === '-' || e . key === 'e' || e . key === 'E' ) {
558+ e . preventDefault ( ) ;
559+ }
560+ } }
507561 className = 'w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500'
508562 placeholder = 'e.g., 5000'
509563 />
0 commit comments