1
- import { Tab , TabGroup , TabList , TabPanel , TabPanels } from "@headlessui/react" ;
2
1
import { type ComponentProps , useMemo } from "react" ;
2
+ import { Tabs , TabList , Tab , TabPanel } from "react-aria-components" ;
3
3
4
4
import { AccountSummary } from "../AccountSummary" ;
5
5
import { Governance } from "../Governance" ;
@@ -117,54 +117,55 @@ export const Dashboard = ({
117
117
availableRewards = { availableRewards }
118
118
expiringRewards = { expiringRewards }
119
119
/>
120
- < TabGroup as = "section" >
121
- < TabList className = "flex w-full flex-row text-sm font-medium sm:text-base" >
122
- < DashboardTab > Overview</ DashboardTab >
123
- < DashboardTab > Governance</ DashboardTab >
124
- < DashboardTab >
120
+ < Tabs >
121
+ < TabList
122
+ className = "mb-8 flex w-full flex-row text-sm font-medium sm:text-base"
123
+ aria-label = "Programs"
124
+ >
125
+ < DashboardTab id = { TabIds . Overview } > Overview</ DashboardTab >
126
+ < DashboardTab id = { TabIds . Governance } > Governance</ DashboardTab >
127
+ < DashboardTab id = { TabIds . IntegrityStaking } >
125
128
< span className = "sm:hidden" > Integrity Staking</ span >
126
129
< span className = "hidden sm:inline" >
127
130
Oracle Integrity Staking (OIS)
128
131
</ span >
129
132
</ DashboardTab >
130
133
</ TabList >
131
- < TabPanels className = "mt-8" >
132
- < DashboardTabPanel >
133
- < section className = "py-20" >
134
- < p className = "text-center" >
135
- This is an overview of the staking programs
136
- </ p >
137
- </ section >
138
- </ DashboardTabPanel >
139
- < DashboardTabPanel >
140
- < Governance
141
- availableToStake = { availableToStakeGovernance }
142
- warmup = { governance . warmup }
143
- staked = { governance . staked }
144
- cooldown = { governance . cooldown }
145
- cooldown2 = { governance . cooldown2 }
146
- />
147
- </ DashboardTabPanel >
148
- < DashboardTabPanel >
149
- < OracleIntegrityStaking
150
- availableToStake = { availableToStakeIntegrity }
151
- locked = { locked }
152
- warmup = { integrityStakingWarmup }
153
- staked = { integrityStakingStaked }
154
- cooldown = { integrityStakingCooldown }
155
- cooldown2 = { integrityStakingCooldown2 }
156
- publishers = { integrityStakingPublishers }
157
- />
158
- </ DashboardTabPanel >
159
- </ TabPanels >
160
- </ TabGroup >
134
+ < DashboardTabPanel id = { TabIds . Overview } >
135
+ < section className = "py-20" >
136
+ < p className = "text-center" >
137
+ This is an overview of the staking programs
138
+ </ p >
139
+ </ section >
140
+ </ DashboardTabPanel >
141
+ < DashboardTabPanel id = { TabIds . Governance } >
142
+ < Governance
143
+ availableToStake = { availableToStakeGovernance }
144
+ warmup = { governance . warmup }
145
+ staked = { governance . staked }
146
+ cooldown = { governance . cooldown }
147
+ cooldown2 = { governance . cooldown2 }
148
+ />
149
+ </ DashboardTabPanel >
150
+ < DashboardTabPanel id = { TabIds . IntegrityStaking } >
151
+ < OracleIntegrityStaking
152
+ availableToStake = { availableToStakeIntegrity }
153
+ locked = { locked }
154
+ warmup = { integrityStakingWarmup }
155
+ staked = { integrityStakingStaked }
156
+ cooldown = { integrityStakingCooldown }
157
+ cooldown2 = { integrityStakingCooldown2 }
158
+ publishers = { integrityStakingPublishers }
159
+ />
160
+ </ DashboardTabPanel >
161
+ </ Tabs >
161
162
</ div >
162
163
) ;
163
164
} ;
164
165
165
166
const DashboardTab = Styled (
166
167
Tab ,
167
- "grow basis-0 border-b border-neutral-600/50 px-4 py-2 focus-visible:outline-none data-[ selected] :cursor-default data-[ selected] :border-pythpurple-400 data-[ selected]:data-[ hover] :bg-transparent data-[ hover] :text-pythpurple-400 data-[ selected] :text-pythpurple-400 data-[ focus] :outline-none data-[ focus] :ring-1 data-[ focus] :ring-pythpurple-400" ,
168
+ "grow basis-0 border-b border-neutral-600/50 px-4 py-2 focus-visible:outline-none selected:cursor-default selected:border-pythpurple-400 selected: hover:bg-transparent hover:text-pythpurple-400 selected:text-pythpurple-400 focus:outline-none focus-visible :ring-1 focus-visible :ring-pythpurple-400 cursor-pointer text-center " ,
168
169
) ;
169
170
170
171
const DashboardTabPanel = Styled (
@@ -187,3 +188,9 @@ const useIntegrityStakingSum = (
187
188
188
189
// eslint-disable-next-line unicorn/no-array-reduce
189
190
const bigIntMin = ( ...args : bigint [ ] ) => args . reduce ( ( m , e ) => ( e < m ? e : m ) ) ;
191
+
192
+ enum TabIds {
193
+ Overview ,
194
+ Governance ,
195
+ IntegrityStaking ,
196
+ }
0 commit comments