From 41102e6f7aefd09e75e3074f64da59c39d699669 Mon Sep 17 00:00:00 2001 From: tglide <26071571+TGlide@users.noreply.github.com> Date: Mon, 24 Jul 2023 15:39:43 +0100 Subject: [PATCH] function commands --- src/lib/commandCenter/commands.ts | 23 +++---- src/lib/stores/sdk.ts | 12 ++-- .../console/project-[project]/+layout.svelte | 18 +++++- .../project-[project]/auth/+layout.svelte | 2 +- .../databases/+layout.svelte | 5 +- .../function-[function]/+layout.svelte | 60 ++++++++++++++++++- .../function-[function]/+page.svelte | 8 ++- 7 files changed, 101 insertions(+), 27 deletions(-) diff --git a/src/lib/commandCenter/commands.ts b/src/lib/commandCenter/commands.ts index 94d4ee4af..faad5102b 100644 --- a/src/lib/commandCenter/commands.ts +++ b/src/lib/commandCenter/commands.ts @@ -1,7 +1,7 @@ import { debounce } from '$lib/helpers/debounce'; import { isMac } from '$lib/helpers/platform'; import { onMount } from 'svelte'; -import { derived, writable, type Updater } from 'svelte/store'; +import { derived, writable } from 'svelte/store'; const groups = [ 'ungrouped', @@ -241,23 +241,24 @@ export const disableCommands = { } }; -type CommandGroupRanks = Record; +type CommandGroupRanks = Partial>; + +type GroupRanksMap = Map; +const groupRanksMap = writable(new Map()); -type CommandGroupRankTransformations = Map>; -const groupRankTransformations = writable(new Map()); export const updateCommandGroupRanks = { - subscribe(runner: (cb: (updater: Updater) => void) => void) { + subscribe(runner: (cb: (updater: CommandGroupRanks) => void) => void) { const uuid = crypto.randomUUID(); - runner((updater: Updater) => { - groupRankTransformations.update((curr) => { - curr.set(uuid, updater); + runner((groupRank: CommandGroupRanks) => { + groupRanksMap.update((curr) => { + curr.set(uuid, groupRank); return curr; }); }); return () => { - groupRankTransformations.update((curr) => { + groupRanksMap.update((curr) => { curr.delete(uuid); return curr; }); @@ -265,7 +266,7 @@ export const updateCommandGroupRanks = { } }; -export const commandGroupRanks = derived(groupRankTransformations, ($groupRankTransformations) => { +export const commandGroupRanks = derived(groupRanksMap, ($groupRankTransformations) => { const initialRanks = { ...Object.fromEntries(groups.map((group) => [group, 0])), ungrouped: 9999, @@ -277,7 +278,7 @@ export const commandGroupRanks = derived(groupRankTransformations, ($groupRankTr } as CommandGroupRanks; const transformations = Array.from($groupRankTransformations.values()); - return transformations.reduce((prev, curr) => curr(prev), initialRanks); + return transformations.reduce((prev, curr) => ({ ...prev, ...curr }), initialRanks); }); export type Searcher = (query: string) => Promise; diff --git a/src/lib/stores/sdk.ts b/src/lib/stores/sdk.ts index 04ed819ad..f6f84a275 100644 --- a/src/lib/stores/sdk.ts +++ b/src/lib/stores/sdk.ts @@ -12,8 +12,8 @@ import { Projects, Storage, Teams, - Users, - Migrations + Users + // Migrations } from '@appwrite.io/console'; const endpoint = VARS.APPWRITE_ENDPOINT ?? `${globalThis?.location?.origin}/v1`; @@ -34,8 +34,8 @@ const sdkForProject = { project: new Project(clientProject), storage: new Storage(clientProject), teams: new Teams(clientProject), - users: new Users(clientProject), - migrations: new Migrations(clientProject) + users: new Users(clientProject) + // migrations: new Migrations(clientProject) }; export const getSdkForProject = (projectId: string) => { @@ -56,8 +56,8 @@ export const sdk = { locale: new Locale(clientConsole), projects: new Projects(clientConsole), teams: new Teams(clientConsole), - users: new Users(clientConsole), - migrations: new Migrations(clientConsole) + users: new Users(clientConsole) + // migrations: new Migrations(clientConsole) }, get forProject() { const projectId = getProjectId(); diff --git a/src/routes/console/project-[project]/+layout.svelte b/src/routes/console/project-[project]/+layout.svelte index 7557c248b..09daa2ea8 100644 --- a/src/routes/console/project-[project]/+layout.svelte +++ b/src/routes/console/project-[project]/+layout.svelte @@ -5,9 +5,19 @@ import { project, stats } from './store'; import { goto } from '$app/navigation'; - import { addSubPanel, registerCommands, registerSearchers } from '$lib/commandCenter'; + import { + addSubPanel, + registerCommands, + registerSearchers, + updateCommandGroupRanks + } from '$lib/commandCenter'; - import { dbSearcher, userSearcher } from '$lib/commandCenter/searchers'; + import { + dbSearcher, + functionsSearcher, + teamSearcher, + userSearcher + } from '$lib/commandCenter/searchers'; import { MigrationBox } from '$lib/components'; import { UsersPanel, @@ -115,7 +125,9 @@ } ]); - $: $registerSearchers(userSearcher, dbSearcher); + $registerSearchers(userSearcher, teamSearcher, dbSearcher, functionsSearcher); + + $updateCommandGroupRanks({ functions: 10 }); diff --git a/src/routes/console/project-[project]/auth/+layout.svelte b/src/routes/console/project-[project]/auth/+layout.svelte index c2a9099ad..6758ec981 100644 --- a/src/routes/console/project-[project]/auth/+layout.svelte +++ b/src/routes/console/project-[project]/auth/+layout.svelte @@ -122,7 +122,7 @@ } ]); - $: $updateCommandGroupRanks((prev) => ({ ...prev, users: 300, teams: 200, security: 100 })); + $: $updateCommandGroupRanks({ users: 300, teams: 200, security: 100 }); diff --git a/src/routes/console/project-[project]/databases/+layout.svelte b/src/routes/console/project-[project]/databases/+layout.svelte index 9bc9aaffb..36cd84574 100644 --- a/src/routes/console/project-[project]/databases/+layout.svelte +++ b/src/routes/console/project-[project]/databases/+layout.svelte @@ -17,10 +17,7 @@ } ]); - $: $updateCommandGroupRanks((prev) => ({ - ...prev, - databases: 100 - })); + $: $updateCommandGroupRanks({ databases: 100 }); diff --git a/src/routes/console/project-[project]/functions/function-[function]/+layout.svelte b/src/routes/console/project-[project]/functions/function-[function]/+layout.svelte index e8b8dae48..b9b2ce79e 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/+layout.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/+layout.svelte @@ -1,6 +1,64 @@ diff --git a/src/routes/console/project-[project]/functions/function-[function]/+page.svelte b/src/routes/console/project-[project]/functions/function-[function]/+page.svelte index 4bf39c827..3231cffce 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/+page.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/+page.svelte @@ -1,3 +1,10 @@ + +