Merge pull request #197 from D-Bao/reverse-alias-creation

Check if user can create reverse alias
This commit is contained in:
Son Nguyen Kim
2024-02-15 13:46:56 +01:00
committed by GitHub
2 changed files with 63 additions and 24 deletions
+11 -8
View File
@@ -207,15 +207,18 @@ export default {
}, },
async upgrade() { async upgrade() {
if (process.env.MAC) { if (process.env.MAC) {
console.log("send upgrade event to host app"); try {
await browser.runtime.sendNativeMessage( console.log("send upgrade event to host app");
"application.id", await browser.runtime.sendNativeMessage(
JSON.stringify({ "application.id",
upgrade: {}, JSON.stringify({
}) upgrade: {},
); })
);
} catch (error) {
console.info("can't send data to native app", error);
}
} else { } else {
console.info("can't send data to native app", error);
let apiUrl = await SLStorage.get(SLStorage.SETTINGS.API_URL); let apiUrl = await SLStorage.get(SLStorage.SETTINGS.API_URL);
let upgradeURL = apiUrl + "/dashboard/pricing"; let upgradeURL = apiUrl + "/dashboard/pricing";
browser.tabs.create({ url: upgradeURL }); browser.tabs.create({ url: upgradeURL });
+52 -16
View File
@@ -164,7 +164,7 @@
<div <div
class="btn-svg btn-send" class="btn-svg btn-send"
@click="goToReverseAlias(alias)" @click="handleReverseAliasClick(alias)"
> >
<font-awesome-icon icon="paper-plane" /> <font-awesome-icon icon="paper-plane" />
</div> </div>
@@ -220,7 +220,6 @@
<script> <script>
import Utils from "../Utils"; import Utils from "../Utils";
import SLStorage from "../SLStorage"; import SLStorage from "../SLStorage";
import EventManager from "../EventManager";
import Navigation from "../Navigation"; import Navigation from "../Navigation";
import AliasMoreOptions from "./AliasMoreOptions"; import AliasMoreOptions from "./AliasMoreOptions";
import { callAPI, API_ROUTE, API_ON_ERR } from "../APIService"; import { callAPI, API_ROUTE, API_ON_ERR } from "../APIService";
@@ -255,6 +254,8 @@ export default {
isFetchingAlias: true, isFetchingAlias: true,
searchString: "", searchString: "",
aliasArray: [], // array of existing alias aliasArray: [], // array of existing alias
canCreateReverseAlias: false,
}; };
}, },
async mounted() { async mounted() {
@@ -280,6 +281,7 @@ export default {
this.contentElem = document.querySelector(".app > .content"); this.contentElem = document.querySelector(".app > .content");
await this.getUserOptions(); await this.getUserOptions();
await this.getUserInfo();
}, },
methods: { methods: {
// get alias options and mailboxes // get alias options and mailboxes
@@ -321,6 +323,16 @@ export default {
}); });
}, },
async getUserInfo() {
const userInfo = await callAPI(
API_ROUTE.GET_USER_INFO,
{},
{},
API_ON_ERR.TOAST
);
this.canCreateReverseAlias = userInfo.data.can_create_reverse_alias;
},
async loadAlias() { async loadAlias() {
const contentElem = this.contentElem; const contentElem = this.contentElem;
this.aliasArray = []; this.aliasArray = [];
@@ -517,28 +529,52 @@ export default {
} }
}, },
// Reverse Alias
goToReverseAlias(alias) {
SLStorage.setTemporary("alias", alias);
Navigation.navigateTo(Navigation.PATH.REVERSE_ALIAS, true);
},
async upgrade() { async upgrade() {
if (process.env.MAC) { if (process.env.MAC) {
console.log("send upgrade event to host app"); try {
await browser.runtime.sendNativeMessage( console.log("send upgrade event to host app");
"application.id", await browser.runtime.sendNativeMessage(
JSON.stringify({ "application.id",
upgrade: {}, JSON.stringify({
}) upgrade: {},
); })
);
} catch (error) {
console.info("can't send data to native app", error);
}
} else { } else {
console.info("can't send data to native app", error);
let upgradeURL = this.apiUrl + "/dashboard/pricing"; let upgradeURL = this.apiUrl + "/dashboard/pricing";
browser.tabs.create({ url: upgradeURL }); browser.tabs.create({ url: upgradeURL });
} }
}, },
handleReverseAliasClick(alias) {
if (this.canCreateReverseAlias) {
SLStorage.setTemporary("alias", alias);
Navigation.navigateTo(Navigation.PATH.REVERSE_ALIAS, true);
} else {
this.$modal.show("dialog", {
title: `Send emails`,
text: "Sending a new email using an alias is a premium feature.",
buttons: [
{
title: "Cancel",
handler: () => {
this.$modal.hide("dialog");
},
},
{
title: "Upgrade now",
handler: () => {
this.$modal.hide("dialog");
this.upgrade();
},
},
],
});
}
},
// Clipboard // Clipboard
clipboardSuccessHandler({ value, event }) { clipboardSuccessHandler({ value, event }) {
Utils.showSuccess(value + " copied to clipboard"); Utils.showSuccess(value + " copied to clipboard");