30 lines · 900 B · TypeScript
RawDownload
import { useAtomValue } from "@effect/atom-react";import { useMemo } from "react"; import { environmentShellSummaryAtom } from "./shell";import { projectWorkspaceEnvironment, projectWorkspaceState } from "./workspaceModel";import { useEnvironments } from "./environments"; export function useWorkspaceState() {  const { isReady, networkStatus, environments } = useEnvironments();  const shellSummary = useAtomValue(environmentShellSummaryAtom);  const projectedEnvironments = useMemo(    () => environments.map(projectWorkspaceEnvironment),    [environments],  );  const state = useMemo(    () =>      projectWorkspaceState({        isReady,        networkStatus,        environments: projectedEnvironments,        shellSummary,      }),    [isReady, networkStatus, projectedEnvironments, shellSummary],  );   return {    environments: projectedEnvironments,    state,  };}

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