validating nym
This commit is contained in:
parent
fd037b659f
commit
685fbbbde2
3 changed files with 78 additions and 8 deletions
|
|
@ -51,6 +51,11 @@ h1 {
|
||||||
width: 10%;
|
width: 10%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text-warning {
|
||||||
|
color: red;
|
||||||
|
font-weight: 800;
|
||||||
|
}
|
||||||
|
|
||||||
.button-primary {
|
.button-primary {
|
||||||
background: #e1c300;
|
background: #e1c300;
|
||||||
border-radius: 1vw;
|
border-radius: 1vw;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
class ContactDetails {
|
/* class ContactDetails {
|
||||||
constructor(rootUiElement) {
|
constructor(rootUiElement) {
|
||||||
this.rootUiElement = rootUiElement;
|
this.rootUiElement = rootUiElement;
|
||||||
this.details = [];
|
this.details = [];
|
||||||
|
|
@ -108,3 +108,67 @@ window.onload = () => {
|
||||||
}, 1000);
|
}, 1000);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
|
||||||
|
Behaviours:
|
||||||
|
|
||||||
|
- Validate inputs
|
||||||
|
- Only activate submit profile when nym and one contact method are alive
|
||||||
|
- Send the data and redirect on button click
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
let nymInput;
|
||||||
|
let nymInputValidationWarning;
|
||||||
|
let phoneInput;
|
||||||
|
let whatsappInput;
|
||||||
|
let telegramInput;
|
||||||
|
let emailInput;
|
||||||
|
let nostrInput;
|
||||||
|
let signalInput;
|
||||||
|
let submitProfileButton;
|
||||||
|
|
||||||
|
function debounce(func, wait) {
|
||||||
|
let timeout;
|
||||||
|
return function (...args) {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
timeout = setTimeout(() => func.apply(this, args), wait);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function validateNymInput() {
|
||||||
|
const nymValue = nymInput.value.trim();
|
||||||
|
const isValid = nymValue.length >= 3 && nymValue.length <= 128;
|
||||||
|
if (isValid) {
|
||||||
|
nymInputValidationWarning.style.display = 'none';
|
||||||
|
} else {
|
||||||
|
nymInputValidationWarning.style.display = 'block';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
validateNymInput = debounce(validateNymInput, 500);
|
||||||
|
|
||||||
|
function onLoadErrands() {
|
||||||
|
nymInput = document.getElementById('nym-input');
|
||||||
|
nymInputValidationWarning = document.getElementById(
|
||||||
|
'nym-input-validation-warning'
|
||||||
|
);
|
||||||
|
phoneInput = document.getElementById('phone-input');
|
||||||
|
whatsappInput = document.getElementById('whatsapp-input');
|
||||||
|
telegramInput = document.getElementById('telegram-input');
|
||||||
|
emailInput = document.getElementById('email-input');
|
||||||
|
nostrInput = document.getElementById('nostr-input');
|
||||||
|
signalInput = document.getElementById('signal-input');
|
||||||
|
submitProfileButton = document.getElementById('submit-profile-button');
|
||||||
|
|
||||||
|
nymInput.addEventListener('input', function (event) {
|
||||||
|
validateNymInput();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = () => {
|
||||||
|
onLoadErrands();
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
id="nym-input"
|
id="nym-input"
|
||||||
placeholder="ShadowySuperCoder"
|
placeholder="ShadowySuperCoder"
|
||||||
/></label>
|
/></label>
|
||||||
|
<p id="nym-input-validation-warning" class="text-warning" style="display: none">Debe tener al menos 3 caracteres.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="over-background">
|
<div class="over-background">
|
||||||
|
|
@ -65,37 +66,37 @@
|
||||||
<img src="/img/phone.svg" />
|
<img src="/img/phone.svg" />
|
||||||
|
|
||||||
<p>Teléfono</p>
|
<p>Teléfono</p>
|
||||||
<input placeholder="666777888" />
|
<input id="phone-input" placeholder="666777888" />
|
||||||
</div>
|
</div>
|
||||||
<div class="badge" data-type="whatsapp">
|
<div class="badge" data-type="whatsapp">
|
||||||
<img src="/img/square-whatsapp.svg" />
|
<img src="/img/square-whatsapp.svg" />
|
||||||
<p>Whatsapp</p>
|
<p>Whatsapp</p>
|
||||||
<input placeholder="666777888" />
|
<input id="whatsapp-input" placeholder="666777888" />
|
||||||
</div>
|
</div>
|
||||||
<div class="badge" data-type="telegram">
|
<div class="badge" data-type="telegram">
|
||||||
<img src="/img/telegram.svg" />
|
<img src="/img/telegram.svg" />
|
||||||
<p>Telegram</p>
|
<p>Telegram</p>
|
||||||
<input placeholder="666777888 o @TuTag" />
|
<input id="telegram-input" placeholder="666777888 o @TuTag" />
|
||||||
</div>
|
</div>
|
||||||
<div class="badge" data-type="email">
|
<div class="badge" data-type="email">
|
||||||
<img src="/img/envelope.svg" />
|
<img src="/img/envelope.svg" />
|
||||||
<p>Email</p>
|
<p>Email</p>
|
||||||
<input placeholder="tu@correo.com" />
|
<input id="email-input" placeholder="tu@correo.com" />
|
||||||
</div>
|
</div>
|
||||||
<div class="badge" data-type="nostr">
|
<div class="badge" data-type="nostr">
|
||||||
<img src="/img/lasecagold_ostrich.svg" />
|
<img src="/img/lasecagold_ostrich.svg" />
|
||||||
<p>Nostr</p>
|
<p>Nostr</p>
|
||||||
<input placeholder="Npub" />
|
<input id="nostr-input" placeholder="Npub" />
|
||||||
</div>
|
</div>
|
||||||
<div class="badge" data-type="signal">
|
<div class="badge" data-type="signal">
|
||||||
<img src="/img/signal-messenger.svg" />
|
<img src="/img/signal-messenger.svg" />
|
||||||
<p>Signal</p>
|
<p>Signal</p>
|
||||||
<input placeholder="666777888" />
|
<input id="signal-input" placeholder="666777888" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
id="submit-details-button"
|
id="submit-profile-button"
|
||||||
type="submit"
|
type="submit"
|
||||||
class="button-primary button-large"
|
class="button-primary button-large"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue