botserver/web/desktop/settings/settings.js

54 lines
1.4 KiB
JavaScript
Raw Normal View History

// Settings module JavaScript
document.addEventListener('alpine:init', () => {
Alpine.data('settings', () => ({
username: '',
email: '',
bio: '',
errors: {},
submitForm() {
this.errors = {};
let isValid = true;
// Validate username
if (this.username.length < 2) {
this.errors.username = "Username must be at least 2 characters.";
isValid = false;
} else if (this.username.length > 30) {
this.errors.username = "Username must not be longer than 30 characters.";
isValid = false;
}
// Validate email
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRegex.test(this.email)) {
this.errors.email = "Please enter a valid email address.";
isValid = false;
}
// Validate bio
if (this.bio.length < 4) {
this.errors.bio = "Bio must be at least 4 characters.";
isValid = false;
} else if (this.bio.length > 160) {
this.errors.bio = "Bio must not be longer than 160 characters.";
isValid = false;
}
if (isValid) {
this.saveSettings();
}
},
saveSettings() {
const settings = {
username: this.username,
email: this.email,
bio: this.bio
};
console.log('Saving settings:', settings);
// Here you would typically send the data to a server
}
}));
});