Environment dropdown and actions

This commit is contained in:
Gregory Schier
2023-10-24 09:17:29 -07:00
parent e74f9f33c0
commit cb5d7626ac
11 changed files with 201 additions and 35 deletions

View File

@@ -0,0 +1,19 @@
import { useCallback, useMemo } from 'react';
import type { Environment } from '../lib/models';
import { useActiveEnvironmentId } from './useActiveEnvironmentId';
import { useEnvironments } from './useEnvironments';
export function useActiveEnvironment(): [Environment | null, (environment: Environment) => void] {
const [id, setId] = useActiveEnvironmentId();
const environments = useEnvironments();
const environment = useMemo(
() => environments.find((w) => w.id === id) ?? null,
[environments, id],
);
const setActiveEnvironment = useCallback((e: Environment) => {
setId(e.id)
}, [setId]);
return [environment, setActiveEnvironment];
}