// @flow import * as ICONS from 'constants/icons'; import * as SETTINGS from 'constants/settings'; import * as PAGES from 'constants/pages'; import React, { Fragment } from 'react'; import { withRouter } from 'react-router'; import Button from 'component/button'; import LbcSymbol from 'component/common/lbc-symbol'; import WunderBar from 'component/wunderbar'; import Icon from 'component/common/icon'; import { Menu, MenuList, MenuButton, MenuItem } from '@reach/menu-button'; // Move this into jessops password util import cookie from 'cookie'; // @if TARGET='app' import keytar from 'keytar'; // @endif; function deleteAuthToken() { // @if TARGET='app' keytar.deletePassword('LBRY', 'auth_token').catch(console.error); //eslint-disable-line // @endif; // @if TARGET='web' document.cookie = cookie.serialize('auth_token', '', { expires: new Date(), }); // @endif } type Props = { autoUpdateDownloaded: boolean, balance: string, isUpgradeAvailable: boolean, roundedBalance: number, downloadUpgradeRequested: any => void, history: { push: string => void, goBack: () => void, goForward: () => void }, currentTheme: string, automaticDarkModeEnabled: boolean, setClientSetting: (string, boolean | string) => void, hideBalance: boolean, email: ?string, }; const Header = (props: Props) => { const { roundedBalance, history, setClientSetting, currentTheme, automaticDarkModeEnabled, hideBalance, email, } = props; const isAuthenticated = Boolean(email); function handleThemeToggle() { if (automaticDarkModeEnabled) { setClientSetting(SETTINGS.AUTOMATIC_DARK_MODE_ENABLED, false); } if (currentTheme === 'dark') { setClientSetting(SETTINGS.THEME, 'light'); } else { setClientSetting(SETTINGS.THEME, 'dark'); } } function getAccountTitle() { if (roundedBalance > 0 && !hideBalance) { return ( {roundedBalance} ); } return __('Account'); } function signOut() { // Replace this with actual clearUser function window.store.dispatch({ type: 'USER_FETCH_FAILURE' }); deleteAuthToken(); } return ( {/* @if TARGET='app' */} history.goBack()} icon={ICONS.ARROW_LEFT} iconSize={18} /> history.goForward()} icon={ICONS.ARROW_RIGHT} iconSize={18} /> {/* @endif */} {isAuthenticated ? ( {getAccountTitle()} history.push(`/$/account`)}> {__('Overview')} history.push(`/$/rewards`)}> {__('Rewards')} history.push(`/$/wallet`)}> {__('Wallet')} history.push(`/$/publish`)}> {__('Publish')} {__('Sign Out')} history.push(`/$/settings`)}> {__('Settings')} history.push(`/$/help`)}> {__('Help')} {currentTheme === 'light' ? 'Dark' : 'Light'} ) : ( )} ); }; export default withRouter(Header);