Дело в том, что для подсчёта pageCount нужно знать общее число результатов поиска. В data.length не оно, а ровно 10, потому что именно 10 передаётся в параметре per_page в GithubAPI. То есть 10 запросил - 10 получил. Соответственно, все 10 уменьшаются на 1 странице - и пагинация не отображается.
А репозитории не отображаются потому, что надо вот так:
useEffect(() => {
if (user) {
fetch(
`//api.github.com/users/${user.login}/repos?page=${currentPage}&per_page=${PER_PAGE}`
)
.then((res) => res.json())
.then(setData);
}
}, [user, currentPage]);
Тогда при изменении переменной user или currentPage будет отрабатывать useEffect