Files
yaak/src-web/hooks/useEnvironments.ts
2025-01-02 06:51:54 -08:00

22 lines
785 B
TypeScript

import type { Environment } from '@yaakapp-internal/models';
import { useAtomValue } from 'jotai';
import { atom } from 'jotai/index';
export const environmentsAtom = atom<Environment[]>([]);
export const environmentsBreakdownAtom = atom<{
baseEnvironment: Environment | null;
allEnvironments: Environment[];
subEnvironments: Environment[];
}>((get) => {
const allEnvironments = get(environmentsAtom);
const baseEnvironment = allEnvironments.find((e) => e.environmentId == null) ?? null;
const subEnvironments =
allEnvironments.filter((e) => e.environmentId === (baseEnvironment?.id ?? 'n/a')) ?? [];
return { baseEnvironment, subEnvironments, allEnvironments } as const;
});
export function useEnvironments() {
return useAtomValue(environmentsBreakdownAtom);
}