Skip to content

Commit 99b7c96

Browse files
authored
feat: display more fields on deal detail page (#120)
1 parent 21f7cf2 commit 99b7c96

File tree

6 files changed

+123
-11
lines changed

6 files changed

+123
-11
lines changed

gql/resolver.go

+32-1
Original file line numberDiff line numberDiff line change
@@ -274,10 +274,39 @@ func (dr *dealResolver) ProviderAddress() string {
274274
return dr.ProviderDealState.ClientDealProposal.Proposal.Provider.String()
275275
}
276276

277+
func (dr *dealResolver) ClientPeerID() string {
278+
return dr.ProviderDealState.ClientPeerID.String()
279+
}
280+
281+
func (dr *dealResolver) DealDataRoot() string {
282+
return dr.ProviderDealState.DealDataRoot.String()
283+
}
284+
285+
func (dr *dealResolver) PublishCid() string {
286+
if dr.ProviderDealState.PublishCID == nil {
287+
return ""
288+
}
289+
return dr.ProviderDealState.PublishCID.String()
290+
}
291+
277292
func (dr *dealResolver) PieceSize() float64 {
278293
return float64(dr.ProviderDealState.ClientDealProposal.Proposal.PieceSize)
279294
}
280295

296+
type dealTransfer struct {
297+
Type string
298+
Size float64
299+
Params string
300+
}
301+
302+
func (dr *dealResolver) Transfer() dealTransfer {
303+
return dealTransfer{
304+
Type: dr.ProviderDealState.Transfer.Type,
305+
Size: float64(dr.ProviderDealState.Transfer.Size),
306+
Params: "TODO",
307+
}
308+
}
309+
281310
func (dr *dealResolver) ProviderCollateral() float64 {
282311
return float64(dr.ProviderDealState.ClientDealProposal.Proposal.ProviderCollateral.Int64())
283312
}
@@ -303,11 +332,13 @@ func (dr *dealResolver) Message() string {
303332
case 100:
304333
return "Transfer Complete"
305334
default:
306-
pct := (100 * dr.transferred) / uint64(dr.ClientDealProposal.Proposal.PieceSize)
335+
pct := (100 * dr.transferred) / dr.ProviderDealState.Transfer.Size
307336
return fmt.Sprintf("Transferring %d%%", pct)
308337
}
309338
case dealcheckpoints.Transferred:
310339
return "Publishing"
340+
case dealcheckpoints.PublishConfirmed:
341+
return "Adding to Sector"
311342
case dealcheckpoints.AddedPiece:
312343
return "Sealing"
313344
case dealcheckpoints.Complete:

gql/schema.graphql

+10
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ The `Time` scalar type represents a DateTime. The DateTime is serialized as an R
99
"""
1010
scalar Time
1111

12+
type TransferParams {
13+
Type: String!
14+
Size: Float!
15+
Params: String!
16+
}
17+
1218
type Deal {
1319
ID: ID!
1420
ClientAddress: String!
@@ -19,6 +25,10 @@ type Deal {
1925
ProviderCollateral: Float!
2026
StartEpoch: Float!
2127
EndEpoch: Float!
28+
ClientPeerID: String!
29+
DealDataRoot: String!
30+
PublishCid: String!
31+
Transfer: TransferParams!
2232
Message: String!
2333
Logs: [DealLog]!
2434
}

react/src/DealDetail.js

+38-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {useMutation, useSubscription} from "./hooks";
33
import {DealCancelMutation, DealSubscription} from "./gql";
44
import {dateFormat} from "./util-date";
55
import moment from "moment";
6+
import {humanFIL} from "./util";
67

78
export function DealDetail(props) {
89
// Add a class to the document body when showing the deal detail page
@@ -52,16 +53,48 @@ export function DealDetail(props) {
5253
<td>{moment(deal.CreatedAt).format(dateFormat)}</td>
5354
</tr>
5455
<tr>
55-
<td>Client</td>
56+
<td>Client Address</td>
5657
<td>{deal.ClientAddress}</td>
5758
</tr>
5859
<tr>
59-
<td>Amount</td>
60-
<td>{'0.2 FIL'}</td>
60+
<td>Client Peer ID</td>
61+
<td>{deal.ClientPeerID}</td>
6162
</tr>
6263
<tr>
63-
<td>Size</td>
64-
<td>{deal.PieceSize}</td>
64+
<td>Deal Data Root CID</td>
65+
<td>{deal.DealDataRoot}</td>
66+
</tr>
67+
<tr>
68+
<td>Piece CID</td>
69+
<td>{deal.PieceCid}</td>
70+
</tr>
71+
<tr>
72+
<td>Piece Size</td>
73+
<td>{deal.PieceSize.toLocaleString()}</td>
74+
</tr>
75+
<tr>
76+
<td>Provider Collateral</td>
77+
<td>{humanFIL(deal.ProviderCollateral)}</td>
78+
</tr>
79+
<tr>
80+
<td>Start Epoch</td>
81+
<td>{deal.StartEpoch}</td>
82+
</tr>
83+
<tr>
84+
<td>End Epoch</td>
85+
<td>{deal.EndEpoch}</td>
86+
</tr>
87+
<tr>
88+
<td>Transfer Type</td>
89+
<td>{deal.Transfer.Type}</td>
90+
</tr>
91+
<tr>
92+
<td>Transfer Size</td>
93+
<td>{deal.Transfer.Size.toLocaleString()}</td>
94+
</tr>
95+
<tr>
96+
<td>Publish Message CID</td>
97+
<td>{deal.PublishCid}</td>
6598
</tr>
6699
<tr>
67100
<td>State</td>

react/src/Deals.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ function DealRow(props) {
195195
<td className="deal-id" onClick={() => props.onDealRowClick(deal.ID)}>
196196
<ShortDealID id={deal.ID} />
197197
</td>
198-
<td className="piece-size">{humanFileSize(deal.PieceSize, false, 0)}</td>
198+
<td className="size">{humanFileSize(deal.Transfer.Size, false, 0)}</td>
199199
<td className="client">
200200
<ShortClientAddress address={deal.ClientAddress} />
201201
</td>

react/src/gql.js

+33
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,18 @@ const DealsListQuery = gql`
6464
PieceCid
6565
PieceSize
6666
ClientAddress
67+
StartEpoch
68+
EndEpoch
69+
ProviderCollateral
70+
ClientPeerID
71+
DealDataRoot
72+
PublishCid
6773
Message
74+
Transfer {
75+
Type
76+
Size
77+
Params
78+
}
6879
Logs {
6980
CreatedAt
7081
Text
@@ -84,7 +95,18 @@ const DealSubscription = gql`
8495
PieceCid
8596
PieceSize
8697
ClientAddress
98+
StartEpoch
99+
EndEpoch
100+
ProviderCollateral
101+
ClientPeerID
102+
DealDataRoot
103+
PublishCid
87104
Message
105+
Transfer {
106+
Type
107+
Size
108+
Params
109+
}
88110
Logs {
89111
CreatedAt
90112
Text
@@ -107,7 +129,18 @@ const NewDealsSubscription = gql`
107129
PieceCid
108130
PieceSize
109131
ClientAddress
132+
StartEpoch
133+
EndEpoch
134+
ProviderCollateral
135+
ClientPeerID
136+
DealDataRoot
137+
PublishCid
110138
Message
139+
Transfer {
140+
Type
141+
Size
142+
Params
143+
}
111144
Logs {
112145
CreatedAt
113146
Text

react/src/index.css

+9-4
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ body.modal-open {
107107
width: 3em;
108108
}
109109

110-
.deals td.piece-size {
111-
width: 6em;
110+
.deals td.size {
111+
width: 5em;
112112
white-space: nowrap;
113113
}
114114

@@ -164,11 +164,16 @@ body.modal-open {
164164
}
165165

166166
#deal-detail table.deal-fields {
167-
display: inline-block;
168-
width: auto;
169167
margin-bottom: 1em;
170168
}
171169

170+
#deal-detail table.deal-fields tr td:first-child {
171+
width: 8em;
172+
}
173+
#deal-detail table.deal-fields tr td:last-child {
174+
line-break: anywhere;
175+
}
176+
172177
#deal-detail td {
173178
padding: 0.5em 1em;
174179
}

0 commit comments

Comments
 (0)