Skip to content

Commit 02635b4

Browse files
authored
Fix #5 - checked in counter (#25)
* replace img with nextjs Image component * Hotfix: fix linting issue * add CheckInCounter component to read contract variable checkedInCounter * fix: add dependencies to useEffect to avoid infinite chain of updates
1 parent f3cff61 commit 02635b4

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

packages/nextjs/app/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use client";
22

33
import Link from "next/link";
4+
import CheckedInCounter from "../components/CheckedInCounter";
45
import type { NextPage } from "next";
56
import { BugAntIcon, MagnifyingGlassIcon } from "@heroicons/react/24/outline";
67

@@ -15,8 +16,7 @@ const Home: NextPage = () => {
1516
</h1>
1617
<p className="text-center text-lg">Get started by taking a look at your batch GitHub repository.</p>
1718
<p className="text-lg flex gap-2 justify-center">
18-
<span className="font-bold">Checked in builders count:</span>
19-
<span>To Be Implemented</span>
19+
<CheckedInCounter />
2020
</p>
2121
</div>
2222

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { useEffect, useState } from "react";
2+
import { useScaffoldReadContract } from "~~/hooks/scaffold-eth";
3+
4+
const CheckInCount = () => {
5+
const [feedback, setFeedback] = useState<string>("");
6+
const [result, setResult] = useState<string>();
7+
8+
const {
9+
data: checkedIn,
10+
isLoading: checkInLoading,
11+
error: checkInError,
12+
} = useScaffoldReadContract({
13+
contractName: "BatchRegistry",
14+
functionName: "checkedInCounter",
15+
});
16+
17+
useEffect(() => {
18+
if (checkInError) {
19+
setFeedback("Something went wrong");
20+
console.error(checkInError);
21+
} else {
22+
setResult(checkInLoading ? "..." : String(Number(checkedIn)));
23+
}
24+
}, [checkInError, checkInLoading, checkedIn]);
25+
26+
return (
27+
<>
28+
<span className="font-bold">Checked in builders count: {result}</span>
29+
{feedback && <p>{feedback}</p>}
30+
</>
31+
);
32+
};
33+
34+
export default CheckInCount;

0 commit comments

Comments
 (0)