src/components/alert/index.js
import Component from "../../core/component";
import CookieUtil from "../../core/cookie_util";
import waitForTransition from "../../core/utils/waitForTransition";
require("./_alert.scss");
class Alert extends Component {
initialize() {
this.cookieUtil = new CookieUtil();
if (this.cookieUtil.getCookie("dn-opt-in")) {
return;
}
this.alert = {
alert_type: "default",
alert_text: "Return to old experience?",
alert_link_text: "Leave beta"
};
this.template = require("./alert.hbs");
this.$el.prepend($(this.template(this.alert)));
this.$alert = this.$el.find(".alert");
this.$alert.find(".alert__inner").addClass("is-visible");
this.events = {
"click .js-close": "hideAlert",
"click .js-alert-link": "removeCookies"
};
}
hideAlert() {
this.cookieUtil.setCookie("dn-opt-in", "true", 30);
this.$alert.removeClass("is-visible");
return waitForTransition(this.$alert, { fallbackTime: 1000 })
.then(() => {
this.$alert.detach();
});
}
removeCookies(e) {
e.preventDefault();
this.cookieUtil.removeCookie("_v");
this.cookieUtil.removeCookie("destinations-next-cookie");
location.reload();
}
}
export default Alert;