diff --git a/apps/web/package.json b/apps/web/package.json index a1e2911..6e8a356 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -9,9 +9,10 @@ }, "dependencies": { "@rainbow-me/rainbowkit": "^2.1.5", - "@tanstack/react-query": "^5.55.4", "@repo/ui": "*", + "@tanstack/react-query": "^5.55.4", "ethereum-blockies-base64": "^1.0.2", + "graphql-request": "^7.1.0", "next": "14.2.8", "react": "^18", "react-dom": "^18", diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx index 58bb1e6..5c0ac7f 100644 --- a/apps/web/src/app/page.tsx +++ b/apps/web/src/app/page.tsx @@ -1,12 +1,11 @@ "use client"; -import { useQuery } from "@tanstack/react-query"; import { useRouter } from "next/navigation"; import { useEffect, useState } from "react"; import { getAddress } from "viem"; import { CouncilName } from "../components/CouncilName"; import VotingCard from "../components/VotingCard"; -import { getGrantees } from "../utils/grantees"; +import { useCouncil } from "../hooks/useCouncil"; const defaultCouncil = "0x5cE162b6e6Dd6B936B9dC183Df79F61DBf8c675f"; @@ -27,15 +26,13 @@ export default function Page() { }, [router]); // Fetch data when the council is available - const { data: grantees, isLoading } = useQuery({ - queryKey: ["grantees", council], - queryFn: () => council && getGrantees(council), - enabled: !!council, // Only run query if council is defined - }); + const { data: councilData, isLoading } = useCouncil(council); + const grantees = councilData?.grantees; + return (
; +}: { name: string | undefined; className?: string }) { + if (!name) return ; return

{name}

; } diff --git a/apps/web/src/components/VotingCard.tsx b/apps/web/src/components/VotingCard.tsx index 11e3722..0d60730 100644 --- a/apps/web/src/components/VotingCard.tsx +++ b/apps/web/src/components/VotingCard.tsx @@ -11,11 +11,10 @@ import { import { Input } from "@repo/ui/components/ui/input"; import { Skeleton } from "@repo/ui/components/ui/skeleton"; import React, { useState } from "react"; -import { useAccount } from "wagmi"; import { useWriteAllocation } from "../hooks/useWriteAllocation"; import VotingButton from "./VotingButton"; -type Project = { grantee: `0x${string}`; name: string }; +type Project = { account: `0x${string}`; name: string }; const VotingCard = ({ className, @@ -31,7 +30,7 @@ const VotingCard = ({ isLoading: boolean; }) => { const [votes, setVotes] = useState<{ [grantee: `0x${string}`]: number }>( - Object.fromEntries(projects.map((project) => [project.grantee, 0])), + Object.fromEntries(projects.map((project) => [project.account, 0])), ); // Array of project addresses that have been voted on @@ -68,17 +67,17 @@ const VotingCard = ({ projects) {projects.map((project) => { - const voteCount = votes[project.grantee] || 0; + const voteCount = votes[project.account] || 0; return (
{project.name}