62 lines
1.2 KiB
JavaScript
62 lines
1.2 KiB
JavaScript
import { Controller } from "stimulus"
|
|
import Turbolinks from "turbolinks"
|
|
|
|
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() {
|
|
localStorage.removeItem("session-username")
|
|
Turbolinks.visit('/')
|
|
}
|
|
}
|