Minor optimizations.

This commit is contained in:
Mario Basic
2015-06-07 21:53:47 +02:00
parent 7e1d3b3595
commit a2ed4e5acd
20 changed files with 450 additions and 393 deletions

View File

@@ -1,53 +1,51 @@
var React = require('react');
import React from 'react';
class MainList extends React.Component
{
componentDidMount()
{
class MainList extends React.Component {
componentDidMount() {
}
_openOptionsPage()
{
if (chrome.runtime.openOptionsPage) {
// New way to open options pages, if supported (Chrome 42+).
chrome.runtime.openOptionsPage();
} else {
// Reasonable fallback.
window.open(chrome.runtime.getURL('options.html'));
}
_openOptionsPage() {
if (chrome.runtime.openOptionsPage) {
// New way to open options pages, if supported (Chrome 42+).
chrome.runtime.openOptionsPage();
} else {
// Reasonable fallback.
window.open(chrome.runtime.getURL('options.html'));
}
}
render()
{
render() {
var loginLogoutButton = () => {
if(this.props.loggedIn === true)
{
if (this.props.loggedIn === true) {
return (
<div>
<a target="_blank" href="https://wakatime.com/settings/rules" className="list-group-item">
<i className="fa fa-fw fa-filter"></i> Custom Rules
</a>
<a target="_blank" href="https://wakatime.com/dashboard" className="list-group-item">
<i className="fa fa-fw fa-tachometer"></i> Dashboard
</a>
<a href="#" className="list-group-item" onClick={this.props.logoutUser}>
<i className="fa fa-fw fa-sign-out"></i> Logout
</a>
<a target="_blank" href="https://wakatime.com/settings/rules" className="list-group-item">
<i className="fa fa-fw fa-filter"></i>
Custom Rules
</a>
<a target="_blank" href="https://wakatime.com/dashboard" className="list-group-item">
<i className="fa fa-fw fa-tachometer"></i>
Dashboard
</a>
<a href="#" className="list-group-item" onClick={this.props.logoutUser}>
<i className="fa fa-fw fa-sign-out"></i>
Logout
</a>
</div>
);
}
return (
<a target="_blank" href="https://wakatime.com/login" className="list-group-item">
<i className="fa fa-fw fa-sign-in"></i> Login
<i className="fa fa-fw fa-sign-in"></i>
Login
</a>
);
};
var signedInAs = () => {
if(this.props.loggedIn === true)
{
if (this.props.loggedIn === true) {
return (
<div className="panel panel-default">
<div className="panel-body">
@@ -56,7 +54,9 @@ class MainList extends React.Component
<img className="img-circle" width="48" height="48" src={this.props.user.photo} />
</div>
<div className="col-xs-10">
Signed in as <b>{this.props.user.full_name}</b><br />
Signed in as
<b>{this.props.user.full_name}</b>
<br />
{this.props.user.email}
</div>
</div>
@@ -66,14 +66,15 @@ class MainList extends React.Component
}
};
return(
return (
<div>
{signedInAs()}
<div className="list-group">
<a href="#" className="list-group-item" onClick={this._openOptionsPage}>
<i className="fa fa-fw fa-cogs"></i> Options
<i className="fa fa-fw fa-cogs"></i>
Options
</a>
{loginLogoutButton()}

View File

@@ -1,6 +1,6 @@
var React = require('react');
import React from 'react';
class Navbar extends React.Component{
class Navbar extends React.Component {
render() {
return (

View File

@@ -1,15 +1,11 @@
var React = require("react");
var $ = require('jquery');
import React from "react";
import $ from 'jquery';
import NavBar from './NavBar.react.js';
import MainList from './MainList.react.js';
import changeExtensionIcon from '../helpers/changeExtensionIcon.js';
import WakaTimeOriginal from '../WakaTime.js';
var NavBar = require('./NavBar.react');
var MainList = require('./MainList.react');
var changeExtensionIcon = require('../helpers/changeExtensionIcon');
var WakaTimeOriginal = require('../WakaTime');
class WakaTime extends React.Component
{
class WakaTime extends React.Component {
logoutUserUrl = 'https://wakatime.com/logout';
state = {
@@ -21,56 +17,49 @@ class WakaTime extends React.Component
loggedIn: false
};
componentDidMount()
{
chrome.storage.sync.get({
theme: 'light'
}, function(items) {
if(items.theme == 'light') {
changeExtensionIcon();
}
else {
changeExtensionIcon('white');
}
});
componentDidMount() {
chrome.storage.sync.get({
theme: 'light'
}, function (items) {
if (items.theme == 'light') {
changeExtensionIcon();
}
else {
changeExtensionIcon('white');
}
});
var wakatime = new WakaTimeOriginal;
var wakatime = new WakaTimeOriginal;
wakatime.checkAuth().done(data => {
wakatime.checkAuth().done(data => {
if(data !== false){
if (data !== false) {
this.setState({
user: {
full_name: data.full_name,
email: data.email,
photo: data.photo
},
loggedIn: true
});
this.setState({
user: {
full_name: data.full_name,
email: data.email,
photo: data.photo
},
loggedIn: true
});
changeExtensionIcon();
}
else {
changeExtensionIcon('red');
//TODO: Redirect user to wakatime login page.
//
}
});
changeExtensionIcon();
}
else {
changeExtensionIcon('red');
}
});
}
logoutUser()
{
logoutUser() {
var deferredObject = $.Deferred();
$.ajax({
url: this.logoutUserUrl,
method: 'GET',
success: () => {
success: () => {
deferredObject.resolve(this);
@@ -86,8 +75,7 @@ class WakaTime extends React.Component
return deferredObject.promise();
}
_logoutUser()
{
_logoutUser() {
this.logoutUser().done(() => {
this.setState({
@@ -104,9 +92,8 @@ class WakaTime extends React.Component
});
}
render()
{
return(
render() {
return (
<div>
<NavBar />
<div className="container">