Generalized frontend model store (#193)

This commit is contained in:
Gregory Schier
2025-03-31 11:56:17 -07:00
committed by GitHub
parent ce885c3551
commit f1757ae427
201 changed files with 2185 additions and 2865 deletions

View File

@@ -1,26 +1,24 @@
import type { EnvironmentVariable } from '@yaakapp-internal/models';
import { atom, useAtomValue } from 'jotai';
import { useAtomValue } from 'jotai';
import { useMemo } from 'react';
import { activeEnvironmentAtom } from './useActiveEnvironment';
import { environmentsBreakdownAtom } from './useEnvironments';
const activeEnvironmentVariablesAtom = atom((get) => {
const { baseEnvironment } = get(environmentsBreakdownAtom);
const activeEnvironment = get(activeEnvironmentAtom);
const varMap: Record<string, EnvironmentVariable> = {};
const allVariables = [
...(baseEnvironment?.variables ?? []),
...(activeEnvironment?.variables ?? []),
];
for (const v of allVariables) {
if (!v.enabled || !v.name) continue;
varMap[v.name] = v;
}
return Object.values(varMap);
});
import { useEnvironmentsBreakdown } from './useEnvironmentsBreakdown';
export function useActiveEnvironmentVariables() {
return useAtomValue(activeEnvironmentVariablesAtom);
const { baseEnvironment } = useEnvironmentsBreakdown();
const activeEnvironment = useAtomValue(activeEnvironmentAtom);
return useMemo(() => {
const varMap: Record<string, EnvironmentVariable> = {};
const allVariables = [
...(baseEnvironment?.variables ?? []),
...(activeEnvironment?.variables ?? []),
];
for (const v of allVariables) {
if (!v.enabled || !v.name) continue;
varMap[v.name] = v;
}
return Object.values(varMap);
}, [activeEnvironment, baseEnvironment]);
}