@xyo-network/react-wallet 2.23.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +165 -0
- package/README.md +69 -0
- package/babel.config.json +5 -0
- package/dist/cjs/components/WalletAccountDetails/WalletAccountDetails.d.ts +8 -0
- package/dist/cjs/components/WalletAccountDetails/WalletAccountDetails.js +20 -0
- package/dist/cjs/components/WalletAccountDetails/WalletAccountDetails.js.map +1 -0
- package/dist/cjs/components/WalletAccountDetails/index.d.ts +1 -0
- package/dist/cjs/components/WalletAccountDetails/index.js +5 -0
- package/dist/cjs/components/WalletAccountDetails/index.js.map +1 -0
- package/dist/cjs/components/WalletAccountSelect/Select.d.ts +8 -0
- package/dist/cjs/components/WalletAccountSelect/Select.js +28 -0
- package/dist/cjs/components/WalletAccountSelect/Select.js.map +1 -0
- package/dist/cjs/components/WalletAccountSelect/SelectBar.d.ts +6 -0
- package/dist/cjs/components/WalletAccountSelect/SelectBar.js +13 -0
- package/dist/cjs/components/WalletAccountSelect/SelectBar.js.map +1 -0
- package/dist/cjs/components/WalletAccountSelect/index.d.ts +2 -0
- package/dist/cjs/components/WalletAccountSelect/index.js +6 -0
- package/dist/cjs/components/WalletAccountSelect/index.js.map +1 -0
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/index.js +6 -0
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/cjs/contexts/Account/Context.d.ts +3 -0
- package/dist/cjs/contexts/Account/Context.js +6 -0
- package/dist/cjs/contexts/Account/Context.js.map +1 -0
- package/dist/cjs/contexts/Account/MemoryProvider.d.ts +7 -0
- package/dist/cjs/contexts/Account/MemoryProvider.js +14 -0
- package/dist/cjs/contexts/Account/MemoryProvider.js.map +1 -0
- package/dist/cjs/contexts/Account/State.d.ts +7 -0
- package/dist/cjs/contexts/Account/State.js +3 -0
- package/dist/cjs/contexts/Account/State.js.map +1 -0
- package/dist/cjs/contexts/Account/index.d.ts +4 -0
- package/dist/cjs/contexts/Account/index.js +8 -0
- package/dist/cjs/contexts/Account/index.js.map +1 -0
- package/dist/cjs/contexts/Account/use.d.ts +1 -0
- package/dist/cjs/contexts/Account/use.js +10 -0
- package/dist/cjs/contexts/Account/use.js.map +1 -0
- package/dist/cjs/contexts/Wallet/Context.d.ts +3 -0
- package/dist/cjs/contexts/Wallet/Context.js +6 -0
- package/dist/cjs/contexts/Wallet/Context.js.map +1 -0
- package/dist/cjs/contexts/Wallet/Provider.d.ts +8 -0
- package/dist/cjs/contexts/Wallet/Provider.js +27 -0
- package/dist/cjs/contexts/Wallet/Provider.js.map +1 -0
- package/dist/cjs/contexts/Wallet/State.d.ts +9 -0
- package/dist/cjs/contexts/Wallet/State.js +3 -0
- package/dist/cjs/contexts/Wallet/State.js.map +1 -0
- package/dist/cjs/contexts/Wallet/index.d.ts +4 -0
- package/dist/cjs/contexts/Wallet/index.js +8 -0
- package/dist/cjs/contexts/Wallet/index.js.map +1 -0
- package/dist/cjs/contexts/Wallet/use.d.ts +1 -0
- package/dist/cjs/contexts/Wallet/use.js +10 -0
- package/dist/cjs/contexts/Wallet/use.js.map +1 -0
- package/dist/cjs/contexts/index.d.ts +2 -0
- package/dist/cjs/contexts/index.js +6 -0
- package/dist/cjs/contexts/index.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/docs.json +61808 -0
- package/dist/esm/components/WalletAccountDetails/WalletAccountDetails.d.ts +8 -0
- package/dist/esm/components/WalletAccountDetails/WalletAccountDetails.js +13 -0
- package/dist/esm/components/WalletAccountDetails/WalletAccountDetails.js.map +1 -0
- package/dist/esm/components/WalletAccountDetails/index.d.ts +1 -0
- package/dist/esm/components/WalletAccountDetails/index.js +2 -0
- package/dist/esm/components/WalletAccountDetails/index.js.map +1 -0
- package/dist/esm/components/WalletAccountSelect/Select.d.ts +8 -0
- package/dist/esm/components/WalletAccountSelect/Select.js +22 -0
- package/dist/esm/components/WalletAccountSelect/Select.js.map +1 -0
- package/dist/esm/components/WalletAccountSelect/SelectBar.d.ts +6 -0
- package/dist/esm/components/WalletAccountSelect/SelectBar.js +7 -0
- package/dist/esm/components/WalletAccountSelect/SelectBar.js.map +1 -0
- package/dist/esm/components/WalletAccountSelect/index.d.ts +2 -0
- package/dist/esm/components/WalletAccountSelect/index.js +3 -0
- package/dist/esm/components/WalletAccountSelect/index.js.map +1 -0
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/index.js +3 -0
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/contexts/Account/Context.d.ts +3 -0
- package/dist/esm/contexts/Account/Context.js +3 -0
- package/dist/esm/contexts/Account/Context.js.map +1 -0
- package/dist/esm/contexts/Account/MemoryProvider.d.ts +7 -0
- package/dist/esm/contexts/Account/MemoryProvider.js +8 -0
- package/dist/esm/contexts/Account/MemoryProvider.js.map +1 -0
- package/dist/esm/contexts/Account/State.d.ts +7 -0
- package/dist/esm/contexts/Account/State.js +2 -0
- package/dist/esm/contexts/Account/State.js.map +1 -0
- package/dist/esm/contexts/Account/index.d.ts +4 -0
- package/dist/esm/contexts/Account/index.js +5 -0
- package/dist/esm/contexts/Account/index.js.map +1 -0
- package/dist/esm/contexts/Account/use.d.ts +1 -0
- package/dist/esm/contexts/Account/use.js +6 -0
- package/dist/esm/contexts/Account/use.js.map +1 -0
- package/dist/esm/contexts/Wallet/Context.d.ts +3 -0
- package/dist/esm/contexts/Wallet/Context.js +3 -0
- package/dist/esm/contexts/Wallet/Context.js.map +1 -0
- package/dist/esm/contexts/Wallet/Provider.d.ts +8 -0
- package/dist/esm/contexts/Wallet/Provider.js +21 -0
- package/dist/esm/contexts/Wallet/Provider.js.map +1 -0
- package/dist/esm/contexts/Wallet/State.d.ts +9 -0
- package/dist/esm/contexts/Wallet/State.js +2 -0
- package/dist/esm/contexts/Wallet/State.js.map +1 -0
- package/dist/esm/contexts/Wallet/index.d.ts +4 -0
- package/dist/esm/contexts/Wallet/index.js +5 -0
- package/dist/esm/contexts/Wallet/index.js.map +1 -0
- package/dist/esm/contexts/Wallet/use.d.ts +1 -0
- package/dist/esm/contexts/Wallet/use.js +6 -0
- package/dist/esm/contexts/Wallet/use.js.map +1 -0
- package/dist/esm/contexts/index.d.ts +2 -0
- package/dist/esm/contexts/index.js +3 -0
- package/dist/esm/contexts/index.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/package.json +137 -0
- package/src/components/WalletAccountDetails/WalletAccountDetails.stories.tsx +31 -0
- package/src/components/WalletAccountDetails/WalletAccountDetails.tsx +30 -0
- package/src/components/WalletAccountDetails/WalletAccountDetailsWithProvider.stories.tsx +35 -0
- package/src/components/WalletAccountDetails/index.ts +1 -0
- package/src/components/WalletAccountSelect/Select.tsx +47 -0
- package/src/components/WalletAccountSelect/SelectBar.tsx +15 -0
- package/src/components/WalletAccountSelect/index.ts +2 -0
- package/src/components/index.ts +2 -0
- package/src/contexts/Account/Context.ts +5 -0
- package/src/contexts/Account/MemoryProvider.tsx +15 -0
- package/src/contexts/Account/State.ts +8 -0
- package/src/contexts/Account/index.ts +4 -0
- package/src/contexts/Account/use.ts +7 -0
- package/src/contexts/Wallet/Context.ts +5 -0
- package/src/contexts/Wallet/Provider.tsx +38 -0
- package/src/contexts/Wallet/State.ts +10 -0
- package/src/contexts/Wallet/index.ts +4 -0
- package/src/contexts/Wallet/use.ts +7 -0
- package/src/contexts/index.ts +2 -0
- package/src/index.ts +2 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { MenuItem, SelectProps, useTheme } from '@mui/material'
|
|
2
|
+
import { EthAddress } from '@xylabs/sdk-js'
|
|
3
|
+
import { EthAccountBox, SelectEx } from '@xylabs/sdk-react'
|
|
4
|
+
|
|
5
|
+
import { useWallet } from '../../contexts'
|
|
6
|
+
|
|
7
|
+
export interface WalletAccountSelectProps extends SelectProps<number> {
|
|
8
|
+
iconOnly?: boolean
|
|
9
|
+
icons?: boolean
|
|
10
|
+
iconSize?: number
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const arrayRange = (length: number, start = 0) => {
|
|
14
|
+
return Array.from(Array(length).keys()).map((x) => x + start)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const WalletAccountSelect: React.FC<WalletAccountSelectProps> = ({ size, iconSize, icons, iconOnly, ...props }) => {
|
|
18
|
+
const { wallet, activeAccountIndex = 0, setActiveAccountIndex } = useWallet()
|
|
19
|
+
|
|
20
|
+
const theme = useTheme()
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<SelectEx
|
|
24
|
+
SelectDisplayProps={{ style: { paddingBottom: 0, paddingLeft: icons ? 0 : theme.spacing(1), paddingTop: 0 } }}
|
|
25
|
+
renderValue={(selected) => {
|
|
26
|
+
const account = wallet?.getAccount(parseInt(`${selected}`))
|
|
27
|
+
return <EthAccountBox height={size === 'small' ? 40 : 56} iconOnly={iconOnly} icon={icons} address={EthAddress.fromString(account?.addressValue.hex)} />
|
|
28
|
+
}}
|
|
29
|
+
value={activeAccountIndex}
|
|
30
|
+
onChange={(event) => setActiveAccountIndex?.(parseInt(`${event.target.value}`))}
|
|
31
|
+
size={size}
|
|
32
|
+
variant="outlined"
|
|
33
|
+
{...props}
|
|
34
|
+
>
|
|
35
|
+
{wallet
|
|
36
|
+
? arrayRange(10).map((index) => {
|
|
37
|
+
const account = wallet?.getAccount(index)
|
|
38
|
+
return (
|
|
39
|
+
<MenuItem key={index} value={index}>
|
|
40
|
+
<EthAccountBox iconSize={iconSize} icon={icons} address={EthAddress.fromString(account.addressValue.hex)} />
|
|
41
|
+
</MenuItem>
|
|
42
|
+
)
|
|
43
|
+
})
|
|
44
|
+
: null}
|
|
45
|
+
</SelectEx>
|
|
46
|
+
)
|
|
47
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FlexBoxProps, FlexRow } from '@xylabs/sdk-react'
|
|
2
|
+
|
|
3
|
+
import { WalletAccountSelect } from './Select'
|
|
4
|
+
|
|
5
|
+
export interface WalletAccountSelectBarProps extends FlexBoxProps {
|
|
6
|
+
size?: 'small' | 'medium'
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const WalletAccountSelectBar: React.FC<WalletAccountSelectBarProps> = ({ size = 'small', ...props }) => {
|
|
10
|
+
return (
|
|
11
|
+
<FlexRow paper alignItems="stretch" {...props}>
|
|
12
|
+
<WalletAccountSelect size={size} fullWidth />
|
|
13
|
+
</FlexRow>
|
|
14
|
+
)
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { WithChildren } from '@xylabs/sdk-react'
|
|
2
|
+
import { XyoAccount } from '@xyo-network/core'
|
|
3
|
+
import { useState } from 'react'
|
|
4
|
+
|
|
5
|
+
import { AccountContext } from './Context'
|
|
6
|
+
|
|
7
|
+
export interface AccountMemoryProviderProps {
|
|
8
|
+
defaultAccount?: XyoAccount
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const AccountMemoryProvider: React.FC<WithChildren<AccountMemoryProviderProps>> = ({ defaultAccount, ...props }) => {
|
|
12
|
+
const [account, setAccount] = useState<XyoAccount | undefined>(defaultAccount)
|
|
13
|
+
|
|
14
|
+
return <AccountContext.Provider value={{ account: account, provided: true, setAccount }} {...props} />
|
|
15
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { XyoAccount } from '@xyo-network/core'
|
|
2
|
+
import { ContextExState } from '@xyo-network/react-shared'
|
|
3
|
+
import { Dispatch } from 'react'
|
|
4
|
+
|
|
5
|
+
export interface AccountContextState extends ContextExState {
|
|
6
|
+
account?: XyoAccount
|
|
7
|
+
setAccount?: Dispatch<XyoAccount>
|
|
8
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { WithChildren } from '@xylabs/sdk-react'
|
|
2
|
+
import { XyoWalletBase } from '@xyo-network/core'
|
|
3
|
+
import { useState } from 'react'
|
|
4
|
+
|
|
5
|
+
import { AccountContext } from '../Account'
|
|
6
|
+
import { WalletContext } from './Context'
|
|
7
|
+
import { useWallet } from './use'
|
|
8
|
+
|
|
9
|
+
export interface WalletProviderProps {
|
|
10
|
+
defaultWallet?: XyoWalletBase
|
|
11
|
+
defaultActiveAccountIndex?: number
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const AccountWalletProvider: React.FC<WithChildren> = (props) => {
|
|
15
|
+
const { wallet, activeAccountIndex = 0 } = useWallet()
|
|
16
|
+
|
|
17
|
+
return <AccountContext.Provider value={{ account: wallet?.getAccount(activeAccountIndex), provided: true }} {...props} />
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const WalletProvider: React.FC<WithChildren<WalletProviderProps>> = ({ defaultWallet, defaultActiveAccountIndex = 0, children, ...props }) => {
|
|
21
|
+
const [wallet, setWallet] = useState<XyoWalletBase | undefined>(defaultWallet)
|
|
22
|
+
const [activeAccountIndex, setActiveAccountIndex] = useState(defaultActiveAccountIndex)
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<WalletContext.Provider
|
|
26
|
+
value={{
|
|
27
|
+
activeAccountIndex,
|
|
28
|
+
provided: true,
|
|
29
|
+
setActiveAccountIndex,
|
|
30
|
+
setWallet,
|
|
31
|
+
wallet,
|
|
32
|
+
}}
|
|
33
|
+
{...props}
|
|
34
|
+
>
|
|
35
|
+
<AccountWalletProvider>{children}</AccountWalletProvider>
|
|
36
|
+
</WalletContext.Provider>
|
|
37
|
+
)
|
|
38
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { XyoWalletBase } from '@xyo-network/core'
|
|
2
|
+
import { ContextExState } from '@xyo-network/react-shared'
|
|
3
|
+
import { Dispatch } from 'react'
|
|
4
|
+
|
|
5
|
+
export interface WalletContextState extends ContextExState {
|
|
6
|
+
wallet?: XyoWalletBase
|
|
7
|
+
setWallet?: Dispatch<XyoWalletBase>
|
|
8
|
+
activeAccountIndex?: number
|
|
9
|
+
setActiveAccountIndex?: Dispatch<number>
|
|
10
|
+
}
|
package/src/index.ts
ADDED