diff --git a/src/lib/commandCenter/commandCenter.svelte b/src/lib/commandCenter/commandCenter.svelte index bda8e1b9f..6096827b7 100644 --- a/src/lib/commandCenter/commandCenter.svelte +++ b/src/lib/commandCenter/commandCenter.svelte @@ -85,10 +85,11 @@ }, 1000); const handleKeydown = (e) => { + if (!$subPanels.length) { + keys = [...keys, e.key].slice(-5); + resetKeys(); + } $commandCenterKeyDownHandler(e); - keys = [...keys, e.key].slice(-5); - console.log(keys); - resetKeys(); }; diff --git a/src/lib/commandCenter/commands.ts b/src/lib/commandCenter/commands.ts index be857ac88..b64ebfd89 100644 --- a/src/lib/commandCenter/commands.ts +++ b/src/lib/commandCenter/commands.ts @@ -46,23 +46,6 @@ export type Command = KeyedCommand | BaseCommand; export const commandMap = writable>(new Map()); export const disabledMap = writable>(new Map()); -type CommandGroupRanks = Record; -export const commandGroupRanks = writable({ - ungrouped: 9999, - domains: 20, - webhooks: 10, - navigation: 1, - projects: 0, - account: 0, - organizations: 0, - auth: 0, - platforms: 0, - databases: 0, - functions: 0, - storage: 0, - help: -1 -}); - // Derived stores export const commands = derived(commandMap, ($commandMap) => { return Array.from($commandMap.values()).flat(); @@ -241,14 +224,47 @@ export const disableCommands = { } }; -export const updateCommandGroupRanks = (updater: Updater) => { - let prevRanks: CommandGroupRanks; - commandGroupRanks.update((prev) => { - prevRanks = prev; - return updater(prev); - }); +type CommandGroupRanks = Record; - return () => { - commandGroupRanks.set(prevRanks); - }; +type CommandGroupRankTransformations = Map>; +const groupRankTransformations = writable(new Map()); +export const updateCommandGroupRanks = { + subscribe(runner: (cb: (updater: Updater) => void) => void) { + const uuid = crypto.randomUUID(); + + runner((updater: Updater) => { + groupRankTransformations.update((curr) => { + curr.set(uuid, updater); + return curr; + }); + }); + + return () => { + groupRankTransformations.update((curr) => { + curr.delete(uuid); + return curr; + }); + }; + } }; + +export const commandGroupRanks = derived(groupRankTransformations, ($groupRankTransformations) => { + const initialRanks: CommandGroupRanks = { + ungrouped: 9999, + domains: 0, + webhooks: 0, + navigation: 1, + projects: 0, + account: 0, + organizations: 0, + auth: 0, + platforms: 0, + databases: 0, + functions: 0, + storage: 0, + help: -1 + }; + + const transformations = Array.from($groupRankTransformations.values()); + return transformations.reduce((prev, curr) => curr(prev), initialRanks); +}); diff --git a/src/routes/console/project-[project]/settings/+layout.svelte b/src/routes/console/project-[project]/settings/+layout.svelte index f4270f720..99910ce8b 100644 --- a/src/routes/console/project-[project]/settings/+layout.svelte +++ b/src/routes/console/project-[project]/settings/+layout.svelte @@ -1,9 +1,10 @@ diff --git a/src/routes/console/project-[project]/settings/webhooks/+page.svelte b/src/routes/console/project-[project]/settings/webhooks/+page.svelte index fde1c291e..69e2d17ea 100644 --- a/src/routes/console/project-[project]/settings/webhooks/+page.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/+page.svelte @@ -1,3 +1,9 @@ + +