1import { canCreateProjectInEnvironment } from "@t3tools/client-runtime/operations/projects";
2import type { EnvironmentConnectionPhase } from "@t3tools/client-runtime/connection";
3import type { EnvironmentId } from "@t3tools/contracts";
4
5export function resolveAddProjectEnvironment<
6 T extends {
7 readonly environmentId: EnvironmentId;
8 readonly connectionState: EnvironmentConnectionPhase;
9 },
10>(environmentOptions: ReadonlyArray<T>, requestedEnvironmentId: EnvironmentId | null): T | null {
11 if (requestedEnvironmentId !== null) {
12 return (
13 environmentOptions.find(
14 (environment) =>
15 environment.environmentId === requestedEnvironmentId &&
16 canCreateProjectInEnvironment(environment.connectionState),
17 ) ?? null
18 );
19 }
20
21 return (
22 environmentOptions.find((environment) =>
23 canCreateProjectInEnvironment(environment.connectionState),
24 ) ?? null
25 );
26}