Files
yaak-mountain-loop/src-web/hooks/useActiveEnvironment.ts
2023-10-24 09:17:29 -07:00

20 lines
669 B
TypeScript

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];
}