From d2bb4b06772eb76f058d3d761f916e10af224204 Mon Sep 17 00:00:00 2001 From: teodorus-nathaniel Date: Fri, 2 Feb 2024 22:32:34 +0700 Subject: [PATCH 1/4] feat: change staker data to like stakers --- src/components/creators/TopUsersCard.tsx | 23 ++++++++++-- src/components/utils/datahub/leaderboard.ts | 37 ++++++++----------- src/rtk/features/leaderboard/topUsersSlice.ts | 3 +- 3 files changed, 37 insertions(+), 26 deletions(-) diff --git a/src/components/creators/TopUsersCard.tsx b/src/components/creators/TopUsersCard.tsx index 737f0288f..a597ef1a6 100644 --- a/src/components/creators/TopUsersCard.tsx +++ b/src/components/creators/TopUsersCard.tsx @@ -15,6 +15,7 @@ import ViewProfileLink from '../profiles/ViewProfileLink' import { useIsMobileWidthOrDevice } from '../responsive' import ViewSpaceLink from '../spaces/ViewSpaceLink' import { MutedSpan } from '../utils/MutedText' +import { Pluralize } from '../utils/Plularize' import Segment from '../utils/Segment' export type TopUsersCardProps = ComponentProps<'div'> @@ -82,7 +83,7 @@ export default function TopUsersCard({ ...props }: TopUsersCardProps) { Stakers
{data.stakers.map((staker, i) => ( - + ))}
@@ -93,7 +94,7 @@ export default function TopUsersCard({ ...props }: TopUsersCardProps) { Creators
{data?.creators.map((creator, i) => ( - + ))}
@@ -121,7 +122,15 @@ export default function TopUsersCard({ ...props }: TopUsersCardProps) { ) } -function UserInfo({ rank, user }: { rank: number; user: { address: string; reward: string } }) { +function UserInfo({ + rank, + user, + type, +}: { + rank: number + user: { address: string; reward?: string; count?: number } + type: 'staker' | 'creator' +}) { const profile = useSelectProfile(user.address) const avatar = ( @@ -171,7 +180,13 @@ function UserInfo({ rank, user }: { rank: number; user: { address: string; rewar /> )}
- + {type === 'creator' ? ( + + ) : ( + + + + )}
diff --git a/src/components/utils/datahub/leaderboard.ts b/src/components/utils/datahub/leaderboard.ts index ed53c0618..4bc21eb7b 100644 --- a/src/components/utils/datahub/leaderboard.ts +++ b/src/components/utils/datahub/leaderboard.ts @@ -1,3 +1,4 @@ +import dayjs from 'dayjs' import gql from 'graphql-tag' import { GeneralStatistics } from 'src/rtk/features/leaderboard/generalStatisticsSlice' import { LeaderboardData } from 'src/rtk/features/leaderboard/leaderboardSlice' @@ -6,19 +7,12 @@ import { UserStatistics } from 'src/rtk/features/leaderboard/userStatisticsSlice import { datahubQueryRequest, getDayAndWeekTimestamp } from './utils' const GET_TOP_USERS = gql` - query GetTopUsers($from: String!) { - staker: activeStakingAddressesRankedByRewardsForPeriod( - args: { - filter: { period: WEEK, role: STAKER, timestamp: $from } - limit: 3 - offset: 0 - order: DESC - } + query GetTopUsers($from: String!, $fromTimestamp: String!) { + staker: activeStakingStakersRankedBySuperLikesForPeriod( + args: { fromTime: $fromTimestamp, limit: 3 } ) { - data { - address - reward - } + address + count } creator: activeStakingAddressesRankedByRewardsForPeriod( args: { @@ -40,11 +34,9 @@ export async function getTopUsers(): Promise { const res = await datahubQueryRequest< { staker: { - data: { - address: string - reward: string - }[] - } + address: string + count: number + }[] creator: { data: { address: string @@ -52,10 +44,13 @@ export async function getTopUsers(): Promise { }[] } }, - { from: string } + { from: string; fromTimestamp: string } >({ query: GET_TOP_USERS, - variables: { from: week.toString() }, + variables: { + from: week.toString(), + fromTimestamp: dayjs.utc().startOf('week').add(1, 'day').valueOf().toString(), + }, }) return { @@ -63,9 +58,9 @@ export async function getTopUsers(): Promise { address, reward, })), - stakers: res.data.staker.data.map(({ address, reward }) => ({ + stakers: res.data.staker.map(({ address, count }) => ({ address, - reward, + count, })), } } diff --git a/src/rtk/features/leaderboard/topUsersSlice.ts b/src/rtk/features/leaderboard/topUsersSlice.ts index b776bf027..e1d33ca90 100644 --- a/src/rtk/features/leaderboard/topUsersSlice.ts +++ b/src/rtk/features/leaderboard/topUsersSlice.ts @@ -7,9 +7,10 @@ import { createSimpleFetchWrapper } from 'src/rtk/app/wrappers' import { fetchProfileSpaces } from '../profiles/profilesSlice' type User = { address: string; reward: string } +type UserByLike = { address: string; count: number } export type TopUsers = { creators: User[] - stakers: User[] + stakers: UserByLike[] } const sliceName = 'topUsers' From 9fc7c7a2a6457e131d0d2123d9bf2f3cb1abf2b5 Mon Sep 17 00:00:00 2001 From: teodorus-nathaniel Date: Fri, 2 Feb 2024 23:58:03 +0700 Subject: [PATCH 2/4] fix: timestamp for like leaderboard --- src/components/utils/datahub/leaderboard.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/utils/datahub/leaderboard.ts b/src/components/utils/datahub/leaderboard.ts index 4bc21eb7b..6d5259d27 100644 --- a/src/components/utils/datahub/leaderboard.ts +++ b/src/components/utils/datahub/leaderboard.ts @@ -31,6 +31,13 @@ const GET_TOP_USERS = gql` ` export async function getTopUsers(): Promise { const { week } = getDayAndWeekTimestamp() + let startOfWeekTimestamp = dayjs.utc().startOf('day') + let daysToMonday = startOfWeekTimestamp.day() - 1 + if (daysToMonday < 0) { + daysToMonday += 7 + } + startOfWeekTimestamp = startOfWeekTimestamp.subtract(daysToMonday, 'day') + const res = await datahubQueryRequest< { staker: { @@ -49,7 +56,7 @@ export async function getTopUsers(): Promise { query: GET_TOP_USERS, variables: { from: week.toString(), - fromTimestamp: dayjs.utc().startOf('week').add(1, 'day').valueOf().toString(), + fromTimestamp: startOfWeekTimestamp.valueOf().toString(), }, }) From 482fad9c7d288b2ce64716ad42e8ba5b5f952ddb Mon Sep 17 00:00:00 2001 From: teodorus-nathaniel Date: Sat, 3 Feb 2024 00:01:56 +0700 Subject: [PATCH 3/4] feat: change top users link to leaderboard link --- src/components/creators/TopUsersCard.tsx | 25 ++++++------------------ 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/src/components/creators/TopUsersCard.tsx b/src/components/creators/TopUsersCard.tsx index a597ef1a6..000c43d0c 100644 --- a/src/components/creators/TopUsersCard.tsx +++ b/src/components/creators/TopUsersCard.tsx @@ -1,5 +1,6 @@ import { Button, Skeleton } from 'antd' import clsx from 'clsx' +import Link from 'next/link' import { ComponentProps, CSSProperties, useMemo } from 'react' import { IoChevronForward } from 'react-icons/io5' import { useSendEvent } from 'src/providers/AnalyticContext' @@ -11,9 +12,7 @@ import { truncateAddress } from 'src/utils/storage' import { useMyAddress } from '../auth/MyAccountsContext' import { FormatBalance } from '../common/balances' import Avatar from '../profiles/address-views/Avatar' -import ViewProfileLink from '../profiles/ViewProfileLink' import { useIsMobileWidthOrDevice } from '../responsive' -import ViewSpaceLink from '../spaces/ViewSpaceLink' import { MutedSpan } from '../utils/MutedText' import { Pluralize } from '../utils/Plularize' import Segment from '../utils/Segment' @@ -80,7 +79,7 @@ export default function TopUsersCard({ ...props }: TopUsersCardProps) { style={{ display: 'grid', gridTemplateColumns: isMobile ? '1fr 1fr' : '1fr' }} >
- Stakers + Likers
{data.stakers.map((staker, i) => ( @@ -154,7 +153,7 @@ function UserInfo({ return (
- {profile ? : avatar} + {avatar} {[1, 2, 3].includes(rank) && (
- {profile ? ( - - ) : ( - - )} + + {name} +
{type === 'creator' ? ( From d110fc3c0b888d849cf898f3654610e6f79319da Mon Sep 17 00:00:00 2001 From: teodorus-nathaniel Date: Sat, 3 Feb 2024 00:20:18 +0700 Subject: [PATCH 4/4] feat: display other content when top users are not available yet --- public/images/medals.png | Bin 0 -> 42721 bytes src/components/creators/TopUsersCard.tsx | 43 +++++++++++++++++------ 2 files changed, 33 insertions(+), 10 deletions(-) create mode 100644 public/images/medals.png diff --git a/public/images/medals.png b/public/images/medals.png new file mode 100644 index 0000000000000000000000000000000000000000..efc4da8ba16169eda1939fff81dfedd63adcd39f GIT binary patch literal 42721 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
66cq+p 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 z-;>3aMOPaD00000000000000000000000000000000000000000000000000zHa{m X*_4D+!B6%r00000NkvXXu0mjfM`z6` literal 0 HcmV?d00001 diff --git a/src/components/creators/TopUsersCard.tsx b/src/components/creators/TopUsersCard.tsx index 000c43d0c..ccb553f07 100644 --- a/src/components/creators/TopUsersCard.tsx +++ b/src/components/creators/TopUsersCard.tsx @@ -13,6 +13,7 @@ import { useMyAddress } from '../auth/MyAccountsContext' import { FormatBalance } from '../common/balances' import Avatar from '../profiles/address-views/Avatar' import { useIsMobileWidthOrDevice } from '../responsive' +import { DfImage } from '../utils/DfImage' import { MutedSpan } from '../utils/MutedText' import { Pluralize } from '../utils/Plularize' import Segment from '../utils/Segment' @@ -80,22 +81,30 @@ export default function TopUsersCard({ ...props }: TopUsersCardProps) { >
Likers -
- {data.stakers.map((staker, i) => ( - - ))} -
+ {data.stakers.length < 3 ? ( + + ) : ( +
+ {data.stakers.map((staker, i) => ( + + ))} +
+ )}
Creators -
- {data?.creators.map((creator, i) => ( - - ))} -
+ {data.creators.length < 3 ? ( + + ) : ( +
+ {data.creators.map((creator, i) => ( + + ))} +
+ )}
{!isMobile &&
{seeMoreButton}
} @@ -180,6 +189,20 @@ function UserInfo({ ) } +function NoUsersContent({ text }: { text: string }) { + return ( +
+ + + {text} + +
+ ) +} + function Medal({ rank, ...props }: ComponentProps<'div'> & { rank: 1 | 2 | 3 }) { const rankStyles: Record = { 1: {