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], ); }