1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-22 09:57:02 +01:00

Add account-list component to Storybook (#12228)

This commit is contained in:
Etienne Dusseault 2021-09-29 15:42:49 -03:00 committed by GitHub
parent b5103bf317
commit c2bbbdd19c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 83 additions and 0 deletions

View File

@ -37,6 +37,21 @@ const state = {
swapsFeatureIsLive: false, swapsFeatureIsLive: false,
swapsQuoteRefreshTime: 60000, swapsQuoteRefreshTime: 60000,
}, },
accountArray: [
{
name: 'This is a Really Long Account Name',
address: '0x64a845a5b02460acf8a3d84503b0d68d028b4bb4',
index: 0,
balance: '0x176e5b6f173ebe66',
},
{
name: 'Account 2',
address: '0xb19ac54efa18cc3a14a5b821bfec73d284bf0c5e',
index: 1,
balance: '0x2d3142f5000',
},
],
connectedAccounts: ['0x64a845a5b02460acf8a3d84503b0d68d028b4bb4'],
isInitialized: true, isInitialized: true,
isUnlocked: true, isUnlocked: true,
isAccountMenuOpen: false, isAccountMenuOpen: false,

View File

@ -0,0 +1,68 @@
import React, { useState } from 'react';
import { Provider } from 'react-redux';
import { action } from '@storybook/addon-actions';
import configureStore from '../../../store/store';
import testData from '../../../../.storybook/test-data';
import AccountList from './account-list';
const store = configureStore(testData);
export default {
title: 'Account List',
id: __filename,
decorators: [(story) => <Provider store={store}>{story()}</Provider>],
};
global.platform = {
openTab: () => action('Open Tab')(),
};
export const AccountListComponent = () => {
const [selectedAccounts, setSelectedAccounts] = useState([
{
name: 'This is a Really Long Account Name',
address: '0x64a845a5b02460acf8a3d84503b0d68d028b4bb4',
index: 0,
balance: '0x176e5b6f173ebe66',
},
]);
const { metamask } = store.getState();
const { accountArray, connectedAccounts } = metamask;
const LEDGER_LIVE_PATH = `m/44'/60'/0'/0/0`;
const MEW_PATH = `m/44'/60'/0'`;
const BIP44_PATH = `m/44'/60'/0'/0`;
const HD_PATHS = [
{ name: 'Ledger Live', value: LEDGER_LIVE_PATH },
{ name: 'Legacy (MEW / MyCrypto)', value: MEW_PATH },
{ name: `BIP44 Standard (e.g. MetaMask, Trezor)`, value: BIP44_PATH },
];
const onAccountChange = (account) => {
let accounts = [];
if (selectedAccounts.includes(account)) {
accounts = selectedAccounts.filter((acc) => account !== acc);
} else {
accounts.push(account);
}
setSelectedAccounts(accounts);
};
return (
<AccountList
onPathChange={() => undefined}
selectedPath="/"
device="null"
accounts={accountArray}
connectedAccounts={connectedAccounts}
onAccountChange={onAccountChange}
onForgetDevice={() => action('On Forget Device')()}
getPage={() => action('Get Page')()}
selectedAccounts={selectedAccounts}
hdPaths={HD_PATHS}
onCancel={() => action('On Cancel')()}
onUnlockAccounts={() => action('On Unlock Accounts')()}
onAccountRestriction={() => action('On Account Restriction')()}
/>
);
};