import { Text, View, ScrollView } from "react-native";
import {SafeAreaView, SafeAreaProvider} from 'react-native-safe-area-context';
import { useState, useEffect } from "react";
import { useRouter } from "expo-router";
import LoginForm from "./components/LoginForm";
import LogoutButton from "./components/LogoutButton";
import EnvironmentCard from "./components/EnvironmentCard";
import { AuthProvider } from "./context/AuthContext";
import { useAuth } from "./context/AuthContext";
interface Environment {
Name: string;
PublicURL: string;
Status: number;
URL: string;
Id: number;
}
export default function Index() {
return (
);
}
function MainContent() {
const router = useRouter();
const { isAuthenticated, domain, username, authData } = useAuth();
const [environmentData, setEnvironmentData] = useState(null);
const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState(null);
useEffect(() => {
const fetchEnvironmentData = async () => {
if (!isAuthenticated) return;
setIsLoading(true);
try {
const response = await fetch('https://portainer.evansteele.net/api/endpoints', {
headers: {
'Authorization': `Bearer ${authData.jwt}`
}
});
const data = await response.json();
setEnvironmentData(data);
} catch (err : any) {
setError(err.message);
} finally {
setIsLoading(false);
}
};
fetchEnvironmentData();
}, [isAuthenticated]);
if (!isAuthenticated) {
return (
);
}
return (
{environmentData && environmentData.map((environment, index) => (
router.push({
pathname: `/envs/[env]`,
params: { env: environment.Id }
})}
/>
))}
);
}