mirror of
https://github.com/trezor/trezor-wallet
synced 2025-05-26 02:38:48 +00:00
Device list first part refactoring
This commit is contained in:
parent
42a06eb816
commit
2d9bad285b
@ -0,0 +1,47 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import styled from 'styled-components';
|
||||||
|
import deviceConstants from 'constants/device';
|
||||||
|
|
||||||
|
const Wrapper = styled.div``;
|
||||||
|
|
||||||
|
class DeviceList {
|
||||||
|
getStatus(device) {
|
||||||
|
let deviceStatus = '';
|
||||||
|
if (device.type === 'unacquired' || (device.features && device.status === 'occupied')) {
|
||||||
|
deviceStatus = 'Used in other window';
|
||||||
|
} else if (device.type === 'unreadable') {
|
||||||
|
deviceStatus = 'Connected';
|
||||||
|
} else if (!device.connected) {
|
||||||
|
deviceStatus = 'Disconnected';
|
||||||
|
} else if (!device.available) {
|
||||||
|
deviceStatus = 'Unavailable';
|
||||||
|
}
|
||||||
|
|
||||||
|
return deviceStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<Wrapper>
|
||||||
|
{this.props.devices.map((device, index) => (
|
||||||
|
<div key={index} className={css} onClick={() => this.props.onSelectDevice(device)}>
|
||||||
|
<div className="label-container">
|
||||||
|
<span className="label">{device.instanceLabel}</span>
|
||||||
|
<span className="status">{this.getStatus(device)}</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="forget-button"
|
||||||
|
onClick={(event) => {
|
||||||
|
event.stopPropagation();
|
||||||
|
event.preventDefault();
|
||||||
|
this.onDeviceMenuClick({ type: 'forget', label: '' }, device);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</Wrapper>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default DeviceList;
|
@ -1,14 +1,12 @@
|
|||||||
/* @flow */
|
/* @flow */
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import TrezorConnect from 'trezor-connect';
|
import TrezorConnect from 'trezor-connect';
|
||||||
import styled from 'styled-components';
|
|
||||||
import type { TrezorDevice } from 'flowtype';
|
import type { TrezorDevice } from 'flowtype';
|
||||||
|
|
||||||
import type { Props } from '../common';
|
import type { Props } from '../common';
|
||||||
|
|
||||||
import Divider from '../Divider';
|
import AsideDivider from '../Divider';
|
||||||
|
|
||||||
const Wrapper = styled.div``;
|
|
||||||
|
|
||||||
export const DeviceSelect = (props: Props) => {
|
export const DeviceSelect = (props: Props) => {
|
||||||
const { devices } = props;
|
const { devices } = props;
|
||||||
@ -214,12 +212,12 @@ export class DeviceDropdown extends Component<Props> {
|
|||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Wrapper>
|
<React.Fragment>
|
||||||
{currentDeviceMenu}
|
{currentDeviceMenu}
|
||||||
{deviceList.length > 1 ? <Divider textLeft="Other devices" borderBottom /> : null}
|
{deviceList.length > 1 ? <AsideDivider textLeft="Other devices" /> : null}
|
||||||
{deviceList}
|
{deviceList}
|
||||||
{webUsbButton}
|
{webUsbButton}
|
||||||
</Wrapper>
|
</React.Fragment>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user