UNPKG

@salla.sa/twilight-components

Version:
92 lines (91 loc) 6.6 kB
/*! * Crafted with ❤ by Salla */ import { Host, h } from "@stencil/core"; import Bullhorn from "../../assets/svg/bullhorn.svg"; import UserOff from "../../assets/svg/user-off.svg"; import UserCancel from "../../assets/svg/user-cancel.svg"; export class SallaUserSettings { constructor() { this.deactivateAccount = salla.lang.get('pages.profile.deactivate_account'); this.promotionalMsgs = salla.lang.get('pages.profile.promotional_messages'); this.hideMyName = salla.lang.get('pages.profile.hide_my_name'); this.hideMyNameDesc = salla.lang.get('pages.profile.hide_my_name_desc'); this.deactivateDesc = salla.lang.get('pages.profile.deactivate_account_description'); this.promotionalMsgsDesc = salla.lang.get('pages.profile.promotional_messages_description'); this.sorryForLeavingText = salla.lang.get('pages.profile.warning_for_deactivate'); this.warningText = salla.lang.get('pages.profile.sorry_for_leaving'); this.keepAccount = salla.lang.get('pages.profile.keep_account'); this.buttonLoading = false; this.canHideName = salla.config.get('store.settings.rating.can_customer_hide_name'); this.isHiddenName = undefined; this.isNotifiable = undefined; salla.onReady(() => { this.isHiddenName = salla.config.get('user.is_hidden_name'); this.isNotifiable = salla.config.get('user.is_notifiable'); this.canHideName = salla.config.get('store.settings.rating.can_customer_hide_name'); if (!this.isNotifiable || !this.isHiddenName) { salla.event.on('profile::info.fetched', res => { this.isHiddenName = res.data.is_hidden_name; this.isNotifiable = res.data.is_notifiable; }); } }); salla.lang.onLoaded(() => { this.deactivateAccount = salla.lang.get('pages.profile.deactivate_account'); this.promotionalMsgs = salla.lang.get('pages.profile.promotional_messages'); this.hideMyName = salla.lang.get('pages.profile.hide_my_name'); this.hideMyNameDesc = salla.lang.get('pages.profile.hide_my_name_desc'); this.deactivateDesc = salla.lang.get('pages.profile.deactivate_account_description'); this.promotionalMsgsDesc = salla.lang.get('pages.profile.promotional_messages_description'); this.warningText = salla.lang.get('pages.profile.warning_for_deactivate'); this.sorryForLeavingText = salla.lang.get('pages.profile.sorry_for_leaving'); this.keepAccount = salla.lang.get('pages.profile.keep_account'); }); } toggleSetting(setting, event) { salla.profile.updateSettings({ name: setting, value: event.target.checked }); } capitalizeText(str) { return str.charAt(0).toUpperCase() + str.slice(1); } openDeactivateModal() { this.confirmationModal.setTitle(this.capitalizeText(this.deactivateAccount)); this.confirmationModal.open(); } async deleteAccount() { await salla.profile.delete().finally(() => this.confirmationModal.close()); } render() { return (h(Host, { class: "s-user-settings-wrapper" }, this.canHideName && h("div", { class: "s-user-settings-section" }, h("salla-list-tile", null, h("div", { slot: "icon", class: "s-user-settings-section-icon" }, h("span", { innerHTML: UserCancel })), h("div", { slot: "title", class: "s-user-settings-section-title" }, this.capitalizeText(this.hideMyName)), h("div", { slot: "subtitle", class: "s-user-settings-section-subtitle" }, this.capitalizeText(this.hideMyNameDesc)), h("div", { slot: 'action', class: "s-user-settings-section-action" }, h("label", { class: "s-toggle" }, h("input", { class: "s-toggle-input", checked: this.isHiddenName, onChange: (e) => this.toggleSetting('is_hidden_name', e), type: "checkbox" }), h("div", { class: "s-toggle-switcher" }))))), h("div", { class: "s-user-settings-section" }, h("salla-list-tile", null, h("div", { slot: "icon", class: "s-user-settings-section-icon" }, h("span", { innerHTML: Bullhorn })), h("div", { slot: "title", class: "s-user-settings-section-title" }, this.capitalizeText(this.promotionalMsgs)), h("div", { slot: "subtitle", class: "s-user-settings-section-subtitle" }, this.capitalizeText(this.promotionalMsgsDesc)), h("div", { slot: 'action', class: "s-user-settings-section-action" }, h("label", { class: "s-toggle" }, h("input", { class: "s-toggle-input", checked: this.isNotifiable, onChange: (e) => this.toggleSetting('is_notifiable', e), type: "checkbox" }), h("div", { class: "s-toggle-switcher" }))))), h("div", { class: "s-user-settings-section s-user-settings-section-deactivate-user" }, h("salla-list-tile", null, h("div", { slot: "icon", class: "s-user-settings-section-icon" }, h("span", { innerHTML: UserOff })), h("div", { slot: "title", class: "s-user-settings-section-title" }, this.capitalizeText(this.deactivateAccount)), h("div", { slot: "subtitle", class: "s-user-settings-section-subtitle" }, this.capitalizeText(this.deactivateDesc)), h("div", { slot: 'action', class: "s-user-settings-section-action" }, h("salla-button", { fill: "outline", color: "danger", shape: "btn", size: "medium", width: "normal", onClick: () => this.openDeactivateModal() }, this.capitalizeText(this.deactivateAccount))))), h("salla-modal", { width: "sm", subTitle: this.capitalizeText(this.sorryForLeavingText), ref: modal => this.confirmationModal = modal }, h("span", { slot: 'icon', class: "s-user-settings-confirmation-icon", innerHTML: UserOff }), h("div", { class: "s-user-settings-confirmation" }, h("div", { class: "s-user-settings-confirmation-warning" }, this.capitalizeText(this.warningText)), h("div", { class: "s-user-settings-confirmation-actions" }, h("salla-button", { width: "wide", onClick: () => this.confirmationModal.close() }, this.capitalizeText(this.keepAccount)), h("salla-button", { fill: 'outline', loading: this.buttonLoading, width: "wide", onClick: () => this.deleteAccount() }, this.capitalizeText(this.deactivateAccount))))))); } static get is() { return "salla-user-settings"; } static get originalStyleUrls() { return { "$": ["salla-user-settings.scss"] }; } static get styleUrls() { return { "$": ["salla-user-settings.css"] }; } static get states() { return { "deactivateAccount": {}, "promotionalMsgs": {}, "hideMyName": {}, "hideMyNameDesc": {}, "deactivateDesc": {}, "promotionalMsgsDesc": {}, "sorryForLeavingText": {}, "warningText": {}, "keepAccount": {}, "buttonLoading": {}, "canHideName": {}, "isHiddenName": {}, "isNotifiable": {} }; } } //# sourceMappingURL=salla-user-settings.js.map