import { h } from 'preact'; import { useState, useEffect } from 'preact/hooks'; import { SingleRepo } from './singleRepo'; import { request } from '@utilities/http'; export const GithubRepos = () => { const [repos, setRepos] = useState([]); const [error, setError] = useState(false); const [errorMessage, setErrorMessage] = useState(''); useEffect(() => { getGithubRepos(); }, []); const getGithubRepos = async () => { try { const response = await request('/github_repos'); if (response.ok) { const repositories = await response.json(); setRepos(repositories); } else { throw new Error(response.statusText); } } catch (error) { Honeybadger.notify(error); setError(true); setErrorMessage(error.toString()); } }; if (error) { return (
An error occurred: {errorMessage}
); } if (repos.length > 0) { return (
{repos.map((repo) => ( ))}
); } return (
); }; GithubRepos.displayName = 'GitHub Repositories Wrapper';