import { useQuery } from "@tanstack/react-query"; import styled from "styled-components"; import { Spinner } from "react-bootstrap"; import { FunctionalComponent } from "preact"; import axios, { AxiosError } from "axios"; import PinnedRepo from "@interfaces/pinnedRepo"; import Paragraph from "@components/Paragraph"; import ListItem from "@components/Project/Item"; const SpinnerContainer = styled.div` display: flex; justify-content: center; `; const ErrorText = styled(Paragraph)` text-align: center; `; const List: FunctionalComponent = () => { const { data, isLoading, error } = useQuery( ["pinnedRepos"], () => axios .get( `https://gh-pinned-repos.egoist.sh/?username=${ import.meta.env.VITE_GITHUB_USERNAME }` ) .then((res) => res.data) ); if (isLoading) return ( Loading pinned repos... ); if (error) return ( Status {error.response?.status ?? "Unknown"} - {error.response?.data} ); if (!error && data) { if (Array.isArray(data)) return ( <> {data.map((repo, i) => { const repoFullName = `${repo.owner}/${repo.repo}`; return ( ); })} ); else return Unknown data returned from api; } return <>; }; export default List;