+
{panel}
)
diff --git a/components/ProjectsList.tsx b/components/ProjectsList.tsx
index eab19fe..feb009e 100644
--- a/components/ProjectsList.tsx
+++ b/components/ProjectsList.tsx
@@ -4,17 +4,25 @@ import {LinkPanel} from "./LinkPanel"
import {faBook, faCodeFork} from "@fortawesome/free-solid-svg-icons"
-export function ProjectsList() {
- const repos = useGitHubRepositories("Steffo99")
-
- return
- {repos.map((repo) =>
- )}
-
+export type ProjectsListProps = {
+ repos: any[]
+}
+
+
+export function ProjectsList({repos}: ProjectsListProps) {
+ return (
+
+ {repos.map((repo) =>
+ )}
+
+
+ )
}
diff --git a/hooks/useGitHubRepositories.ts b/hooks/useGitHubRepositories.ts
index c5ace3d..67cc04c 100644
--- a/hooks/useGitHubRepositories.ts
+++ b/hooks/useGitHubRepositories.ts
@@ -4,9 +4,9 @@ import React from "react"
export function useGitHubRepositories(user: string) {
const [data, setData] = React.useState
([])
- const fetchData = React.useCallback(
+ const load = React.useCallback(
async () => {
- setData([])
+ if(data.length > 0) return
let page = 1;
let count = 100;
while(count == 100) {
@@ -17,16 +17,8 @@ export function useGitHubRepositories(user: string) {
setData((old) => [...old, ...data])
}
},
- []
+ [data]
)
- React.useEffect(
- () => {
- // noinspection JSIgnoredPromiseFromCall
- fetchData()
- },
- [fetchData]
- )
-
- return data
+ return {data, load}
}
\ No newline at end of file
diff --git a/pages/_app.css b/pages/_app.css
index d1591fd..38ac6d7 100644
--- a/pages/_app.css
+++ b/pages/_app.css
@@ -27,4 +27,8 @@
display: flex;
flex-wrap: wrap;
gap: 8px;
-}
\ No newline at end of file
+}
+
+.lynx-only {
+ display: none;
+}
diff --git a/pages/index.tsx b/pages/index.tsx
index 0cf200e..38d586d 100644
--- a/pages/index.tsx
+++ b/pages/index.tsx
@@ -7,12 +7,14 @@ import {faBorderAll, faEnvelope, faGlobe, faPlus, faCashRegister, faShieldAlt, f
import {FlipPanel} from "../components/FlipPanel"
import {LinkPanel} from "../components/LinkPanel"
import {ProjectsList} from "../components/ProjectsList"
+import {useGitHubRepositories} from "../hooks/useGitHubRepositories"
import {useKonamiCode} from "../hooks/useKonamiCode"
const Index: NextPage = () => {
const router = useRouter()
+ const repos = useGitHubRepositories("Steffo99")
useKonamiCode(() => router.push("/garasauto"))
return <>
@@ -125,7 +127,13 @@ const Index: NextPage = () => {
icon={faDiagramProject}
text={"View all my projects"}
description={"There's a lot of stuff there!"}
- onPress={flip}
+ onMouseOver={() => {
+ repos.load().then()
+ }}
+ onPress={() => {
+ repos.load().then()
+ flip()
+ }}
/>
>}
@@ -133,7 +141,9 @@ const Index: NextPage = () => {