Skip to content

Commit 7d26115

Browse files
committed
Avoid using string comparison and refactor switch-case
1 parent 4354b32 commit 7d26115

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/NumberPadProvider.tsx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,26 +56,29 @@ export const NumberPadProvider = ({
5656
const handleAppend: NumberPadActionContextType['onAppend'] = (
5757
stack: string,
5858
) => {
59-
const prevValue = stacks.join('');
60-
61-
if (prevValue.length >= maxLength) {
59+
if (stacks.length >= maxLength) {
6260
return;
6361
}
6462

6563
switch (stack) {
6664
case '.':
67-
if (prevValue === '') {
65+
if (stacks.length === 0) {
6866
setStacks(['0', stack]);
6967
break;
7068
}
71-
if (prevValue.includes('.')) {
69+
if (!stacks.includes('.')) {
70+
setStacks([...stacks, stack]);
7271
break;
7372
}
73+
// Skip this append
74+
break;
7475
case '0':
75-
if (prevValue === '') {
76+
if (stacks.length === 0) {
7677
setStacks([stack, '.']);
7778
break;
7879
}
80+
setStacks([...stacks, stack]);
81+
break;
7982
default:
8083
setStacks([...stacks, stack]);
8184
break;

0 commit comments

Comments
 (0)