/
wishlist.js
76 lines (60 loc) · 2.05 KB
/
wishlist.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import 'foundation-sites/js/foundation/foundation';
import 'foundation-sites/js/foundation/foundation.reveal';
import nod from './common/nod';
import PageManager from './page-manager';
import { wishlistPaginatorHelper } from './common/utils/pagination-utils';
import { announceInputErrorMessage } from './common/utils/form-utils';
export default class WishList extends PageManager {
constructor(context) {
super(context);
this.options = {
template: 'account/add-wishlist',
};
return this;
}
/**
* Creates a confirm box before deleting all wish lists
*/
wishlistDeleteConfirm() {
$('body').on('click', '[data-wishlist-delete]', event => {
const confirmed = window.confirm(this.context.wishlistDelete);
if (confirmed) {
return true;
}
event.preventDefault();
});
}
registerAddWishListValidation($addWishlistForm) {
this.addWishlistValidator = nod({
submit: '.wishlist-form input[type="submit"]',
tap: announceInputErrorMessage,
});
this.addWishlistValidator.add([
{
selector: '.wishlist-form input[name="wishlistname"]',
validate: (cb, val) => {
const result = val.length > 0;
cb(result);
},
errorMessage: this.context.enterWishlistNameError,
},
]);
$addWishlistForm.on('submit', event => {
this.addWishlistValidator.performCheck();
if (this.addWishlistValidator.areAll('valid')) {
return;
}
event.preventDefault();
});
}
onReady() {
const $addWishListForm = $('.wishlist-form');
if ($('[data-pagination-wishlist]').length) {
wishlistPaginatorHelper();
}
if ($addWishListForm.length) {
this.registerAddWishListValidation($addWishListForm);
}
this.wishlistDeleteConfirm();
}
}