Skip to content
This repository was archived by the owner on Sep 8, 2025. It is now read-only.

Commit 0aaecdf

Browse files
author
Jony Bursztyn
authored
feat: implements new activity card (#1426)
* fix: Implements new activity card
1 parent 9904136 commit 0aaecdf

File tree

4 files changed

+45
-195
lines changed

4 files changed

+45
-195
lines changed

package-lock.json

Lines changed: 11 additions & 163 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
"dependencies": {
3232
"@babylonlabs-io/babylon-proto-ts": "1.9.0",
3333
"@babylonlabs-io/btc-staking-ts": "2.5.6",
34-
"@babylonlabs-io/core-ui": "1.21.0",
35-
"@babylonlabs-io/wallet-connector": "1.10.7",
34+
"@babylonlabs-io/core-ui": "1.24.0",
35+
"@babylonlabs-io/wallet-connector": "1.11.1",
3636
"@bitcoin-js/tiny-secp256k1-asmjs": "2.2.3",
3737
"@cosmjs/proto-signing": "^0.33.1",
3838
"@cosmjs/stargate": "^0.33.1",

src/ui/baby/components/ActivityCard/index.tsx

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,7 @@
1-
import { ActivityCard } from "@babylonlabs-io/core-ui";
2-
3-
interface BabyActivityCardData {
4-
icon: string;
5-
formattedAmount: string;
6-
primaryAction?: {
7-
label: string;
8-
variant: "contained" | "outlined";
9-
onClick: () => void;
10-
};
11-
details: Array<{
12-
label: string;
13-
value: React.ReactNode;
14-
}>;
15-
optionalDetails?: Array<{
16-
label: string;
17-
value: React.ReactNode;
18-
}>;
19-
}
1+
import { ActivityCard, type ActivityCardData } from "@babylonlabs-io/core-ui";
202

213
interface BabyActivityCardProps {
22-
activityData: BabyActivityCardData;
4+
activityData: ActivityCardData;
235
}
246

257
export function BabyActivityCard({ activityData }: BabyActivityCardProps) {

src/ui/baby/components/ActivityList/index.tsx

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { formatTimeRemaining } from "@/ui/common/utils/time";
1111

1212
import { BabyActivityCard } from "../ActivityCard";
1313
import { UnbondingModal } from "../UnbondingModal";
14+
import { ValidatorAvatar } from "../ValidatorAvatar";
1415

1516
const { logo, coinSymbol } = getNetworkConfigBBN();
1617

@@ -58,6 +59,16 @@ export function BabyActivityList() {
5859
delegation,
5960
data: {
6061
icon: logo,
62+
iconAlt: `${coinSymbol} Logo`,
63+
chainName: delegation.validator.name || delegation.validator.address,
64+
chainIcon: (
65+
<ValidatorAvatar
66+
size="small"
67+
name={delegation.validator.name || delegation.validator.address}
68+
/>
69+
),
70+
chainIconAlt:
71+
delegation.validator.name || delegation.validator.address,
6172
formattedAmount: `${formattedAmount} ${coinSymbol}`,
6273
primaryAction:
6374
formattedAmount > 0
@@ -67,12 +78,7 @@ export function BabyActivityList() {
6778
onClick: () => openUnbondingModal(delegation),
6879
}
6980
: undefined,
70-
details: [],
71-
optionalDetails: [
72-
{
73-
label: "Validator",
74-
value: delegation.validator.name || delegation.validator.address,
75-
},
81+
details: [
7682
{
7783
label: "Commission",
7884
value: formatCommissionPercentage(
@@ -82,16 +88,30 @@ export function BabyActivityList() {
8288
...(isUnbonding
8389
? [
8490
{
85-
label: "Unbonding",
91+
label: "Pending",
8692
value: delegation.unbondingInfo
87-
? delegation.unbondingInfo.isOptimistic
88-
? `${babylon.utils.ubbnToBaby(delegation.unbondingInfo.amount)} ${coinSymbol} - Processing`
89-
: `${babylon.utils.ubbnToBaby(delegation.unbondingInfo.amount)} ${coinSymbol} in ${formatTimeRemaining(delegation.unbondingInfo.completionTime)}${delegation.unbondingInfo.statusSuffix || ""}`
93+
? `${babylon.utils.ubbnToBaby(delegation.unbondingInfo.amount)} ${coinSymbol}`
9094
: "In progress...",
95+
collapsible: Boolean(delegation.unbondingInfo),
96+
nestedDetails: delegation.unbondingInfo
97+
? [
98+
{
99+
label: "Amount",
100+
value: `${babylon.utils.ubbnToBaby(delegation.unbondingInfo.amount)} ${coinSymbol}`,
101+
},
102+
{
103+
label: "Time Remaining",
104+
value: delegation.unbondingInfo.isOptimistic
105+
? "Processing"
106+
: `${formatTimeRemaining(delegation.unbondingInfo.completionTime)}${delegation.unbondingInfo.statusSuffix || ""}`,
107+
},
108+
]
109+
: [],
91110
},
92111
]
93112
: []),
94113
],
114+
optionalDetails: [],
95115
},
96116
};
97117
});

0 commit comments

Comments
 (0)