Skip to content

Commit d55a415

Browse files
committed
feat(neuron-ui): add mainnet/testnet addresses toggle
1 parent 823be88 commit d55a415

3 files changed

Lines changed: 44 additions & 7 deletions

File tree

packages/neuron-ui/src/components/Addresses/index.tsx

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1-
import React, { useEffect, useMemo } from 'react'
1+
import React, { useState, useEffect, useMemo } from 'react'
22
import { RouteComponentProps } from 'react-router-dom'
33
import { useTranslation } from 'react-i18next'
44
import {
5+
Stack,
56
ShimmeredDetailsList,
67
TextField,
78
IColumn,
89
CheckboxVisibility,
10+
DefaultButton,
911
IconButton,
12+
Text,
1013
getTheme,
1114
} from 'office-ui-fabric-react'
1215

1316
import { contextMenu } from 'services/remote'
17+
import { ckbCore } from 'services/chain'
1418
import { StateWithDispatch } from 'states/stateProvider/reducer'
1519

1620
import { useLocalDescription } from 'utils/hooks'
@@ -27,6 +31,7 @@ const Addresses = ({
2731
history,
2832
dispatch,
2933
}: React.PropsWithoutRef<StateWithDispatch & RouteComponentProps>) => {
34+
const [showMainnetAddress, setShowMainnetAddress] = useState(false)
3035
const [t] = useTranslation()
3136
useEffect(() => {
3237
if (!showAddressBook) {
@@ -181,18 +186,44 @@ const Addresses = ({
181186
enableShimmer={isLoading}
182187
checkboxVisibility={CheckboxVisibility.hidden}
183188
columns={addressColumns.map(col => ({ ...col, name: t(col.name) }))}
184-
items={addresses}
189+
items={addresses.map(addr => ({
190+
...addr,
191+
address: showMainnetAddress
192+
? ckbCore.utils.bech32Address(addr.identifier, {
193+
prefix: ckbCore.utils.AddressPrefix.Mainnet,
194+
type: ckbCore.utils.AddressType.HashIdx,
195+
codeHashIndex: '0x00',
196+
}) || ''
197+
: addr.address,
198+
}))}
185199
onItemContextMenu={item => {
186-
contextMenu({ type: 'addressList', id: item.identifier })
200+
if (!showMainnetAddress) {
201+
contextMenu({ type: 'addressList', id: item.identifier })
202+
}
187203
}}
188204
className="listWithDesc"
189205
onRenderRow={onRenderRow}
190206
/>
191207
),
192-
[isLoading, addressColumns, addresses, t]
208+
[isLoading, addressColumns, addresses, showMainnetAddress, t]
193209
)
194210

195-
return List
211+
return (
212+
<>
213+
<Stack verticalAlign="center" horizontalAlign="start" tokens={{ childrenGap: 15 }}>
214+
<DefaultButton
215+
text={t(`addresses.display-${showMainnetAddress ? 'testnet' : 'mainnet'}-addresses`)}
216+
onClick={() => setShowMainnetAddress(!showMainnetAddress)}
217+
/>
218+
{showMainnetAddress ? (
219+
<Text variant="medium" style={{ color: semanticColors.errorText }}>
220+
{t('addresses.mainnet-address-caution')}
221+
</Text>
222+
) : null}
223+
</Stack>
224+
{List}
225+
</>
226+
)
196227
}
197228

198229
Addresses.displayName = 'Addresses'

packages/neuron-ui/src/locales/en.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,10 @@
150150
"balance": "Balance",
151151
"transactions": "Transactions",
152152
"receiving-address": "Receiving Address",
153-
"change-address": "Change Address"
153+
"change-address": "Change Address",
154+
"display-testnet-addresses": "Display Testnet Addresses",
155+
"display-mainnet-addresses": "Display Mainnet Addresses",
156+
"mainnet-address-caution": "CAUTION: these are the MAINNET addresses"
154157
},
155158
"settings": {
156159
"go-to-overview": "Go to Overview",

packages/neuron-ui/src/locales/zh.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,10 @@
150150
"balance": "余额",
151151
"transactions": "交易总数",
152152
"receiving-address": "收款地址",
153-
"change-address": "找零地址"
153+
"change-address": "找零地址",
154+
"display-testnet-addresses": "显示测试网地址",
155+
"display-mainnet-addresses": "显示主网地址",
156+
"mainnet-address-caution": "请注意, 当前显示的是主网地址"
154157
},
155158
"settings": {
156159
"go-to-overview": "返回总览画面",

0 commit comments

Comments
 (0)