diff --git a/.storybook/test-data.js b/.storybook/test-data.js
index 376182e34..80608dadc 100644
--- a/.storybook/test-data.js
+++ b/.storybook/test-data.js
@@ -37,6 +37,21 @@ const state = {
swapsFeatureIsLive: false,
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,
isUnlocked: true,
isAccountMenuOpen: false,
diff --git a/ui/pages/create-account/connect-hardware/account-list.stories.js b/ui/pages/create-account/connect-hardware/account-list.stories.js
new file mode 100644
index 000000000..4efa39166
--- /dev/null
+++ b/ui/pages/create-account/connect-hardware/account-list.stories.js
@@ -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) => {story()}],
+};
+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 (
+ 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')()}
+ />
+ );
+};