diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2019-06-27 13:34:55 +0200 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2019-06-27 20:01:18 +0200 |
| commit | 55ee652e4ef13faea40d4f202dfa66d77a01c813 (patch) | |
| tree | 32419bf246017da10c03d149a210c96a6d18c09b /gui/src/renderer/components/ConnectionInfoDisclosure.tsx | |
| parent | 7068c166b53b0a24dfcffa2c31c30bd120816938 (diff) | |
| download | mullvadvpn-55ee652e4ef13faea40d4f202dfa66d77a01c813.tar.xz mullvadvpn-55ee652e4ef13faea40d4f202dfa66d77a01c813.zip | |
Refactor connection panel into container
Diffstat (limited to 'gui/src/renderer/components/ConnectionInfoDisclosure.tsx')
| -rw-r--r-- | gui/src/renderer/components/ConnectionInfoDisclosure.tsx | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/gui/src/renderer/components/ConnectionInfoDisclosure.tsx b/gui/src/renderer/components/ConnectionInfoDisclosure.tsx deleted file mode 100644 index 3489a639dd..0000000000 --- a/gui/src/renderer/components/ConnectionInfoDisclosure.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import * as React from 'react'; -import { Component, Styles, Text, Types, View } from 'reactxp'; -import ImageView from './ImageView'; - -const styles = { - container: Styles.createViewStyle({ - flexDirection: 'row', - alignItems: 'center', - }), - caption: { - base: Styles.createTextStyle({ - fontFamily: 'Open Sans', - fontSize: 15, - fontWeight: '600', - lineHeight: 20, - color: 'rgb(255, 255, 255, 0.4)', - }), - hovered: Styles.createTextStyle({ - color: 'rgb(255, 255, 255)', - }), - }, -}; - -interface IProps { - onToggle?: (isOpen: boolean) => void; - defaultOpen?: boolean; - children: React.ReactText; - style?: Types.ViewStyleRuleSet | Types.ViewStyleRuleSet[]; -} - -interface IState { - isHovered: boolean; - isOpen: boolean; -} - -export default class ConnectionInfoDisclosure extends Component<IProps, IState> { - constructor(props: IProps) { - super(props); - - this.state = { - isHovered: false, - isOpen: props.defaultOpen === true, - }; - } - - public render() { - const tintColor = this.state.isHovered ? 'rgb(255, 255, 255)' : 'rgb(255, 255, 255, 0.4)'; - const textHoverStyle = - this.state.isOpen || this.state.isHovered ? styles.caption.hovered : undefined; - - return ( - <View - style={[styles.container, this.props.style]} - onMouseEnter={this.onMouseEnter} - onMouseLeave={this.onMouseLeave} - onPress={this.onToggle}> - <Text style={[styles.caption.base, textHoverStyle]}>{this.props.children}</Text> - <ImageView - source={this.state.isOpen ? 'icon-chevron-up' : 'icon-chevron-down'} - width={24} - height={24} - tintColor={tintColor} - /> - </View> - ); - } - - private onMouseEnter = () => { - this.setState({ isHovered: true }); - }; - - private onMouseLeave = () => { - this.setState({ isHovered: false }); - }; - - private onToggle = () => { - this.setState( - (state) => ({ - ...state, - isOpen: !state.isOpen, - }), - () => { - if (this.props.onToggle) { - this.props.onToggle(this.state.isOpen); - } - }, - ); - }; -} |
