Skip to content

Commit

Permalink
feat: gists pages
Browse files Browse the repository at this point in the history
  • Loading branch information
stifskere committed Jul 28, 2024
1 parent f9bb52d commit a511203
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 9 deletions.
2 changes: 1 addition & 1 deletion src/app/page.css
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ body {
}
}

.repository-page-selector {
.global-page-selector {
min-height: 50px;
}

Expand Down
26 changes: 18 additions & 8 deletions src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@ import "./page.css";

export default function Home(): ReactElement {
const [repos, setRepos]: StateTuple<GithubRepository[] | undefined | null> = useState();
const [page, setPage]: StateTuple<number> = useState(0);
const [reposPage, setReposPage]: StateTuple<number> = useState(0);
const [gists, setGists]: StateTuple<GithubCompiledGist[] | undefined | null> = useState();
const [gistsPage, setGistsPage]: StateTuple<number> = useState(0);
const [phrase, setPhrase]: StateTuple<ReactElement | undefined> = useState();
const [easterEnabled, setEasterEnabled]: StateTuple<boolean> = useState<boolean>(false);

Expand Down Expand Up @@ -90,8 +91,12 @@ export default function Home(): ReactElement {
};
}, []);

function setCurrentPage(page: number): void {
setPage(page - 1);
function setCurrentReposPage(page: number): void {
setReposPage(page - 1);
}

function setCurrentGistsPage(page: number): void {
setGistsPage(page - 1);
}

function setPresentationFace(smiling: boolean): (() => void) {
Expand Down Expand Up @@ -174,14 +179,14 @@ export default function Home(): ReactElement {
<Loader error={repos === null} waiting={repos === undefined} what="github repositories">
<>
<div className="repositories">
{repos?.slice(page * 3, Math.min((page + 1) * 3, repos!.length))
{repos?.slice(reposPage * 3, Math.min((reposPage + 1) * 3, repos!.length))
.map((repo: GithubRepository, index: number): ReactElement =>
<Repository repository={repo} key={index}/>
)}
</div>
<PageSelector
pageSelected={setCurrentPage}
className="repository-page-selector"
pageSelected={setCurrentReposPage}
className="global-page-selector"
pages={Math.ceil((repos?.length ?? 0) / 3)}
/>
</>
Expand All @@ -191,10 +196,15 @@ export default function Home(): ReactElement {
<section className="gists">
<Loader error={gists === null} waiting={gists === undefined} what="github gists">
<>
{gists
?.toSorted((gistA: GithubCompiledGist, gistB: GithubCompiledGist) => gistA.order - gistB.order)
{gists?.slice(gistsPage * 2, Math.min((gistsPage + 1) * 2, gists!.length))
.toSorted((gistA: GithubCompiledGist, gistB: GithubCompiledGist) => gistA.order - gistB.order)
.map((gist: GithubCompiledGist, index: number) => <Gist key={index} gist={gist}/>)
}
<PageSelector
pageSelected={setCurrentGistsPage}
className="global-page-selector"
pages={Math.ceil((gists?.length ?? 0) / 2)}
/>
</>
</Loader>
</section>
Expand Down

0 comments on commit a511203

Please sign in to comment.