diff --git a/frontend/package.json b/frontend/package.json index 33aa94f7..0d2834bb 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -4,7 +4,7 @@ "private": true, "scripts": { "dev": "vite", - "build": "vite build", + "build": "vite build -m prod --emptyOutDir", "preview": "vite preview", "deploy": "wrangler pages deploy ../dist --branch production" }, diff --git a/frontend/src/Content.vue b/frontend/src/Content.vue index bb6e0d49..e77208c6 100644 --- a/frontend/src/Content.vue +++ b/frontend/src/Content.vue @@ -86,8 +86,8 @@ const refresh = async () => { if (typeof address.value != 'string' || address.value.trim() === '') { return; } + loading.value = true; try { - loading.value = true; const response = await fetch(`${API_BASE}/api/mails`, { method: "GET", headers: { @@ -148,53 +148,66 @@ const newEmail = async () => { } }; -const getOpenSettings = async (jwt) => { - const response = await fetch(`${API_BASE}/open_api/settings`, { - method: "GET", - headers: { - "Content-Type": "application/json" - }, - }); +const getOpenSettings = async () => { + loading.value = true; + try { + const response = await fetch(`${API_BASE}/open_api/settings`, { + method: "GET", + headers: { + "Content-Type": "application/json" + }, + }); - if (!response.ok) { - message.error(`${response.status} ${await response.text()}` || "error"); - console.error(response); - return; + if (!response.ok) { + message.error(`${response.status} ${await response.text()}` || "error"); + return; + } + let res = await response.json(); + openSettings.value = { + prefix: res["prefix"] || "", + domains: res["domains"].map((domain) => { + return { + label: domain, + value: domain + } + }) + }; + emailDomain.value = openSettings.value.domains[0].value; + } catch (error) { + message.error(error.message || "error"); + console.error(error); + } + finally { + loading.value = false; } - let res = await response.json(); - openSettings.value = { - prefix: res["prefix"] || "", - domains: res["domains"].map((domain) => { - return { - label: domain, - value: domain - } - }) - }; - emailDomain.value = openSettings.value.domains[0].value; } const getSettings = async (jwt) => { if (typeof jwt != 'string' || jwt.trim() === '' || jwt === 'undefined') { return; } - const response = await fetch(`${API_BASE}/api/settings`, { - method: "GET", - headers: { - "Authorization": `Bearer ${jwt}`, - "Content-Type": "application/json" - }, - }); + loading.value = true; + try { + const response = await fetch(`${API_BASE}/api/settings`, { + method: "GET", + headers: { + "Authorization": `Bearer ${jwt}`, + "Content-Type": "application/json" + }, + }); - if (!response.ok) { - message.error(`${response.status} ${await response.text()}` || "error"); - console.error(response); - address.value = ""; - return; + if (!response.ok) { + message.error(`${response.status} ${await response.text()}` || "error"); + console.error(response); + address.value = ""; + return; + } + let res = await response.json(); + address.value = res["address"]; + await refresh(); + } finally { + loading.value = false; } - let res = await response.json(); - address.value = res["address"]; - await refresh(); } watch(jwt, async (jwt, old) => getSettings(jwt))