import { useSearch } from "@tanstack/react-router"; import type { Environment } from "@yaakapp-internal/models"; import { environmentsAtom } from "@yaakapp-internal/models"; import { atom, useAtomValue } from "jotai"; import { useEffect } from "react"; import { jotaiStore } from "../lib/jotai"; export const activeEnvironmentIdAtom = atom(); export const activeEnvironmentAtom = atom((get) => { const activeEnvironmentId = get(activeEnvironmentIdAtom); return get(environmentsAtom).find((e) => e.id === activeEnvironmentId) ?? null; }); export function useActiveEnvironment() { return useAtomValue(activeEnvironmentAtom); } export function getActiveEnvironment() { return jotaiStore.get(activeEnvironmentAtom); } export function useSubscribeActiveEnvironmentId() { const { environment_id } = useSearch({ strict: false }); useEffect( () => jotaiStore.set(activeEnvironmentIdAtom, environment_id ?? undefined), [environment_id], ); }