@@ -23,10 +23,10 @@ export const diff = (originalText: string, typedText: string): DiffResult => {
23
23
}
24
24
const correctWord = correctWords [ i ] ;
25
25
const typedWord = typedWords [ i ] ;
26
- if ( ! correctWord || ! typedWord ) {
26
+ if ( ! correctWord ) {
27
27
continue ;
28
28
}
29
- const wordDiff = diffWord ( correctWord , typedWord ) ;
29
+ const wordDiff = diffWord ( correctWord , typedWord || "" ) ;
30
30
diff . push ( ...wordDiff ) ;
31
31
diff . push ( { value : " " , type : "spacer" } ) ;
32
32
}
@@ -37,10 +37,10 @@ export const diff = (originalText: string, typedText: string): DiffResult => {
37
37
// compare current word
38
38
const correctWord = correctWords [ currentWordIndex ] ;
39
39
const typedWord = typedWords [ currentWordIndex ] ;
40
- if ( ! correctWord || ! typedWord ) {
40
+ if ( ! correctWord ) {
41
41
return { diff, end : false } ;
42
42
}
43
- const currentWordDiff = diffCurrentWord ( correctWord , typedWord ) ;
43
+ const currentWordDiff = diffCurrentWord ( correctWord , typedWord || "" ) ;
44
44
diff . push ( ...currentWordDiff ) ;
45
45
46
46
// words AFTER current word are untouched
@@ -71,10 +71,10 @@ const diffWord = (originalWord: string, typedWord: string) => {
71
71
for ( let i = 0 ; i < typedLength ; i ++ ) {
72
72
let originalChar = originalWord [ i ] ;
73
73
let typedChar = typedWord [ i ] ;
74
- if ( ! originalChar || ! typedChar ) {
74
+ if ( ! originalChar ) {
75
75
continue ;
76
76
}
77
- diff . push ( diffChar ( originalChar , typedChar ) ) ;
77
+ diff . push ( diffChar ( originalChar , typedChar || "" ) ) ;
78
78
}
79
79
// the rest are missing
80
80
for ( let i = typedLength ; i < correctLength ; i ++ ) {
@@ -92,18 +92,16 @@ const diffWord = (originalWord: string, typedWord: string) => {
92
92
for ( let i = 0 ; i < correctLength ; i ++ ) {
93
93
let originalChar = originalWord [ i ] ;
94
94
let typedChar = typedWord [ i ] ;
95
- if ( ! originalChar || ! typedChar ) {
95
+ if ( ! originalChar ) {
96
96
continue ;
97
97
}
98
- diff . push ( diffChar ( originalChar , typedChar ) ) ;
98
+ diff . push ( diffChar ( originalChar , typedChar || "" ) ) ;
99
99
}
100
100
// the rest are extra
101
101
for ( let i = correctLength ; i < typedLength ; i ++ ) {
102
102
let typedChar = typedWord [ i ] ;
103
- if ( ! typedChar ) {
104
- continue ;
105
- }
106
- diff . push ( { value : typedChar , type : "extra" } ) ;
103
+
104
+ diff . push ( { value : typedChar || "" , type : "extra" } ) ;
107
105
}
108
106
}
109
107
@@ -112,10 +110,10 @@ const diffWord = (originalWord: string, typedWord: string) => {
112
110
for ( let i = 0 ; i < correctLength ; i ++ ) {
113
111
let originalChar = originalWord [ i ] ;
114
112
let typedChar = typedWord [ i ] ;
115
- if ( ! originalChar || ! typedChar ) {
113
+ if ( ! originalChar ) {
116
114
continue ;
117
115
}
118
- diff . push ( diffChar ( originalChar , typedChar ) ) ;
116
+ diff . push ( diffChar ( originalChar , typedChar || "" ) ) ;
119
117
}
120
118
}
121
119
@@ -140,10 +138,10 @@ const diffCurrentWord = (correctWord: string, typedWord: string) => {
140
138
for ( let i = 0 ; i < typedLength ; i ++ ) {
141
139
let originalChar = correctWord [ i ] ;
142
140
let typedChar = typedWord [ i ] ;
143
- if ( ! originalChar || ! typedChar ) {
141
+ if ( ! originalChar ) {
144
142
continue ;
145
143
}
146
- diff . push ( diffChar ( originalChar , typedChar ) ) ;
144
+ diff . push ( diffChar ( originalChar , typedChar || "" ) ) ;
147
145
}
148
146
// the rest are untouched
149
147
for ( let i = typedLength ; i < correctLength ; i ++ ) {
@@ -161,18 +159,15 @@ const diffCurrentWord = (correctWord: string, typedWord: string) => {
161
159
for ( let i = 0 ; i < correctLength ; i ++ ) {
162
160
let originalChar = correctWord [ i ] ;
163
161
let typedChar = typedWord [ i ] ;
164
- if ( ! originalChar || ! typedChar ) {
162
+ if ( ! originalChar ) {
165
163
continue ;
166
164
}
167
- diff . push ( diffChar ( originalChar , typedChar ) ) ;
165
+ diff . push ( diffChar ( originalChar , typedChar || "" ) ) ;
168
166
}
169
167
// the rest are extra
170
168
for ( let i = correctLength ; i < typedLength ; i ++ ) {
171
169
let typedChar = typedWord [ i ] ;
172
- if ( ! typedChar ) {
173
- continue ;
174
- }
175
- diff . push ( { value : typedChar , type : "extra" } ) ;
170
+ diff . push ( { value : typedChar || "" , type : "extra" } ) ;
176
171
}
177
172
}
178
173
@@ -181,10 +176,10 @@ const diffCurrentWord = (correctWord: string, typedWord: string) => {
181
176
for ( let i = 0 ; i < correctLength ; i ++ ) {
182
177
let originalChar = correctWord [ i ] ;
183
178
let typedChar = typedWord [ i ] ;
184
- if ( ! originalChar || ! typedChar ) {
179
+ if ( ! originalChar ) {
185
180
continue ;
186
181
}
187
- diff . push ( diffChar ( originalChar , typedChar ) ) ;
182
+ diff . push ( diffChar ( originalChar , typedChar || "" ) ) ;
188
183
}
189
184
}
190
185
0 commit comments