import React, { useState, useEffect } from 'react'; import { connect } from 'react-redux'; import { withRouter } from 'react-router'; import * as actions from 'loot-core/src/client/actions'; import { View, Text, Button, Tooltip, Menu } from 'loot-design/src/components/common'; import { colors } from 'loot-design/src/style'; function LoggedInUser({ history, files, budgetId, userData, getUserData, setAppState, signOut, pushModal, closeBudget, style, color }) { let [loading, setLoading] = useState(true); let [menuOpen, setMenuOpen] = useState(false); useEffect(() => { getUserData().then(() => setLoading(false)); }, []); async function onChangePassword() { await closeBudget(); window.__history.push('/change-password'); } function onMenuSelect(type) { setMenuOpen(false); switch (type) { case 'change-password': onChangePassword(); break; case 'sign-out': signOut(); break; default: } } function onClick() { setMenuOpen(true); } if (loading) { return ( Loading account... ); } else if (userData) { if (userData.offline) { return Offline; } return ( {menuOpen && ( setMenuOpen(false)} > x)} /> )} ); } else { return Not logged in; } } export default connect( state => ({ userData: state.user.data, files: state.budgets.allFiles, budgetId: state.prefs.local && state.prefs.local.id }), actions )(withRouter(LoggedInUser));