Skip to content

Commit 7f4cf76

Browse files
committed
impr: parse username locally before querying the server
also fixes non user friendly error messages !nuf
1 parent 313897d commit 7f4cf76

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

frontend/src/ts/pages/login.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import * as Skeleton from "../utils/skeleton";
77
import * as Misc from "../utils/misc";
88
import TypoList from "../utils/typo-list";
99
import { z } from "zod";
10+
import { UserNameSchema } from "@monkeytype/contracts/users";
1011

1112
export function enableSignUpButton(): void {
1213
$(".page.pageLogin .register.side button").prop("disabled", false);
@@ -59,6 +60,14 @@ const checkNameDebounced = debounce(1000, async () => {
5960
updateSignupButton();
6061
return;
6162
}
63+
64+
const parsed = UserNameSchema.safeParse(val);
65+
if (!parsed.success) {
66+
nameIndicator.show("unavailable", parsed.error.errors[0]?.message);
67+
updateSignupButton();
68+
return;
69+
}
70+
6271
const response = await Ape.users.getNameAvailability({
6372
params: { name: val },
6473
});

0 commit comments

Comments
 (0)