Simplify usage of console variables

await the data during load so it's available downstream without needing
to await.
This commit is contained in:
Steven Nguyen
2023-09-13 11:53:05 -07:00
parent ba877ef36f
commit 91df9e05c2
7 changed files with 21 additions and 29 deletions
+1 -10
View File
@@ -6,21 +6,12 @@
import { sdk } from '$lib/stores/sdk';
import { isSelfHosted } from '$lib/system';
import { func } from '$routes/console/project-[project]/functions/function-[function]/store';
import { onMount } from 'svelte';
import { ProxyTypes } from '../index.svelte';
import { domain, typeStore } from './store';
import { consoleVariables } from '$routes/console/store';
let error = null;
let isDomainsEnabled = false;
onMount(async () => {
if (!isSelfHosted) {
return;
}
isDomainsEnabled = (await $consoleVariables)?._APP_DOMAIN_ENABLED === true;
});
const isDomainsEnabled = $consoleVariables?._APP_DOMAIN_ENABLED === true;
async function createDomain() {
try {
+1 -4
View File
@@ -33,10 +33,7 @@
.join(' ');
}
let isAssistantEnabled = false;
onMount(async () => {
isAssistantEnabled = (await $consoleVariables)?._APP_ASSISTANT_ENABLED === true;
});
const isAssistantEnabled = $consoleVariables?._APP_ASSISTANT_ENABLED === true;
$: isOnSettingsLayout = $project?.$id
? $page.url.pathname.includes(`project-${$project.$id}/settings`)
+7 -4
View File
@@ -8,15 +8,18 @@ export const load: LayoutLoad = async ({ fetch, depends }) => {
depends(Dependencies.CONSOLE_VARIABLES);
const { endpoint, project } = sdk.forConsole.client.config;
const response = await fetch(`${endpoint}/health/version`, {
const versionPromise = fetch(`${endpoint}/health/version`, {
headers: {
'X-Appwrite-Project': project
}
});
const data = await response.json();
}).then((response) => response.json() as { version?: string });
const variablesPromise = sdk.forConsole.console.variables();
const [data, variables] = await Promise.all([versionPromise, variablesPromise]);
return {
consoleVariables: sdk.forConsole.console.variables(),
consoleVariables: variables,
version: data?.version ?? null
};
};
@@ -49,9 +49,10 @@
import InputSelectSearch from '$lib/elements/forms/inputSelectSearch.svelte';
import { installations } from '$lib/wizards/functions/store';
import { isSelfHosted } from '$lib/system';
import { consoleVariables, isVcsEnabled } from '$routes/console/store';
import { consoleVariables } from '$routes/console/store';
const functionId = $page.params.function;
const isVcsEnabled = $consoleVariables?._APP_VCS_ENABLED === true;
let entrypoint: string;
let commands: string;
@@ -271,7 +272,7 @@
</div>
</Box>
{:else}
{#if isSelfHosted && !isVcsEnabled($consoleVariables)}
{#if isSelfHosted && !isVcsEnabled}
<Alert class="common-section" type="info">
<svelte:fragment slot="title">
Installing Git to a self-hosted instance
@@ -6,8 +6,10 @@
import { Container } from '$lib/layout';
import { isSelfHosted } from '$lib/system';
import { connectTemplate } from '$lib/wizards/functions/cover.svelte';
import { consoleVariables, isVcsEnabled } from '$routes/console/store';
import { consoleVariables } from '$routes/console/store';
import { template } from './store';
const isVcsEnabled = $consoleVariables?._APP_VCS_ENABLED === true;
</script>
<Container>
@@ -60,7 +62,7 @@
</span>
</Heading>
<p class="u-margin-block-start-24">{$template.tagline}</p>
{#if isSelfHosted && !isVcsEnabled($consoleVariables)}
{#if isSelfHosted && !isVcsEnabled}
<Alert class="u-margin-block-start-24" type="info">
<svelte:fragment slot="title">
Cloning templates to a self-hosted instance
@@ -29,7 +29,7 @@
import GitDisconnectModal from './GitDisconnectModal.svelte';
import dayjs from 'dayjs';
import { isSelfHosted } from '$lib/system';
import { consoleVariables, isVcsEnabled } from '$routes/console/store';
import { consoleVariables } from '$routes/console/store';
export let total: number;
export let limit: number;
@@ -40,6 +40,7 @@
let showGitDisconnect = false;
let showInstallationDropdown: boolean[] = [];
let selectedInstallation: Models.Installation;
const isVcsEnabled = $consoleVariables?._APP_VCS_ENABLED === true;
function getInstallationLink(installation: Models.Installation) {
switch (installation.provider) {
@@ -180,7 +181,7 @@
bind:offset />
</div>
{:else}
{#if isSelfHosted && !isVcsEnabled($consoleVariables)}
{#if isSelfHosted && !isVcsEnabled}
<Alert type="info">
<svelte:fragment slot="title">
Installing Git to a self-hosted instance
@@ -203,7 +204,7 @@
<div class="avatar"><SvgIcon name="appwrite" type="color" size={80} /></div>
</div>
<Button
disabled={isSelfHosted && !isVcsEnabled($consoleVariables)}
disabled={isSelfHosted && !isVcsEnabled}
on:click={() => (showGitIstall = true)}
secondary>
<span class="text">Add Installation</span>
+1 -4
View File
@@ -5,8 +5,5 @@ import { derived } from 'svelte/store';
export const version = derived(page, ($page) => $page.data.version as string | null);
export const consoleVariables = derived(
page,
async ($page) => (await $page.data.consoleVariables) as Models.ConsoleVariables
($page) => $page.data.consoleVariables as Models.ConsoleVariables
);
export async function isVcsEnabled(store: Promise<Models.ConsoleVariables>) {
return (await store)?._APP_VCS_ENABLED === true;
}