Skip to content
Source
Sign inSign up

usePullRequestEnvironmentFallback.ts

21 lines981 Bytes

1import { useNavigation } from "@react-navigation/native";
2import { useEffect } from "react";
3​
4import { useProjects } from "../../state/entities";
5import { useConnectionsReady, useWorkspaceEnvironments } from "../../state/workspace";
6import {
7 pullRequestFallbackEnvironment,
8 type PullRequestEnvironmentTarget,
9} from "./pullRequestEnvironmentFallback";
10​
11export function usePullRequestEnvironmentFallback(params: PullRequestEnvironmentTarget) {
12 const navigation = useNavigation();
13 const projects = useProjects();
14 const isReady = useConnectionsReady();
15 const environments = useWorkspaceEnvironments();
16 const fallback = isReady ? pullRequestFallbackEnvironment(params, projects, environments) : null;
17 // oxlint-disable-next-line t3code/no-unreasoned-state-sync -- rewrites the route params through the navigator to the fallback environment once connections are ready
18 useEffect(() => {
19 if (fallback) navigation.setParams(fallback);
20 }, [fallback, navigation]);