2021-12-20 09:29:51 -03:00
|
|
|
import { connect } from 'react-redux';
|
|
|
|
import { doSignOut } from 'redux/actions/app';
|
2022-05-09 08:05:29 -03:00
|
|
|
import { selectActiveChannelClaim } from 'redux/selectors/app';
|
2022-02-18 05:14:54 -08:00
|
|
|
import { selectMyChannelClaimIds } from 'redux/selectors/claims';
|
2022-07-11 16:12:37 +02:00
|
|
|
import { selectUser, selectUserEmail, selectUserVerifiedEmail } from 'redux/selectors/user';
|
|
|
|
import { selectClientSetting } from 'redux/selectors/settings';
|
|
|
|
import { doSetClientSetting } from 'redux/actions/settings';
|
|
|
|
import * as SETTINGS from 'constants/settings';
|
|
|
|
|
2021-12-20 09:29:51 -03:00
|
|
|
import HeaderProfileMenuButton from './view';
|
|
|
|
|
|
|
|
const select = (state) => ({
|
2022-07-11 16:12:37 +02:00
|
|
|
currentTheme: selectClientSetting(state, SETTINGS.THEME),
|
|
|
|
automaticDarkModeEnabled: selectClientSetting(state, SETTINGS.AUTOMATIC_DARK_MODE_ENABLED),
|
|
|
|
|
|
|
|
user: selectUser(state),
|
2022-02-18 05:14:54 -08:00
|
|
|
myChannelClaimIds: selectMyChannelClaimIds(state),
|
2022-05-09 08:05:29 -03:00
|
|
|
activeChannelClaim: selectActiveChannelClaim(state),
|
2022-01-05 18:56:17 -08:00
|
|
|
authenticated: selectUserVerifiedEmail(state),
|
2021-12-20 09:29:51 -03:00
|
|
|
email: selectUserEmail(state),
|
|
|
|
});
|
|
|
|
|
2022-07-11 16:12:37 +02:00
|
|
|
const perform = (dispatch) => ({
|
|
|
|
handleThemeToggle: (automaticDarkModeEnabled, currentTheme) => {
|
|
|
|
if (automaticDarkModeEnabled) dispatch(doSetClientSetting(SETTINGS.AUTOMATIC_DARK_MODE_ENABLED, false));
|
|
|
|
dispatch(doSetClientSetting(SETTINGS.THEME, currentTheme === 'dark' ? 'light' : 'dark', true));
|
|
|
|
},
|
|
|
|
signOut: () => dispatch(doSignOut()),
|
|
|
|
});
|
2021-12-20 09:29:51 -03:00
|
|
|
|
|
|
|
export default connect(select, perform)(HeaderProfileMenuButton);
|