Skip to content

Commit

Permalink
remove graphql services
Browse files Browse the repository at this point in the history
  • Loading branch information
ndodson committed Nov 14, 2024
1 parent f892a19 commit 8639c18
Show file tree
Hide file tree
Showing 882 changed files with 1,488 additions and 24,637 deletions.
2 changes: 2 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
4 changes: 2 additions & 2 deletions uplink-client/src/app/(home)/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import { Button } from "@/ui/DesignKit/Button";
import { FaCircle, FaPalette } from "react-icons/fa";
import { LuCoins } from "react-icons/lu";
import { PiInfinity } from "react-icons/pi";
import { ChainLabel } from "@/ui/ContestLabels/ContestLabels";
import { ChainLabel } from "@/ui/ChainLabel/ChainLabel";
import { RenderMintMedia } from "@/ui/Token/MintUtils";
import { ImageWrapper } from "@/ui/Submission/MediaWrapper";
import { ImageWrapper } from "@/app/(legacy)/contest/components/MediaWrapper";
import { MdAccessibility, MdDashboardCustomize, MdGroups } from "react-icons/md";
import OptimizedImage from "@/lib/OptmizedImage";

Expand Down
30 changes: 30 additions & 0 deletions uplink-client/src/app/(legacy)/contest/[id]/client.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
"use client";
import { useState } from "react";
import { Modal } from "@/ui/Modal/Modal";

export const ExpandSection = ({
data,
label,
children,
}: {
data: any[];
label: string;
children: React.ReactNode;
}) => {
const [isModalOpen, setIsModalOpen] = useState(false);
return (
<div>
{data.length > 3 && (
<a
className="hover:underline text-blue-500 cursor-pointer"
onClick={() => setIsModalOpen(true)}
>
{label}
</a>
)}
<Modal isModalOpen={isModalOpen} onClose={() => setIsModalOpen(false)} className="w-full max-w-[500px]">
{children}
</Modal>
</div>
);
};
43 changes: 43 additions & 0 deletions uplink-client/src/app/(legacy)/contest/[id]/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import fetchLegacyContest from "@/lib/fetch/fetchLegacyContest";
import { LegacyContestWithPrompt } from "@/types/contest";
import { Metadata } from "next";


export async function generateMetadata({
params,
}: {
params: { id: string };
}): Promise<Metadata> {
const contest: LegacyContestWithPrompt = await fetchLegacyContest(params.id).then(async data => {
const promptData = await fetch(data.promptUrl).then(res => res.json());
return { ...data, promptData };
});

return {
title: `${contest.promptData.title} on Uplink`,
description: `${contest.promptData.title} on Uplink`,
openGraph: {
title: `${contest.promptData.title}`,
description: `${contest.promptData.title} on Uplink`,
images: [
{
url: `api/contest/${params.id}/contest_metadata`,
width: 600,
height: 600,
alt: `contest logo`,
},
],
locale: "en_US",
type: "website",
},
};
}


export default function Layout({ children }: { children: React.ReactNode }) {
return (
<div className="relative w-full flex flex-col items-center p-4">
{children}
</div>
)
}
123 changes: 123 additions & 0 deletions uplink-client/src/app/(legacy)/contest/[id]/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
import {
ContestHeadingSkeleton,
} from "@/ui/ContestHeading/ContestHeading";
import { Suspense } from "react";
import fetchLegacyContest from "@/lib/fetch/fetchLegacyContest";
import Link from "next/link";
import OptimizedImage from "@/lib/OptmizedImage";
import { ChannelStateLabel } from "@/ui/ChannelSidebar/SidebarUtils";
import ExpandableTextSection from "@/ui/ExpandableTextSection/ExpandableTextSection";
import ParseBlocks from "@/lib/blockParser";
import { ImageWrapper } from "@/app/(legacy)/contest/components/MediaWrapper";
import { LiveSubmissionDisplay, SubmissionDisplaySkeleton } from "@/app/(legacy)/contest/components/SubmissionDisplay";
import { DetailsSkeleton } from "@/ui/ChannelSidebar/ContestDetailsV2";
import ContestDetails from "@/app/(legacy)/contest/components/ContestDetails";

const SubmissionWrapper = async ({
contestId,
}: {
contestId: string;
}) => {
const contest = await fetchLegacyContest(contestId);

return <LiveSubmissionDisplay contestId={contestId} submissions={contest.submissions} />

};


const LegacyContestHeading = async ({ contestId }: { contestId: string }) => {


const contest = await fetchLegacyContest(contestId).then(async (res) => {
const promptData = await fetch(res.promptUrl).then((res) => res.json());
return { ...res, prompt: promptData };
})

const { prompt, space, metadata } = contest;

return (
<div className="grid grid-cols-1 w-full gap-2">
<div className="w-full ml-auto ">
<div className="grid grid-cols-1 sm:grid-cols-[auto_25%] gap-6 w-full p-4">
<div className="flex flex-col gap-2 break-words">
<h2 className="lg:text-3xl text-xl font-[600] text-t1">
{prompt.title}
</h2>
<div className="flex flex-row gap-2 items-center">
<Link
className="relative w-8 h-8 flex flex-col"
href={`/${space.name}`}
draggable={false}
>
<OptimizedImage
src={space.logoUrl}
alt="Org Avatar"
fill
className="rounded-full object-cover"
/>
</Link>
<Link
className="text-sm text-t2 hover:underline hover:text-t1"
href={`/${space.name}`}
draggable={false}
>
{space.displayName}
</Link>
<ChannelStateLabel channelState="complete" />

</div>
<div className="grid grid-cols-1">
<ExpandableTextSection>
<ParseBlocks data={prompt.body} omitImages={false} />
</ExpandableTextSection>
</div>
</div>
<div className="grid grid-cols-1 items-start w-full gap-2">
{prompt.coverUrl && (
<ImageWrapper>
<OptimizedImage
src={prompt.coverUrl}
alt="contest image"
sizes="20vw"
fill
className="object-contain rounded-xl"
/>
</ImageWrapper>
)}
</div>
</div>
</div>
<div className="w-full h-0.5 bg-base-100" />
</div>
);
};




export default async function Page({ params }: { params: { id: string } }) {

const contestId = params.id;

return (
<div className="flex gap-6 m-auto w-full lg:w-[90vw]">
<div className="flex flex-col w-full gap-4 transition-all duration-200 ease-in-out">
<Suspense fallback={<ContestHeadingSkeleton />}>
<LegacyContestHeading contestId={contestId} />
</Suspense>

<Suspense fallback={<SubmissionDisplaySkeleton />}>
<SubmissionWrapper contestId={contestId} />
</Suspense>
</div>
<div className="hidden lg:block sticky top-3 right-0 w-full max-w-[450px] flex-grow h-full">
<div className="flex flex-col gap-2 w-full border border-border bg-base-100 rounded-lg">
<Suspense fallback={<DetailsSkeleton />}>
<ContestDetails contestId={contestId} />
</Suspense>
</div>
</div>
</div>
);
}

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { useInView } from "react-intersection-observer";
import React, { useEffect, useState } from "react";
import { isMobile } from "@/lib/isMobile";
import dynamic from "next/dynamic";
import { UsernameDisplay, UserAvatar } from "../AddressDisplay/AddressDisplay";
import { UsernameDisplay, UserAvatar } from "../../../../ui/AddressDisplay/AddressDisplay";
import { ImageWrapper } from "./MediaWrapper";
import { TbCrown } from "react-icons/tb";
import { ParseThread } from "@/lib/threadParser";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { FaRegCircleQuestion } from "react-icons/fa6";
import formatDecimal from "@/lib/formatDecimal";
import { ExpandSection, RenderStateSpecificDialog } from "./client";
import { ExpandSection } from "../[id]/client";
import { Fragment } from "react";
import formatOrdinals from "@/lib/formatOrdinals";
import { ChainLabel } from "../ContestLabels/ContestLabels";
import { ChainLabel } from "../../../../ui/ChainLabel/ChainLabel";
import {
FungibleReward,
LegacyContest,
NonFungibleReward,
SubmitterTokenRewardOption,
isArcadeVotingStrategy,
Expand All @@ -14,17 +15,14 @@ import {
isVoterTokenReward,
isWeightedVotingStrategy,
} from "@/types/contest";
import type { FetchSingleContestResponse } from "@/lib/fetch/fetchContest";
import { getChainName } from "@/lib/chains/supportedChains";
import fetchContest from "@/lib/fetch/fetchContest";
import { TooltipContent, Tooltip, TooltipProvider, TooltipTrigger } from "../DesignKit/Tooltip";

import { Info } from "../DesignKit/Info";

import fetchLegacyContest from "@/lib/fetch/fetchLegacyContest";
import { TooltipContent, Tooltip, TooltipProvider, TooltipTrigger } from "../../../../ui/DesignKit/Tooltip";

import { Info } from "../../../../ui/DesignKit/Info";

const normalizeSubmitterRewards = (
subRewards: FetchSingleContestResponse["submitterRewards"]
subRewards: LegacyContest["submitterRewards"]
) => {
if (subRewards.length === 0) return [];
let rewardsObj: {
Expand Down Expand Up @@ -107,7 +105,7 @@ export const DetailSectionWrapper = ({
);
};

const SubmitterRestrictionsSection = ({ submitterRestrictions }: { submitterRestrictions: FetchSingleContestResponse['submitterRestrictions'] }) => {
const SubmitterRestrictionsSection = ({ submitterRestrictions }: { submitterRestrictions: LegacyContest['submitterRestrictions'] }) => {
return (
<DetailSectionWrapper
title="Entry Requirements"
Expand Down Expand Up @@ -165,7 +163,7 @@ const SubmitterRestrictionsSection = ({ submitterRestrictions }: { submitterRest
const SubmitterRewardsSection = ({
submitterRewards,
}: {
submitterRewards: FetchSingleContestResponse["submitterRewards"];
submitterRewards: LegacyContest["submitterRewards"];
}) => {
const normalizedRewards: {
[rank: number]: SubmitterTokenRewardOption[];
Expand Down Expand Up @@ -260,7 +258,7 @@ const SubmitterRewardsSection = ({
const VoterRewardsSection = ({
voterRewards,
}: {
voterRewards: FetchSingleContestResponse["voterRewards"];
voterRewards: LegacyContest["voterRewards"];
}) => {
if (voterRewards.length > 0) {
return (
Expand Down Expand Up @@ -323,8 +321,8 @@ const VoterRewardsSection = ({
const VotingPolicySection = ({
votingPolicy,
}: {
votingPolicy: FetchSingleContestResponse["votingPolicy"];
chainId: FetchSingleContestResponse["chainId"];
votingPolicy: LegacyContest["votingPolicy"];
chainId: LegacyContest["chainId"];
}) => {
return (
<DetailSectionWrapper
Expand Down Expand Up @@ -431,7 +429,7 @@ const ContestDetails = async ({
}: {
contestId: string;
}) => {
const contestData = await fetchContest(contestId).then(async (res) => {
const contestData = await fetchLegacyContest(contestId).then(async (res) => {
const promptData = await fetch(res.promptUrl).then((res) => res.json());
return { ...res, promptData };
});
Expand Down Expand Up @@ -462,12 +460,6 @@ const ContestDetails = async ({
<VoterRewardsSection voterRewards={voterRewards} />
<VotingPolicySection votingPolicy={votingPolicy} chainId={chainId} />
</div>
<RenderStateSpecificDialog
contestId={contestId}
startTime={deadlines.startTime}
spaceId={space.id}
prompt={promptData}
/>
</div>
);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const ParseBlocks = dynamic(() => import("@/lib/blockParser"), {
});
import { ParseThread } from "@/lib/threadParser";
import { ImageWrapper } from "./MediaWrapper";
import { UsernameDisplay, UserAvatar } from "../AddressDisplay/AddressDisplay";
import { UsernameDisplay, UserAvatar } from "../../../../ui/AddressDisplay/AddressDisplay";
import dynamic from "next/dynamic";
import { RenderStandardVideoWithLoader } from "@/ui/VideoPlayer";

Expand Down
Loading

0 comments on commit 8639c18

Please sign in to comment.