33 lines · 1.1 KB · TypeScript
RawDownload
import type { EnvironmentId, PullRequestRef } from "@t3tools/contracts";import { useMemo } from "react";import {  savedPullRequestStack,  pullRequestStackView,} from "../components/pullRequest/pullRequestStackSnapshot";import { useThreadShells } from "./entities";import { pullRequestStackAtom } from "./pullRequests";import { useEnvironmentQuery } from "./query"; /** Detail headers and list popovers keep saved navigation during an unavailable refresh. */export function usePullRequestStack(  environmentId: EnvironmentId,  reference: PullRequestRef | null,) {  const threads = useThreadShells();  const saved = useMemo(    () =>      reference === null        ? null        : savedPullRequestStack(            threads              .filter((thread) => thread.environmentId === environmentId)              .flatMap((thread) => thread.pullRequests ?? []),            reference,          ),    [environmentId, reference, threads],  );  const query = useEnvironmentQuery(    reference === null ? null : pullRequestStackAtom({ environmentId, input: reference }),  );  return { ...query, ...pullRequestStackView(query, saved) };}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t