UNPKG

@ribajs/shopify

Version:

Shopify extension for Riba.js

78 lines 4.88 kB
import { Component } from "@ribajs/core"; import { hasChildNodesTrim } from "@ribajs/utils/src/dom.js"; export class ShopifyCommentsFormComponent extends Component { static tagName = "shopify-comments-form"; static get observedAttributes() { return []; } newCommentForm = null; scope = { form: { customer: { email: "", password: "", }, }, loginCustomer: { validation: { valid: false, }, }, createCustomer: { validation: { valid: false, }, }, recoverCustomer: { validation: { valid: false, }, }, post: this.post, }; constructor() { super(); } connectedCallback() { super.connectedCallback(); this.init(ShopifyCommentsFormComponent.observedAttributes); } post(event) { if (!this.newCommentForm) { console.error("No comment form found"); return false; } event.preventDefault(); event.stopPropagation(); this.validate(this.newCommentForm, this.scope.loginCustomer.validation); if (this.scope.loginCustomer.validation.valid) { this.newCommentForm.submit(); } } initValidation() { this.newCommentForm = this.querySelector("#comment_form"); this.newCommentForm.setAttribute("novalidate", ""); this.newCommentForm.classList.add("needs-validation"); } validate(form, validationScope) { validationScope.valid = form.checkValidity(); form.classList.add("was-validated"); } async afterBind() { this.initValidation(); await super.afterBind(); } requiredAttributes() { return []; } async template() { if (this && hasChildNodesTrim(this)) { return null; } else { const { default: template } = await import("./comments-form.component.html?raw"); return template; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jb21tZW50cy1mb3JtL2NvbW1lbnRzLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUF3QzdELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxTQUFTO0lBQ2xELE1BQU0sQ0FBQyxPQUFPLEdBQUcsdUJBQXVCLENBQUM7SUFFaEQsTUFBTSxLQUFLLGtCQUFrQjtRQUMzQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFUyxjQUFjLEdBQTJCLElBQUksQ0FBQztJQUVqRCxLQUFLLEdBQVU7UUFDcEIsSUFBSSxFQUFFO1lBQ0osUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxFQUFFO2dCQUNULFFBQVEsRUFBRSxFQUFFO2FBQ2I7U0FDRjtRQUNELGFBQWEsRUFBRTtZQUNiLFVBQVUsRUFBRTtnQkFDVixLQUFLLEVBQUUsS0FBSzthQUNiO1NBQ0Y7UUFDRCxjQUFjLEVBQUU7WUFDZCxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLEtBQUs7YUFDYjtTQUNGO1FBQ0QsZUFBZSxFQUFFO1lBQ2YsVUFBVSxFQUFFO2dCQUNWLEtBQUssRUFBRSxLQUFLO2FBQ2I7U0FDRjtRQUNELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtLQUNoQixDQUFDO0lBRUY7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFUyxpQkFBaUI7UUFDekIsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFLTSxJQUFJLENBQUMsS0FBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUN2QyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFHRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4RSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRVMsY0FBYztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQ3RDLGVBQWUsQ0FDRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRVMsUUFBUSxDQUFDLElBQXFCLEVBQUUsZUFBaUM7UUFDekUsZUFBZSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixNQUFNLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVTLEtBQUssQ0FBQyxRQUFRO1FBRXRCLElBQUksSUFBSSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQ3hDLG9DQUFvQyxDQUNyQyxDQUFDO1lBQ0YsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUMifQ==