Debug info panel

This commit is contained in:
James Barnsley
2017-01-29 12:54:06 +13:00
parent 55c3bdc5ce
commit cdbcbd10a8
5 changed files with 75 additions and 1 deletions

50
src/js/components/DebugInfo.js Executable file
View File

@ -0,0 +1,50 @@
import React, { PropTypes } from 'react'
import { connect } from 'react-redux'
import { Link } from 'react-router'
import { createStore, bindActionCreators } from 'redux'
import * as uiActions from '../services/ui/actions'
class DebugInfo extends React.Component{
constructor(props) {
super(props);
}
render(){
return (
<div className="debug-info">
<div className="item">
{this.props.ui.albums ? Object.keys(this.props.ui.albums).length : '0'}&nbsp;albums
</div>
<div className="item">
{this.props.ui.artists ? Object.keys(this.props.ui.artists).length : '0'}&nbsp;artists
</div>
<div className="item">
{this.props.ui.playlists ? Object.keys(this.props.ui.playlists).length : '0'}&nbsp;playlists
</div>
<div className="item">
{this.props.ui.users ? Object.keys(this.props.ui.users).length : '0'}&nbsp;users
</div>
<div className="item">
{'ontouchstart' in document.documentElement ? 'can touch' : 'no touch'}
</div>
</div>
);
}
}
const mapStateToProps = (state, ownProps) => {
return {
ui: state.ui
}
}
const mapDispatchToProps = (dispatch) => {
return {
uiActions: bindActionCreators(uiActions, dispatch)
}
}
export default connect(mapStateToProps, mapDispatchToProps)(DebugInfo)

View File

@ -12,6 +12,7 @@ import ContextMenu from '../components/ContextMenu'
import Dragger from '../components/Dragger' import Dragger from '../components/Dragger'
import Modal from '../components/Modal/Modal' import Modal from '../components/Modal/Modal'
import Notifications from '../components/Notifications' import Notifications from '../components/Notifications'
import DebugInfo from '../components/DebugInfo'
import * as uiActions from '../services/ui/actions' import * as uiActions from '../services/ui/actions'
import * as pusherActions from '../services/pusher/actions' import * as pusherActions from '../services/pusher/actions'
@ -132,6 +133,7 @@ class App extends React.Component{
<Dragger /> <Dragger />
<Modal /> <Modal />
<Notifications /> <Notifications />
{this.props.debug_info ? <DebugInfo /> : null}
</div> </div>
); );
} }
@ -151,7 +153,8 @@ const mapStateToProps = (state, ownProps) => {
sidebar_open: state.ui.sidebar_open, sidebar_open: state.ui.sidebar_open,
dragger: state.ui.dragger, dragger: state.ui.dragger,
modal: state.ui.modal, modal: state.ui.modal,
context_menu: state.ui.context_menu context_menu: state.ui.context_menu,
debug_info: state.ui.debug_info
} }
} }

View File

@ -87,6 +87,14 @@ class Debug extends React.Component{
onChange={ e => this.props.uiActions.set({ log_actions: !this.props.log_actions })} /> onChange={ e => this.props.uiActions.set({ log_actions: !this.props.log_actions })} />
<span className="label">Log actions in developer console</span> <span className="label">Log actions in developer console</span>
</label> </label>
<label>
<input
type="checkbox"
name="debug_info"
checked={ this.props.debug_info }
onChange={ e => this.props.uiActions.set({ debug_info: !this.props.debug_info })} />
<span className="label">Show debug info</span>
</label>
</div> </div>
</div> </div>
</form> </form>
@ -161,6 +169,7 @@ const mapStateToProps = (state, ownProps) => {
connectionid: state.pusher.connectionid, connectionid: state.pusher.connectionid,
emulate_touch: state.ui.emulate_touch, emulate_touch: state.ui.emulate_touch,
log_actions: state.ui.log_actions, log_actions: state.ui.log_actions,
debug_info: state.ui.debug_info,
debug_response: state.ui.debug_response debug_response: state.ui.debug_response
} }
} }

View File

@ -23,6 +23,7 @@
@import 'components/notifications'; @import 'components/notifications';
@import 'components/dropdown-field'; @import 'components/dropdown-field';
@import 'components/loader'; @import 'components/loader';
@import 'components/debug';
@import 'views/artist'; @import 'views/artist';
@import 'views/user'; @import 'views/user';

11
src/scss/components/_debug.scss Executable file
View File

@ -0,0 +1,11 @@
.debug-info {
font-size: 10px;
position: fixed;
top: 0;
right: 0;
padding: 10px;
background: rgba(0,0,0,0.5);
color: #FFFFFF;
pointer-events: none;
}