UNPKG

gensx

Version:
65 lines 3.28 kB
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; import { Box, Text, useApp } from "ink"; import { useEffect, useState } from "react"; import { ErrorMessage } from "../../components/ErrorMessage.js"; import { LoadingSpinner } from "../../components/LoadingSpinner.js"; import { useProjectName } from "../../hooks/useProjectName.js"; import { getAuth } from "../../utils/config.js"; import { getSelectedEnvironment } from "../../utils/env-config.js"; function useShowEnvironment(initialProjectName) { const { exit } = useApp(); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [selectedEnvironment, setSelectedEnvironment] = useState(null); const { loading: projectLoading, error: projectError, projectName, } = useProjectName(initialProjectName); useEffect(() => { let mounted = true; async function showEnvironmentFlow() { if (!projectName) return; try { // Check authentication first const authConfig = await getAuth(); if (!authConfig) { throw new Error("Not authenticated. Please run 'gensx login' first."); } const selectedEnv = await getSelectedEnvironment(projectName); if (mounted) { setSelectedEnvironment(selectedEnv); setLoading(false); } } catch (err) { if (mounted) { const error = err instanceof Error ? err : new Error(String(err)); setError(error); setLoading(false); setTimeout(() => { exit(); }, 100); } } } void showEnvironmentFlow(); return () => { mounted = false; }; }, [projectName, exit]); return { loading: loading || projectLoading, error: error ?? projectError, projectName, selectedEnvironment, }; } export function ShowEnvironmentUI({ projectName: initialProjectName }) { const { loading, error, projectName, selectedEnvironment } = useShowEnvironment(initialProjectName); if (error) { return _jsx(ErrorMessage, { message: error.message }); } if (loading || !projectName) { return _jsx(LoadingSpinner, {}); } return (_jsx(Box, { flexDirection: "column", gap: 1, children: selectedEnvironment ? (_jsxs(Text, { children: [_jsx(Text, { color: "blue", children: "\u2139\uFE0E" }), " Active environment for project", " ", _jsx(Text, { color: "cyan", children: projectName }), ":", " ", _jsx(Text, { color: "green", children: selectedEnvironment })] })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { children: [_jsx(Text, { color: "blue", children: "\u2139\uFE0E" }), " No active environment set for project", " ", _jsx(Text, { color: "cyan", children: projectName })] }), _jsxs(Text, { color: "gray", dimColor: true, children: ["\u203A Run ", _jsx(Text, { color: "yellow", children: "gensx env select <env-name>" }), " ", "to activate an environment."] })] })) })); } //# sourceMappingURL=show.js.map