import { environmentsAtom } from "@yaakapp-internal/models"; import { atom, useAtomValue } from "jotai"; export const environmentsBreakdownAtom = atom((get) => { const allEnvironments = get(environmentsAtom); const baseEnvironments = allEnvironments.filter((e) => e.parentModel === "workspace") ?? []; const subEnvironments = allEnvironments .filter((e) => e.parentModel === "environment") ?.sort((a, b) => { if (a.sortPriority === b.sortPriority) { return a.updatedAt > b.updatedAt ? 1 : -1; } return a.sortPriority - b.sortPriority; }) ?? []; const folderEnvironments = allEnvironments.filter((e) => e.parentModel === "folder" && e.parentId != null) ?? []; const baseEnvironment = baseEnvironments[0] ?? null; const otherBaseEnvironments = baseEnvironments.filter((e) => e.id !== baseEnvironment?.id) ?? []; return { allEnvironments, baseEnvironment, subEnvironments, folderEnvironments, otherBaseEnvironments, baseEnvironments, }; }); export function useEnvironmentsBreakdown() { return useAtomValue(environmentsBreakdownAtom); }