3feaa5d88f
Reload with turbolinks, error messages, confirm password validation Login and Signup modals
60 lines
1.1 KiB
JavaScript
60 lines
1.1 KiB
JavaScript
import { Controller } from "stimulus"
|
|
|
|
export default class extends Controller {
|
|
static targets = ["signupModal", "loginModal"]
|
|
|
|
openLoginModal() {
|
|
this.loginModalTarget.classList.remove("hidden")
|
|
}
|
|
|
|
closeLoginModal() {
|
|
this.loginModalTarget.classList.add("hidden")
|
|
}
|
|
|
|
openSignupModal() {
|
|
this.closeLoginModal()
|
|
this.signupModalTarget.classList.remove("hidden")
|
|
}
|
|
|
|
closeSignupModal() {
|
|
this.signupModalTarget.classList.add("hidden")
|
|
}
|
|
|
|
onSignupSuccess() {
|
|
this.closeSignupModal();
|
|
Turbolinks.visit('/')
|
|
}
|
|
|
|
onLoginSuccess() {
|
|
this.closeLoginModal();
|
|
Turbolinks.visit('/')
|
|
}
|
|
|
|
onError(event) {
|
|
const [data, ,] = event.detail
|
|
|
|
const errors = []
|
|
|
|
if (data.username) {
|
|
errors.push(`Username: ${data.username.join(' ')}`)
|
|
}
|
|
|
|
if (data.password) {
|
|
errors.push(`Password: ${data.password.join(' ')}`)
|
|
}
|
|
|
|
alert(errors.join(','))
|
|
}
|
|
|
|
confirmLogout(event) {
|
|
if (!window.confirm("Do you really want to leave?")) {
|
|
event.stopPropagation()
|
|
return
|
|
}
|
|
}
|
|
|
|
onSuccessLogout() {
|
|
Turbolinks.visit('/')
|
|
}
|
|
}
|