22 lines
652 B
JavaScript
22 lines
652 B
JavaScript
import { Controller } from "@hotwired/stimulus"
|
|
import { nextEventLoopTick } from "helpers/timing_helpers";
|
|
|
|
export default class extends Controller {
|
|
static targets = ["meCheckbox"]
|
|
static values = { selfRemovalPromptMessage: { type: String, default: "Are you sure?" } }
|
|
|
|
async submitWithWarning(event) {
|
|
if (this.hasMeCheckboxTarget && !this.meCheckboxTarget.checked && !this.confirmed) {
|
|
event.detail.formSubmission.stop()
|
|
|
|
const message = this.selfRemovalPromptMessageValue
|
|
|
|
if (confirm(message)) {
|
|
await nextEventLoopTick()
|
|
this.confirmed = true
|
|
this.element.requestSubmit()
|
|
}
|
|
}
|
|
}
|
|
}
|