* add button to skip sending reset code * add validation to reset code * comments * update test id * consistency sneak in - everything capitalized * add change password button to settings * create a modal for password change * change password modal * remove unused styles * more improvements * improve layout * change done button color * add already have a code to modal * remove unused prop * icons, auto add dash * cleanup * better appearance on android * Remove log * Improve error messages and add specificity to function names --------- Co-authored-by: Paul Frazee <pfrazee@gmail.com>
19 lines
474 B
TypeScript
19 lines
474 B
TypeScript
// Regex for base32 string for testing reset code
|
|
const RESET_CODE_REGEX = /^[A-Z2-7]{5}-[A-Z2-7]{5}$/
|
|
|
|
export function checkAndFormatResetCode(code: string): string | false {
|
|
// Trim the reset code
|
|
let fixed = code.trim().toUpperCase()
|
|
|
|
// Add a dash if needed
|
|
if (fixed.length === 10) {
|
|
fixed = `${fixed.slice(0, 5)}-${fixed.slice(5, 10)}`
|
|
}
|
|
|
|
// Check that it is a valid format
|
|
if (!RESET_CODE_REGEX.test(fixed)) {
|
|
return false
|
|
}
|
|
|
|
return fixed
|
|
}
|