Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import { useState } from 'react';
import Identicon from '@polkadot/react-identicon';
import 'primereact/resources/themes/md-dark-indigo/theme.css'
import 'primereact/resources/primereact.min.css'
import { Dropdown } from 'primereact/dropdown'
import styles from '@/styles/Home.module.css'
export default function AccountSelector( { accounts, onSelectAccount } ) {
//state for selected account
const [selectedAccount, setSelectedAccount] = useState(null);
const accountOptionTemplate = (option, props) => {
if ( option ) {
return (
<div className={ styles.accountOption }>
<div>
<Identicon
value={option?.address}
size={32}
theme='polkadot'
/>
{option?.meta.name }
</div>
</div>
);
}
return <span>{props.placeholder}</span>;
};
return (
<Dropdown
options={ accounts }
optionLabel="address"
placeholder="Select Account"
className={ styles.dropdown }
value={ selectedAccount }
itemTemplate={ accountOptionTemplate }
valueTemplate={ accountOptionTemplate }
onChange={(event) => {
console.log(event)
setSelectedAccount(event.target.value)
onSelectAccount(event.target.value.address)
}}
/>
)
// return (
// <>
// <label for="select-polkadot-account">
// Select the account you want to use
// </label>
// <select
// id="select-polkadot-account"
// className="p-3 m-3 border-2 border-green-500"
// onChange={(event) => {
// console.log(event);
// onSelectAccount(event.target.value);
// }}
// >
// {accounts.map((a) => (
// <option key={a.address} value={a.address}>
// {a.address} [{a.meta.name}]
// </option>
// ))}
// </select>
// </>
// )
}