summaryrefslogtreecommitdiffhomepage
path: root/app/components
diff options
context:
space:
mode:
authorErik Larkö <erik@mullvad.net>2017-06-26 15:19:03 +0200
committerErik Larkö <erik@mullvad.net>2017-07-03 12:41:51 +0200
commit1bb1bdbe31da5c23e4cb2b414a8756c645049998 (patch)
tree5d875318d24b327b20da40762b31115c608f0652 /app/components
parent4e8f44c7ef6ffee09d9d3abd70bfd093f87d6b18 (diff)
downloadmullvadvpn-1bb1bdbe31da5c23e4cb2b414a8756c645049998.tar.xz
mullvadvpn-1bb1bdbe31da5c23e4cb2b414a8756c645049998.zip
Moved the redux stuff into separate folder and renamed user->account and connect->connection
Diffstat (limited to 'app/components')
-rw-r--r--app/components/Account.js9
-rw-r--r--app/components/Connect.js38
-rw-r--r--app/components/Login.js13
-rw-r--r--app/components/SelectLocation.js2
-rw-r--r--app/components/Settings.js12
5 files changed, 36 insertions, 38 deletions
diff --git a/app/components/Account.js b/app/components/Account.js
index e817baa280..b592bbd850 100644
--- a/app/components/Account.js
+++ b/app/components/Account.js
@@ -6,10 +6,10 @@ import { Layout, Container, Header } from './Layout';
import { formatAccount } from '../lib/formatters';
import ExternalLinkSVG from '../assets/images/icon-extLink.svg';
-import type { UserReduxState } from '../reducers/user';
+import type { AccountReduxState } from '../redux/account/reducers';
export type AccountProps = {
- user: UserReduxState;
+ account: AccountReduxState;
onLogout: () => void;
onClose: () => void;
onExternalLink: (type: string) => void;
@@ -23,9 +23,8 @@ export default class Account extends Component {
onLogout = () => this.props.onLogout();
render(): React.Element<*> {
- const user = this.props.user;
- const paidUntil = moment(user.paidUntil);
- const formattedAccountId = formatAccount(user.account || '');
+ let paidUntil = moment(this.props.account.paidUntil);
+ let formattedAccountId = formatAccount(this.props.account.account || '');
const formattedPaidUntil = paidUntil.format('hA, D MMMM YYYY').toUpperCase();
const isOutOfTime = paidUntil.isSameOrBefore(moment());
diff --git a/app/components/Connect.js b/app/components/Connect.js
index 7ad0d4cc8b..602ac5299e 100644
--- a/app/components/Connect.js
+++ b/app/components/Connect.js
@@ -12,9 +12,9 @@ import ExternalLinkSVG from '../assets/images/icon-extLink.svg';
import type { Coordinate2d } from '../types';
import type { ServerInfo } from '../lib/backend';
import type { HeaderBarStyle } from './HeaderBar';
-import type { UserReduxState } from '../reducers/user';
-import type { ConnectReduxState } from '../reducers/connect';
-import type { SettingsReduxState } from '../reducers/settings';
+import type { AccountReduxState } from '../redux/account/reducers';
+import type { ConnectionReduxState } from '../redux/connection/reducers';
+import type { SettingsReduxState } from '../redux/settings/reducers';
type DisplayLocation = {
location: Coordinate2d;
@@ -23,8 +23,8 @@ type DisplayLocation = {
};
export type ConnectProps = {
- user: UserReduxState,
- connect: ConnectReduxState,
+ account: AccountReduxState,
+ connection: ConnectionReduxState,
settings: SettingsReduxState,
onSettings: () => void,
onSelectLocation: () => void,
@@ -112,7 +112,7 @@ export default class Connect extends Component {
let isConnecting = false;
let isConnected = false;
let isDisconnected = false;
- switch(this.props.connect.status) {
+ switch(this.props.connection.status) {
case 'connecting': isConnecting = true; break;
case 'connected': isConnected = true; break;
case 'disconnected': isDisconnected = true; break;
@@ -122,7 +122,7 @@ export default class Connect extends Component {
const displayLocation = this.displayLocation();
const mapBounds = this.calculateMapBounds(displayLocation.location, altitude);
const mapBoundsOptions = { offset: [0, -113], animate: !this.state.isFirstPass };
- const userLocation = this.convertToMapCoordinate(this.props.user.location || [0, 0]);
+ const accountLocation = this.convertToMapCoordinate(this.props.account.location || [0, 0]);
const serverLocation = this.convertToMapCoordinate(serverInfo.location);
return (
@@ -144,7 +144,7 @@ export default class Connect extends Component {
</If>
<If condition={ !isConnected }>
<Then>
- <Marker coordinates={ userLocation } offset={ [0, -10] }>
+ <Marker coordinates={ accountLocation } offset={ [0, -10] }>
<img src='./assets/images/location-marker-unsecure.svg' />
</Marker>
</Then>
@@ -229,7 +229,7 @@ export default class Connect extends Component {
<div className={ this.ipAddressClass() } onClick={ this.onIPAddressClick.bind(this) }>
<If condition={ this.state.showCopyIPMessage }>
<Then><span>{ 'IP copied to clipboard!' }</span></Then>
- <Else><span>{ this.props.connect.clientIp }</span></Else>
+ <Else><span>{ this.props.connection.clientIp }</span></Else>
</If>
</div>
</div>
@@ -341,7 +341,7 @@ export default class Connect extends Component {
// Private
headerStyle(): HeaderBarStyle {
- switch(this.props.connect.status) {
+ switch(this.props.connection.status) {
case 'connecting':
case 'disconnected':
return 'error';
@@ -353,9 +353,9 @@ export default class Connect extends Component {
networkSecurityClass(): string {
let classes = ['connect__status-security'];
- if(this.props.connect.status === 'connected') {
+ if(this.props.connection.status === 'connected') {
classes.push('connect__status-security--secure');
- } else if(this.props.connect.status === 'disconnected') {
+ } else if(this.props.connection.status === 'disconnected') {
classes.push('connect__status-security--unsecured');
}
@@ -363,7 +363,7 @@ export default class Connect extends Component {
}
networkSecurityMessage(): string {
- switch(this.props.connect.status) {
+ switch(this.props.connection.status) {
case 'connected': return 'Secure connection';
case 'connecting': return 'Creating secure connection';
default: return 'Unsecured connection';
@@ -372,7 +372,7 @@ export default class Connect extends Component {
spinnerClass(): string {
var classes = ['connect__status-icon'];
- if(this.props.connect.status !== 'connecting') {
+ if(this.props.connection.status !== 'connecting') {
classes.push('connect__status-icon--hidden');
}
return classes.join(' ');
@@ -380,7 +380,7 @@ export default class Connect extends Component {
ipAddressClass(): string {
var classes = ['connect__status-ipaddress'];
- if(this.props.connect.status === 'connecting') {
+ if(this.props.connection.status === 'connecting') {
classes.push('connect__status-ipaddress--invisible');
}
return classes.join(' ');
@@ -388,8 +388,8 @@ export default class Connect extends Component {
displayLocation(): DisplayLocation {
// return user location when disconnected
- if(this.props.connect.status === 'disconnected') {
- let { location, country, city } = this.props.user;
+ if(this.props.connection.status === 'disconnected') {
+ let { location, country, city } = this.props.account;
return {
location: location || [0, 0],
country, city
@@ -407,12 +407,12 @@ export default class Connect extends Component {
displayError(): ?BackendError {
// Offline?
- if(!this.props.connect.isOnline) {
+ if(!this.props.connection.isOnline) {
return new BackendError('NO_INTERNET');
}
// No credit?
- const { paidUntil } = this.props.user;
+ const { paidUntil } = this.props.account;
if(paidUntil && moment(paidUntil).isSameOrBefore(moment())) {
return new BackendError('NO_CREDIT');
}
diff --git a/app/components/Login.js b/app/components/Login.js
index 9daa3f7e78..dc0f9e9baa 100644
--- a/app/components/Login.js
+++ b/app/components/Login.js
@@ -6,11 +6,10 @@ import AccountInput from './AccountInput';
import ExternalLinkSVG from '../assets/images/icon-extLink.svg';
import LoginArrowSVG from '../assets/images/icon-arrow.svg';
-import type { LoginState } from '../enums';
-import type { UserReduxState } from '../reducers/user';
+import type { AccountReduxState, LoginState } from '../redux/account/reducers';
export type LoginPropTypes = {
- user: UserReduxState,
+ account: AccountReduxState,
onLogin: (accountNumber: string) => void,
onSettings: ?(() => void),
onChange: (input: string) => void,
@@ -29,7 +28,7 @@ export default class Login extends Component {
onFocus = () => this.setState({ isActive: true });
onBlur = () => this.setState({ isActive: false });
onLogin = () => {
- const { account } = this.props.user;
+ const { account } = this.props.account;
if(account && account.length > 0) {
this.props.onLogin(account);
}
@@ -106,8 +105,8 @@ export default class Login extends Component {
}
componentWillReceiveProps(nextProps: LoginPropTypes) {
- const prev = this.props.user || {};
- const next = nextProps.user || {};
+ const prev = this.props.account || {};
+ const next = nextProps.account || {};
if(prev.status !== next.status && next.status === 'failed') {
this.setState({ notifyOnFirstChangeAfterFailure: true });
@@ -115,7 +114,7 @@ export default class Login extends Component {
}
render(): React.Element<*> {
- const { account, status, error } = this.props.user;
+ const { account, status, error } = this.props.account;
const title = this.formTitle(status);
const subtitle = this.formSubtitle(status, error);
diff --git a/app/components/SelectLocation.js b/app/components/SelectLocation.js
index c94df2a11d..5a1fb5d342 100644
--- a/app/components/SelectLocation.js
+++ b/app/components/SelectLocation.js
@@ -5,7 +5,7 @@ import { Layout, Container, Header } from './Layout';
import { servers } from '../config';
import CustomScrollbars from './CustomScrollbars';
-import type { SettingsReduxState } from '../reducers/settings';
+import type { SettingsReduxState } from '../redux/settings/reducers';
export type SelectLocationProps = {
settings: SettingsReduxState,
diff --git a/app/components/Settings.js b/app/components/Settings.js
index 9b8eff5321..ade9dba8f5 100644
--- a/app/components/Settings.js
+++ b/app/components/Settings.js
@@ -6,11 +6,11 @@ import { Layout, Container, Header } from './Layout';
import Switch from './Switch';
import CustomScrollbars from './CustomScrollbars';
-import type { UserReduxState } from '../reducers/user';
-import type { SettingsReduxState } from '../reducers/settings';
+import type { AccountReduxState } from '../redux/account/reducers';
+import type { SettingsReduxState } from '../redux/settings/reducers';
export type SettingsProps = {
- user: UserReduxState,
+ account: AccountReduxState,
settings: SettingsReduxState,
onQuit: () => void,
onClose: () => void,
@@ -31,12 +31,12 @@ export default class Settings extends Component {
}
render(): React.Element<*> {
- const isLoggedIn = this.props.user.status === 'ok';
+ const isLoggedIn = this.props.account.status === 'ok';
let isOutOfTime = false, formattedPaidUntil = '';
- let paidUntilIso = this.props.user.paidUntil;
+ let paidUntilIso = this.props.account.paidUntil;
if(isLoggedIn && paidUntilIso) {
- let paidUntil = moment(this.props.user.paidUntil);
+ let paidUntil = moment(this.props.account.paidUntil);
isOutOfTime = paidUntil.isSameOrBefore(moment());
formattedPaidUntil = paidUntil.fromNow(true) + ' left';
}