Skip to content

Commit 7601f00

Browse files
feat: update ui
1 parent c8fc567 commit 7601f00

File tree

1 file changed

+52
-34
lines changed

1 file changed

+52
-34
lines changed

packages/grant-explorer/src/features/projects/ViewProject.tsx

Lines changed: 52 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import InfoModal from "../common/InfoModal";
4040
import { Input } from "common/src/styles";
4141
import { PayoutTokenDropdown } from "../round/ViewCartPage/PayoutTokenDropdown";
4242
import { useAccount } from "wagmi";
43+
import { getVotingTokenOptions } from "../api/utils";
4344

4445
const CalendarIcon = (props: React.SVGProps<SVGSVGElement>) => {
4546
return (
@@ -64,7 +65,19 @@ const CalendarIcon = (props: React.SVGProps<SVGSVGElement>) => {
6465
export default function ViewProject() {
6566
const [selectedTab, setSelectedTab] = useState(0);
6667
const { chainId } = useAccount();
67-
const [showDirectAllocationModal, setShowDirectAllocationModal] = useState<boolean>(false);
68+
const [showDirectAllocationModal, setShowDirectAllocationModal] =
69+
useState<boolean>(false);
70+
const [fixedDonation, setFixedDonation] = useState<string | undefined>(
71+
undefined
72+
);
73+
74+
const payoutTokenOptions: TToken[] = getVotingTokenOptions(
75+
Number(chainId)
76+
).filter((p) => p.canVote);
77+
78+
const [payoutToken, setPayoutToken] = useState<TToken | undefined>(
79+
payoutTokenOptions[0]
80+
);
6881

6982
const { projectId } = useParams();
7083

@@ -174,13 +187,6 @@ export default function ViewProject() {
174187
setSelectedTab(tabIndex);
175188
};
176189

177-
178-
// const selectedPayoutToken = getVotingTokenForChain(chainId || 1);
179-
// const payoutTokenOptions: TToken[] = getVotingTokenOptions(
180-
// Number(chainId)
181-
// ).filter((p) => p.canVote);
182-
183-
184190
return (
185191
<>
186192
{projectData !== undefined || isProjectDataLoading ? (
@@ -206,15 +212,10 @@ export default function ViewProject() {
206212
</div>
207213
<div className="md:flex gap-4 flex-row-reverse">
208214
<div className="mb-4">
209-
<button
210-
type="button"
211-
data-testid="direct-allocation-button"
212-
className="w-full block m-3 rounded-md bg-indigo-600 py-2 px-3 text-center text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 disabled:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
213-
onClick={() => setShowDirectAllocationModal(true)}
214-
>
215-
Donate
216-
</button>
217-
<Sidebar projectApplications={projectApplications} />
215+
<Sidebar
216+
projectApplications={projectApplications}
217+
setShowDirectAllocationModal={setShowDirectAllocationModal}
218+
/>
218219
</div>
219220
<div className="flex-1">
220221
{projectError === undefined ? (
@@ -261,9 +262,9 @@ export default function ViewProject() {
261262
className="w-16 lg:w-18"
262263
/>
263264
<PayoutTokenDropdown
264-
selectedPayoutToken={selectedPayoutToken}
265+
selectedPayoutToken={payoutToken}
265266
setSelectedPayoutToken={(token) => {
266-
setVotingTokenForChain(chainId, token);
267+
setPayoutToken(token);
267268
}}
268269
payoutTokenOptions={payoutTokenOptions}
269270
/>
@@ -445,6 +446,7 @@ function ProjectLogo({ logoImg }: { logoImg?: string }) {
445446

446447
function Sidebar(props: {
447448
projectApplications?: ProjectApplicationWithRoundAndProgram[];
449+
setShowDirectAllocationModal: React.Dispatch<React.SetStateAction<boolean>>;
448450
}) {
449451
const activeQFRoundApplications = props.projectApplications?.filter(
450452
(projectApplication) =>
@@ -456,7 +458,10 @@ function Sidebar(props: {
456458
return (
457459
<div className="flex flex-col">
458460
<div className="min-w-[320px] h-fit mb-6 rounded-3xl bg-gray-50">
459-
<ProjectStats projectApplications={props.projectApplications} />
461+
<ProjectStats
462+
projectApplications={props.projectApplications}
463+
setShowDirectAllocationModal={props.setShowDirectAllocationModal}
464+
/>
460465
</div>
461466
{activeQFRoundApplications && activeQFRoundApplications?.length > 0 && (
462467
<h4 className="text-xl font-medium">Active rounds</h4>
@@ -478,6 +483,7 @@ function Sidebar(props: {
478483

479484
export function ProjectStats(props: {
480485
projectApplications?: ProjectApplicationWithRoundAndProgram[];
486+
setShowDirectAllocationModal: React.Dispatch<React.SetStateAction<boolean>>;
481487
}) {
482488
const totalFundingReceived =
483489
props.projectApplications
@@ -505,20 +511,32 @@ export function ProjectStats(props: {
505511
const totalRoundsParticipated = props.projectApplications?.length ?? 0;
506512

507513
return (
508-
<div className="rounded-3xl flex-auto p-3 md:p-4 gap-4 flex flex-col text-blue-800">
509-
<h4 className="text-2xl">All-time stats</h4>
510-
<Stat isLoading={false} value={`$${totalFundingReceived}`}>
511-
funding received
512-
</Stat>
513-
<Stat isLoading={false} value={totalContributions}>
514-
contributions
515-
</Stat>
516-
<Stat isLoading={false} value={totalUniqueDonors}>
517-
unique contributors
518-
</Stat>
519-
<Stat isLoading={false} value={totalRoundsParticipated}>
520-
rounds participated
521-
</Stat>
514+
<div className="flex flex-col">
515+
<div className="rounded-3xl flex-auto p-3 md:p-4 gap-4 flex flex-col text-blue-800">
516+
<h4 className="text-2xl">All-time stats</h4>
517+
<Stat isLoading={false} value={`$${totalFundingReceived}`}>
518+
funding received
519+
</Stat>
520+
<Stat isLoading={false} value={totalContributions}>
521+
contributions
522+
</Stat>
523+
<Stat isLoading={false} value={totalUniqueDonors}>
524+
unique contributors
525+
</Stat>
526+
<Stat isLoading={false} value={totalRoundsParticipated}>
527+
rounds participated
528+
</Stat>
529+
</div>
530+
<div className="flex justify-center">
531+
<button
532+
type="button"
533+
data-testid="direct-allocation-button"
534+
className="w-[90%] block my-3 mx-1 rounded-3xl bg-indigo-600 py-2 px-3 text-center text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 disabled:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
535+
onClick={() => props.setShowDirectAllocationModal(true)}
536+
>
537+
Donate
538+
</button>
539+
</div>
522540
</div>
523541
);
524542
}

0 commit comments

Comments
 (0)