diff --git a/addon/states/hours-focused.js b/addon/states/hours-focused.js index 05ea4ee..550dda9 100644 --- a/addon/states/hours-focused.js +++ b/addon/states/hours-focused.js @@ -55,6 +55,21 @@ export default State.extend({ down(manager) { manager.get("input").decrementHours(); + }, + + key(manager, code) { + if (!isNumberCode(code)) { + return; // no-op + } + + const num = keyCodeToNumber(code); + manager.get("input").setHours(num); + + if (num <= 2) { + manager.transitionTo("digit2"); + } else { + manager.transitionTo("minutes"); + } } }); diff --git a/addon/states/minutes-focused.js b/addon/states/minutes-focused.js index 48d8600..7ac14bc 100644 --- a/addon/states/minutes-focused.js +++ b/addon/states/minutes-focused.js @@ -68,5 +68,20 @@ export default State.extend({ down(manager) { manager.get("input").decrementMinutes(); + }, + + key(manager, code) { + if (!isNumberCode(code)) { + return; // no-op + } + + const num = keyCodeToNumber(code); + manager.get("input").setMinutes(num); + + if (num <= 5) { + manager.transitionTo("digit2"); + } else if (manager.get("input.hour12")) { + manager.transitionTo("period"); + } } });