import React from "react" import { connect } from "react-redux" import { UAParser } from "ua-parser-js" import moment from "moment" import { bindActionCreators } from "redux" import { deleteUserToken } from "../../actions/users" const mapDispatchToProps = (dispatch) => bindActionCreators({ deleteUserToken }, dispatch) function mapStateToProps(state) { return { tokens: state.userStore.get("tokens"), }; } function UserTokens(props) { return (
); } function TokenList(props) { return (

Tokens

Tokens

{props.tokens.map(function(el, index) { return ( ); })}
); } function Token(props) { const ua = UAParser(props.data.get("user_agent")); return (
Description
{props.data.get("description")}
Last IP
{props.data.get("ip")}
Last used
{moment(props.data.get("last_used")).fromNow()}
Created
{moment(props.data.get("created_at")).fromNow()}
Device
OS
Browser
); } class Actions extends React.PureComponent { constructor(props) { super(props); this.handleClick = this.handleClick.bind(this); } handleClick() { const token = this.props.data.get("token"); this.props.deleteToken(token); } render() { return (
); } } function Logo(props) { var className; if (props.ua === "canape-cli") { className = "terminal"; } else if (props.device.type == "mobile" ){ className = "mobile"; } else { switch (props.browser.name) { case "Chrome": case "chrome": className = "chrome"; break; case "Safari": case "safari": className = "safari"; break; case "Firefox": case "firefox": className = "firefox"; break; default: className = "question"; break; } } return (
); } function OS(props) { var osName = "-"; if (props.name !== undefined) { osName = props.name; if (props.version !== undefined) { osName += " " + props.version; } } return ( {osName} ); } function Device(props) { var deviceName = "-"; if (props.model !== undefined) { deviceName = props.model; } return ( {deviceName} ); } function Browser(props) { var browserName = "-"; if (props.name !== undefined) { browserName = props.name; if (props.version !== undefined) { browserName += " - " + props.version; } } return ( {browserName} ); } export default connect(mapStateToProps, mapDispatchToProps)(UserTokens);