Skip to content

Commit 586760d

Browse files
authored
feat(CapacityInfo): expand staker deals info (#143)
* feat(CapacityInfo): expand staker deals info * feat(DealsTable): remove max period * feat(DealInfo): fix DealInfo * feat(ts-deal-client): bump version
1 parent 5808b65 commit 586760d

5 files changed

Lines changed: 100 additions & 29 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"dependencies": {
1616
"@emotion/react": "^11.11.1",
1717
"@emotion/styled": "^11.11.0",
18-
"@fluencelabs/deal-ts-clients": "0.24.0",
18+
"@fluencelabs/deal-ts-clients": "0.24.1",
1919
"@graphql-codegen/cli": "^5.0.3",
2020
"@graphql-codegen/typescript": "^4.1.0",
2121
"@graphql-codegen/typescript-graphql-request": "^6.2.0",

src/pages/capacity/CapacityInfo.tsx

Lines changed: 71 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React, { ReactNode } from 'react'
22
import styled from '@emotion/styled'
3+
import { RewardsStatistics } from '@fluencelabs/deal-ts-clients/dist/dealExplorerClient/types/schemes'
34
import { useParams } from 'wouter'
45

56
import { InfoOutlineIcon } from '../../assets/icons'
@@ -83,6 +84,60 @@ const Rewards: React.FC<{
8384
)
8485
}
8586

87+
const StakerRewards: React.FC<{
88+
title: string
89+
symbol?: string
90+
decimals?: number
91+
92+
total: RewardsStatistics
93+
deals: RewardsStatistics
94+
capacityCommitments: RewardsStatistics
95+
}> = ({
96+
title: mainTitle,
97+
symbol,
98+
total,
99+
deals,
100+
capacityCommitments,
101+
decimals,
102+
}) => {
103+
return (
104+
<div>
105+
<Text size={24}>{mainTitle}</Text>
106+
<Space height="24px" />
107+
<ParametersStakerRewards>
108+
{[
109+
{ record: capacityCommitments, title: 'CCs' },
110+
{ record: deals, title: 'Deals' },
111+
{ record: total, title: 'Total' },
112+
].map((group) => (
113+
<div key={group.title}>
114+
<Record
115+
title={`In vesting / ${group.title}`}
116+
balance={group.record.inVesting}
117+
symbol={symbol}
118+
decimals={decimals}
119+
/>
120+
<Space height="32px" />
121+
<Record
122+
title={`Available to claim / ${group.title}`}
123+
balance={group.record.availableToClaim}
124+
symbol={symbol}
125+
decimals={decimals}
126+
/>
127+
<Space height="32px" />
128+
<Record
129+
title={`Total claimed / ${group.title}`}
130+
balance={group.record.claimed}
131+
symbol={symbol}
132+
decimals={decimals}
133+
/>
134+
</div>
135+
))}
136+
</ParametersStakerRewards>
137+
</div>
138+
)
139+
}
140+
86141
export const CapacityInfo: React.FC = () => {
87142
const params = useParams()
88143

@@ -323,7 +378,7 @@ export const CapacityInfo: React.FC = () => {
323378
</Parameter>
324379
</ParametersRow>
325380
<Space height="40px" />
326-
<ParametersRow>
381+
<ParametersRewards>
327382
<Rewards
328383
title="Provider"
329384
symbol={capacity.collateralToken.symbol}
@@ -332,15 +387,13 @@ export const CapacityInfo: React.FC = () => {
332387
claimed={capacity.rewards.provider.claimed}
333388
decimals={Number(capacity.collateralToken.decimals)}
334389
/>
335-
<Rewards
390+
<StakerRewards
336391
title="Staker"
337392
symbol={capacity.collateralToken.symbol}
338-
inVesting={capacity.rewards.staker.inVesting}
339-
availableToClaim={capacity.rewards.staker.availableToClaim}
340-
claimed={capacity.rewards.staker.claimed}
341393
decimals={Number(capacity.collateralToken.decimals)}
394+
{...capacity.rewards.staker}
342395
/>
343-
</ParametersRow>
396+
</ParametersRewards>
344397
<Space height="80px" />
345398
<ListComputeUnitsTable capacityCommitmentId={id} />
346399
<Space height="30px" />
@@ -396,6 +449,18 @@ const ParametersRow = styled.div`
396449
gap: 120px;
397450
`
398451

452+
const ParametersRewards = styled.div`
453+
display: grid;
454+
grid-template-columns: 200px 600px;
455+
gap: 120px;
456+
`
457+
458+
const ParametersStakerRewards = styled.div`
459+
display: grid;
460+
grid-template-columns: 1fr 1fr 1fr;
461+
gap: 60px;
462+
`
463+
399464
const Parameter = styled.div`
400465
display: flex;
401466
flex-direction: column;

src/pages/deal/DealInfo.tsx

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,29 @@ export const DealInfo: React.FC = () => {
148148
<TextWithBadge>
149149
<Text size={12}>
150150
{formatTokenValue(
151-
deal.totalEarnings,
151+
deal.rewards?.provider.total ?? BigInt(0),
152+
Number(deal.paymentToken.decimals),
153+
)}
154+
</Text>
155+
<TokenBadge bg="grey200">
156+
<Text size={10} weight={800} color="grey500">
157+
{deal.paymentToken.symbol}
158+
</Text>
159+
</TokenBadge>
160+
</TextWithBadge>
161+
</Info>
162+
</InfoRow>
163+
<Space height="32px" />
164+
<InfoRow>
165+
<Info></Info>
166+
<Info>
167+
<Text size={10} weight={700} uppercase color="grey400">
168+
Total staker earnings
169+
</Text>
170+
<TextWithBadge>
171+
<Text size={12}>
172+
{formatTokenValue(
173+
deal.rewards?.staker.total ?? BigInt(0),
152174
Number(deal.paymentToken.decimals),
153175
)}
154176
</Text>

src/pages/deals/DealsTable.tsx

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ const template = [
4343
'minmax(10px, 1fr)',
4444
'minmax(10px, 1fr)',
4545
'minmax(10px, 1fr)',
46-
'minmax(10px, 1fr)',
4746
]
4847

4948
export const DEALS_PER_PAGE = 5
@@ -104,7 +103,6 @@ export const DealsTable: React.FC<DealsTableProps> = ({
104103
>
105104
Created At
106105
</TableColumnTitleWithSort>
107-
<TableColumnTitle>Max renting period</TableColumnTitle>
108106
<TableColumnTitle>Client</TableColumnTitle>
109107
<TableColumnTitle>Balance</TableColumnTitle>
110108
<TableColumnTitle>Status</TableColumnTitle>
@@ -152,10 +150,6 @@ const DealRow: React.FC<DealRowProps> = ({ deal }) => {
152150
}
153151

154152
const createdAt = formatUnixTimestamp(deal.createdAt)
155-
const rentingPeriodAt =
156-
deal.minRentingPeriodEndAt === null
157-
? null
158-
: formatUnixTimestamp(deal.minRentingPeriodEndAt)
159153

160154
return (
161155
<RowBlock>
@@ -169,16 +163,6 @@ const DealRow: React.FC<DealRowProps> = ({ deal }) => {
169163
<Text size={12}>{createdAt.date}</Text>
170164
<Text size={12}>{createdAt.time}</Text>
171165
</Cell>
172-
<Cell flexDirection="column" alignItems="flex-start">
173-
{rentingPeriodAt ? (
174-
<>
175-
<Text size={12}>{rentingPeriodAt.date}</Text>
176-
<Text size={12}>{rentingPeriodAt.time}</Text>
177-
</>
178-
) : (
179-
'-'
180-
)}
181-
</Cell>
182166
<Cell
183167
onMouseOver={() => setCopyshown(true)}
184168
onMouseLeave={() => setCopyshown(false)}

yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1439,9 +1439,9 @@ __metadata:
14391439
languageName: node
14401440
linkType: hard
14411441

1442-
"@fluencelabs/deal-ts-clients@npm:0.24.0":
1443-
version: 0.24.0
1444-
resolution: "@fluencelabs/deal-ts-clients@npm:0.24.0"
1442+
"@fluencelabs/deal-ts-clients@npm:0.24.1":
1443+
version: 0.24.1
1444+
resolution: "@fluencelabs/deal-ts-clients@npm:0.24.1"
14451445
dependencies:
14461446
"@graphql-typed-document-node/core": "npm:^3.2.0"
14471447
debug: "npm:^4.3.4"
@@ -1453,7 +1453,7 @@ __metadata:
14531453
graphql-tag: "npm:^2.12.6"
14541454
ipfs-http-client: "npm:^60.0.1"
14551455
multiformats: "npm:^13.0.1"
1456-
checksum: 10c0/910cadcffff89f5aba2e98d55b3c8541bb59e93365f905cfcf0e1e07ff611f4fb359fa3b75501780b53cf3b5628eaa63d01165c710cf2073e738e1ac4354cd97
1456+
checksum: 10c0/ca40d8bbc5ad31051545c4e2d6aef2ba746dfc6b7deaa43826f8980508b2ddc1c97f9e888b828ab3b0655af4c7c7aa7f0ada50a9901c4e8a3a917a750f516633
14571457
languageName: node
14581458
linkType: hard
14591459

@@ -8144,7 +8144,7 @@ __metadata:
81448144
"@emotion/babel-plugin": "npm:^11.11.0"
81458145
"@emotion/react": "npm:^11.11.1"
81468146
"@emotion/styled": "npm:^11.11.0"
8147-
"@fluencelabs/deal-ts-clients": "npm:0.24.0"
8147+
"@fluencelabs/deal-ts-clients": "npm:0.24.1"
81488148
"@graphql-codegen/cli": "npm:^5.0.3"
81498149
"@graphql-codegen/typescript": "npm:^4.1.0"
81508150
"@graphql-codegen/typescript-graphql-request": "npm:^6.2.0"

0 commit comments

Comments
 (0)