This commit is contained in:
Torsten Dittmann
2023-08-28 16:24:55 +02:00
4 changed files with 20 additions and 90 deletions
-73
View File
@@ -1,7 +1,5 @@
import { browser } from '$app/environment';
import { VARS } from '$lib/system';
import { derived, writable } from 'svelte/store';
import type { Feedback } from './feedback';
export type AppStore = {
theme: 'light' | 'dark' | 'auto';
@@ -19,77 +17,6 @@ export const iconPath = derived(app, ($app) => {
};
});
function createFeedbackStore() {
const { subscribe, update } = writable<Feedback>({
elapsed: browser ? parseInt(localStorage.getItem('feedbackElapsed')) : 0,
visualized: browser ? parseInt(localStorage.getItem('feedbackVisualized')) : 0,
notification: false,
type: 'general',
show: false
});
return {
subscribe,
update,
toggleFeedback: () => {
update((feedback) => {
feedback.show = !feedback.show;
return feedback;
});
},
toggleNotification: () =>
update((feedback) => {
feedback.notification = !feedback.notification;
return feedback;
}),
switchType: (feedType: Feedback['type']) =>
update((feedback) => {
feedback.type = feedType;
return feedback;
}),
addVisualization: () =>
update((feedback) => {
feedback.visualized += 1;
localStorage.setItem('feedbackVisualized', feedback.visualized.toString());
return feedback;
}),
increaseElapsed: (time: number) => {
update((feedback) => {
feedback.elapsed += time;
localStorage.setItem('feedbackElapsed', feedback.elapsed.toString());
return feedback;
});
},
submitFeedback: async (
subject: string,
message: string,
firstname?: string,
email?: string,
value?: number
) => {
if (!VARS.GROWTH_ENDPOINT) return;
const response = await fetch(`${VARS.GROWTH_ENDPOINT}/feedback`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
subject,
message,
email,
firstname: firstname ? firstname : undefined,
customFields: value ? [{ id: '40655', value }] : undefined
})
});
if (response.status >= 400) {
throw new Error('Failed to submit feedback');
}
}
};
}
export const feedback = createFeedbackStore();
if (browser) {
app.update((n) => ({
...n,
+2 -1
View File
@@ -6,7 +6,7 @@
import Header from '$lib/layout/header.svelte';
import SideNavigation from '$lib/layout/navigation.svelte';
import Shell from '$lib/layout/shell.svelte';
import { app, feedback } from '$lib/stores/app';
import { app } from '$lib/stores/app';
import { log } from '$lib/stores/logs';
import { newOrgModal } from '$lib/stores/organization';
import { wizard } from '$lib/stores/wizard';
@@ -24,6 +24,7 @@
import { openMigrationWizard } from './(migration-wizard)';
import { project } from './project-[project]/store';
import { sdk } from '$lib/stores/sdk';
import { feedback } from '$lib/stores/feedback';
function kebabToSentenceCase(str: string) {
return str
@@ -46,12 +46,12 @@
}
await sdk.forConsole.projects.updateEmailTemplate(
$project.$id,
$emailTemplate.type,
$emailTemplate.locale,
$emailTemplate.subject,
$emailTemplate.message,
$emailTemplate.senderName,
$emailTemplate.senderEmail,
$emailTemplate.type ? $emailTemplate.type : undefined,
$emailTemplate.locale ? $emailTemplate.locale : undefined,
$emailTemplate.subject ? $emailTemplate.subject : undefined,
$emailTemplate.message ? $emailTemplate.message : undefined,
$emailTemplate.senderName ? $emailTemplate.senderName : undefined,
$emailTemplate.senderEmail ? $emailTemplate.senderEmail : undefined,
$emailTemplate.replyTo ? $emailTemplate.replyTo : undefined
);
@@ -76,6 +76,8 @@
}
$: isButtonDisabled = deepEqual($emailTemplate, $baseEmailTemplate);
$: isSmtpEnabled = $project.smtpEnabled;
</script>
<Box class="u-position-relative">
@@ -96,14 +98,14 @@
bind:value={$emailTemplate.senderName}
tooltip="Set up an SMTP server to edit the sender name"
placeholder={'{{project}}'}
readonly={!$project.smtpEnabled} />
readonly={!isSmtpEnabled} />
<InputEmail
bind:value={$emailTemplate.senderEmail}
id="senderEmail"
label="Sender email"
tooltip="Set up an SMTP server to edit the sender email"
placeholder="Enter sender email"
readonly={!$project.smtpEnabled} />
readonly={!isSmtpEnabled} />
<InputEmail id="replyTo" label="Reply to" placeholder="noreply@appwrite.io" />
{#if $$slots.default}
<li style="margin-block: 1rem;">
@@ -129,7 +131,7 @@
label="Message"
placeholder="Enter your message"
tooltip="Set up an SMTP server to edit the message body"
readonly={!$project.smtpEnabled} />
readonly={!isSmtpEnabled} />
</FormList>
<div class="u-sep-block-start u-margin-block-start-24" />
<div class="u-flex u-gap-16 u-main-end u-margin-block-start-24">
@@ -58,13 +58,13 @@
await sdk.forConsole.projects.updateSmtpConfiguration(
$project.$id,
enabled,
senderName ?? undefined,
senderEmail ?? undefined,
replyTo ?? undefined,
host ?? undefined,
port ?? undefined,
username ?? undefined,
password ?? undefined,
senderName ? senderName : undefined,
senderEmail ? senderEmail : undefined,
replyTo ? replyTo : undefined,
host ? host : undefined,
port ? port : undefined,
username ? username : undefined,
password ? password : undefined,
secure ? 'tls' : undefined
);