mirror of
				https://gitlab.nic.cz/turris/reforis/foris-js.git
				synced 2025-10-31 22:30:31 +01:00 
			
		
		
		
	Enhance NumberInput component with keyboard & touch accessibility
This commit is contained in:
		| @@ -50,6 +50,20 @@ function NumberInput({ onChange, inlineText, value, ...props }) { | |||||||
|         -1 |         -1 | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|  |     function handleKeyDown(event, enableFunction) { | ||||||
|  |         if (event.key === "Enter" || event.key === " ") { | ||||||
|  |             event.preventDefault(); | ||||||
|  |             enableFunction(true); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function handleKeyUp(event, enableFunction) { | ||||||
|  |         if (event.key === "Enter" || event.key === " ") { | ||||||
|  |             event.preventDefault(); | ||||||
|  |             enableFunction(false); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     return ( |     return ( | ||||||
|         <Input type="number" onChange={onChange} value={value} {...props}> |         <Input type="number" onChange={onChange} value={value} {...props}> | ||||||
|             {inlineText && ( |             {inlineText && ( | ||||||
| @@ -60,7 +74,15 @@ function NumberInput({ onChange, inlineText, value, ...props }) { | |||||||
|                 className="btn btn-outline-secondary" |                 className="btn btn-outline-secondary" | ||||||
|                 onMouseDown={() => enableIncrease(true)} |                 onMouseDown={() => enableIncrease(true)} | ||||||
|                 onMouseUp={() => enableIncrease(false)} |                 onMouseUp={() => enableIncrease(false)} | ||||||
|                 aria-label="Increase" |                 onMouseLeave={() => enableIncrease(false)} | ||||||
|  |                 onTouchStart={() => enableIncrease(true)} | ||||||
|  |                 onTouchEnd={() => enableIncrease(false)} | ||||||
|  |                 onTouchCancel={() => enableIncrease(false)} | ||||||
|  |                 onKeyDown={(event) => handleKeyDown(event, enableIncrease)} | ||||||
|  |                 onKeyUp={(event) => handleKeyUp(event, enableIncrease)} | ||||||
|  |                 onBlur={() => enableIncrease(false)} | ||||||
|  |                 title={_("Increase value. Hint: Hold to increase faster.")} | ||||||
|  |                 aria-label={_("Increase value. Hint: Hold to increase faster.")} | ||||||
|             > |             > | ||||||
|                 <FontAwesomeIcon icon={faPlus} /> |                 <FontAwesomeIcon icon={faPlus} /> | ||||||
|             </button> |             </button> | ||||||
| @@ -69,7 +91,15 @@ function NumberInput({ onChange, inlineText, value, ...props }) { | |||||||
|                 className="btn btn-outline-secondary" |                 className="btn btn-outline-secondary" | ||||||
|                 onMouseDown={() => enableDecrease(true)} |                 onMouseDown={() => enableDecrease(true)} | ||||||
|                 onMouseUp={() => enableDecrease(false)} |                 onMouseUp={() => enableDecrease(false)} | ||||||
|                 aria-label="Decrease" |                 onMouseLeave={() => enableDecrease(false)} | ||||||
|  |                 onTouchStart={() => enableDecrease(true)} | ||||||
|  |                 onTouchEnd={() => enableDecrease(false)} | ||||||
|  |                 onTouchCancel={() => enableDecrease(false)} | ||||||
|  |                 onKeyDown={(event) => handleKeyDown(event, enableDecrease)} | ||||||
|  |                 onKeyUp={(event) => handleKeyUp(event, enableDecrease)} | ||||||
|  |                 onBlur={() => enableDecrease(false)} | ||||||
|  |                 title={_("Decrease value. Hint: Hold to decrease faster.")} | ||||||
|  |                 aria-label={_("Decrease value. Hint: Hold to decrease faster.")} | ||||||
|             > |             > | ||||||
|                 <FontAwesomeIcon icon={faMinus} /> |                 <FontAwesomeIcon icon={faMinus} /> | ||||||
|             </button> |             </button> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user