import { canCreateProjectInEnvironment } from "@t3tools/client-runtime/operations/projects"; import type { EnvironmentConnectionPhase } from "@t3tools/client-runtime/connection"; import type { EnvironmentId } from "@t3tools/contracts"; export function resolveAddProjectEnvironment< T extends { readonly environmentId: EnvironmentId; readonly connectionState: EnvironmentConnectionPhase; }, >(environmentOptions: ReadonlyArray, requestedEnvironmentId: EnvironmentId | null): T | null { if (requestedEnvironmentId !== null) { return ( environmentOptions.find( (environment) => environment.environmentId === requestedEnvironmentId && canCreateProjectInEnvironment(environment.connectionState), ) ?? null ); } return ( environmentOptions.find((environment) => canCreateProjectInEnvironment(environment.connectionState), ) ?? null ); }