mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-11-09 13:44:29 +08:00
made sure name is valid when registering
added a message tot he user when he needs to change his display name
This commit is contained in:
parent
df2653b225
commit
ad8aa4d730
4 changed files with 97 additions and 44 deletions
|
|
@ -421,9 +421,10 @@ a:hover {
|
|||
}
|
||||
|
||||
#menu .button .text {
|
||||
width: 0;
|
||||
overflow: hidden;
|
||||
/* transition: .25s; */
|
||||
font-size: .65rem;
|
||||
line-height: .65rem;
|
||||
align-self: center;
|
||||
margin-left: .25rem;
|
||||
}
|
||||
|
||||
/* #menu .button:hover .text{
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@
|
|||
|
||||
</head>
|
||||
<body>
|
||||
<div class="nameChangeMessage" style="background-color: var(--main-color);padding: 0.5rem;text-align: center;color: var(--bg-color);display:none;">
|
||||
Important information about your account. Please click this message.
|
||||
</div>
|
||||
<div class="notification">Signed in</div>
|
||||
<div id="versionHistoryWrapper" class="hidden">
|
||||
<div id="versionHistory">
|
||||
|
|
@ -113,6 +116,7 @@
|
|||
<div class="icon">
|
||||
<i class="fas fa-fw fa-user"></i>
|
||||
</div>
|
||||
<div class="text"></div>
|
||||
</div>
|
||||
<div class="button login" tabindex="2" href="/login" onclick="this.blur();">
|
||||
<div class="icon">
|
||||
|
|
|
|||
|
|
@ -49,56 +49,61 @@ function signIn() {
|
|||
|
||||
function signUp() {
|
||||
$(".pageLogin .preloader").removeClass('hidden');
|
||||
let name = $(".pageLogin .register input")[0].value;
|
||||
let nname = $(".pageLogin .register input")[0].value;
|
||||
let email = $(".pageLogin .register input")[1].value;
|
||||
let password = $(".pageLogin .register input")[2].value;
|
||||
let passwordVerify = $(".pageLogin .register input")[3].value;
|
||||
|
||||
if (name == "") {
|
||||
showNotification("Name is required", 3000);
|
||||
$(".pageLogin .preloader").addClass('hidden');
|
||||
return;
|
||||
}
|
||||
const namecheck = firebase.functions().httpsCallable('checkNameAvailability')
|
||||
|
||||
if (password != passwordVerify) {
|
||||
showNotification("Passwords do not match", 3000);
|
||||
$(".pageLogin .preloader").addClass('hidden');
|
||||
return;
|
||||
}
|
||||
|
||||
firebase.auth().createUserWithEmailAndPassword(email, password).then(user => {
|
||||
// Account has been created here.
|
||||
let usr = user.user;
|
||||
usr.updateProfile({
|
||||
displayName: name
|
||||
}).then(function() {
|
||||
// Update successful.
|
||||
showNotification("Account created", 2000);
|
||||
try{
|
||||
firebase.analytics().logEvent("accountCreated", usr.uid);
|
||||
}catch(e){
|
||||
console.log("Analytics unavailable");
|
||||
}
|
||||
namecheck({name:nname}).then(d => {
|
||||
if(d.data === 0){
|
||||
showNotification("Name unavailable", 3000);
|
||||
$(".pageLogin .preloader").addClass('hidden');
|
||||
changePage('account');
|
||||
}).catch(function(error) {
|
||||
// An error happened.
|
||||
usr.delete().then(function() {
|
||||
// User deleted.
|
||||
showNotification("Name invalid", 2000);
|
||||
$(".pageLogin .preloader").addClass('hidden');
|
||||
return;
|
||||
}else if(d.data === 1){
|
||||
if (password != passwordVerify) {
|
||||
showNotification("Passwords do not match", 3000);
|
||||
$(".pageLogin .preloader").addClass('hidden');
|
||||
return;
|
||||
}
|
||||
firebase.auth().createUserWithEmailAndPassword(email, password).then(user => {
|
||||
// Account has been created here.
|
||||
let usr = user.user;
|
||||
usr.updateProfile({
|
||||
displayName: name
|
||||
}).then(function() {
|
||||
// Update successful.
|
||||
showNotification("Account created", 2000);
|
||||
try{
|
||||
firebase.analytics().logEvent("accountCreated", usr.uid);
|
||||
}catch(e){
|
||||
console.log("Analytics unavailable");
|
||||
}
|
||||
$(".pageLogin .preloader").addClass('hidden');
|
||||
changePage('account');
|
||||
}).catch(function(error) {
|
||||
// An error happened.
|
||||
usr.delete().then(function() {
|
||||
// User deleted.
|
||||
showNotification("Name invalid", 2000);
|
||||
$(".pageLogin .preloader").addClass('hidden');
|
||||
}).catch(function(error) {
|
||||
// An error happened.
|
||||
$(".pageLogin .preloader").addClass('hidden');
|
||||
});
|
||||
});
|
||||
}).catch(function(error) {
|
||||
// An error happened.
|
||||
// Handle Errors here.
|
||||
var errorCode = error.code;
|
||||
var errorMessage = error.message;
|
||||
showNotification(errorMessage, 5000);
|
||||
$(".pageLogin .preloader").addClass('hidden');
|
||||
});
|
||||
});
|
||||
}).catch(function(error) {
|
||||
// Handle Errors here.
|
||||
var errorCode = error.code;
|
||||
var errorMessage = error.message;
|
||||
showNotification(errorMessage, 5000);
|
||||
$(".pageLogin .preloader").addClass('hidden');
|
||||
});
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -127,6 +132,8 @@ firebase.auth().onAuthStateChanged(function(user) {
|
|||
showNotification('Signed in', 1000);
|
||||
$(".pageLogin .preloader").addClass('hidden');
|
||||
updateAccountLoginButton();
|
||||
verifyUsername();
|
||||
$("#menu .button.account .text").text(displayName);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -96,6 +96,47 @@ function getReleasesFromGitHub() {
|
|||
})
|
||||
}
|
||||
|
||||
function verifyUsername(){
|
||||
// test = firebase.functions().httpsCallable('moveResults')
|
||||
// test2 = firebase.functions().httpsCallable('getNames')
|
||||
// test3 = firebase.functions().httpsCallable('checkNameAvailability')
|
||||
const check = firebase.functions().httpsCallable('checkIfNeedsToChangeName')
|
||||
check({uid: firebase.auth().currentUser.uid}).then(data => {
|
||||
if(data.data === 1){
|
||||
$('.nameChangeMessage').slideDown();
|
||||
}else if(data.data === 2){
|
||||
$('.nameChangeMessage').slideDown();
|
||||
}
|
||||
})
|
||||
|
||||
$('.nameChangeMessage').click(e => {
|
||||
alert(`Im currently preparing the system to be ready for leaderboards and other awesome features - it looks like you need to change your display name.
|
||||
|
||||
It either contains special characters, or your display name is the same as someone elses and your account was made later.
|
||||
|
||||
Sorry for this inconvenience.
|
||||
`);
|
||||
let newName = prompt('Please provide a new username - you can use lowercase and uppercase characters, numbers and one of these special characters ( . _ - ). The new name cannot be longer than 12 characters.',firebase.auth().currentUser.displayName);
|
||||
|
||||
cn = firebase.functions().httpsCallable('changeName');
|
||||
cn({uid:firebase.auth().currentUser.uid,name:newName}).then(d => {
|
||||
if(d.data === 1){
|
||||
//all good
|
||||
alert('Thanks! All good.');
|
||||
location.reload();
|
||||
$('.nameChangeMessage').slideUp();
|
||||
}else if(d.data === 0){
|
||||
//invalid or unavailable
|
||||
alert('Name invalid or taken. Try again.');
|
||||
}else if(d.data === -1){
|
||||
//error
|
||||
alert('Unknown error. Contact Miodec on Discord.');
|
||||
}
|
||||
});
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
function getLastChar(word) {
|
||||
return word.charAt(word.length - 1);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue