()
| 107 | let parser = useMemo(() => new NumberParser(locale, {maximumFractionDigits: 0}), [locale]); |
| 108 | |
| 109 | let backspace = () => { |
| 110 | if (segment.text === segment.placeholder) { |
| 111 | focusManager.focusPrevious(); |
| 112 | } |
| 113 | if (parser.isValidPartialNumber(segment.text) && !state.isReadOnly && !segment.isPlaceholder) { |
| 114 | let newValue = segment.text.slice(0, -1); |
| 115 | let parsed = parser.parse(newValue); |
| 116 | newValue = parsed === 0 ? '' : newValue; |
| 117 | if (newValue.length === 0 || parsed === 0) { |
| 118 | state.clearSegment(segment.type); |
| 119 | } else { |
| 120 | state.setSegment(segment.type, parsed); |
| 121 | } |
| 122 | enteredKeys.current = newValue; |
| 123 | } else if (segment.type === 'dayPeriod' || segment.type === 'era') { |
| 124 | state.clearSegment(segment.type); |
| 125 | } |
| 126 | }; |
| 127 | |
| 128 | let onKeyDown = e => { |
| 129 | // Firefox does not fire selectstart for Ctrl/Cmd + A |
no test coverage detected