import React, { useEffect, useState } from 'react'; import { Outlet } from 'react-router-dom'; import HorizontalLine from '../components/HorizontalLine'; import { IconButton, Typography } from '@material-tailwind/react'; import ProjectSearchBar from '../components/projects/ProjectSearchBar'; import { useGQLClient } from '../context/GQLClientContext'; import { ProjectDetails } from '../types/project'; const ProjectSearch = () => { const client = useGQLClient(); const [projects, setProjects] = useState([]); useEffect(() => { const fetch = async () => { const res = await client.getOrganizations(); // Note: select first organization as organization switching not yet implemented const projects = res.organizations[0].projects; const orgName = res.organizations[0].name; const updatedProjectsPromises = projects.map(async (project: any) => { const { deployments } = await client.getDeployments(String(project.id)); return { ...project, // TODO: populate empty fields icon: '', title: project.name, organization: orgName, deployments, url: '', domain: null, createdBy: project.owner.name, source: '', repositoryId: project.repository, // TODO: populate from github API latestCommit: { message: '', createdAt: '', branch: '', }, }; }); const updatedProjects = await Promise.all(updatedProjectsPromises); setProjects(updatedProjects); }; fetch(); }, [client]); return (
{}} projects={projects} />
+
^
SY
); }; export default ProjectSearch;