import React from 'react';
import PropTypes from 'prop-types';
import { withTranslation } from 'react-i18next';
import { createSubscribedElement } from '../UnstatedUtils';
import AppContainer from '../../services/AppContainer';
import UserPicture from '../User/UserPicture';
const PersonalDropdown = (props) => {
const { t, appContainer } = props;
const user = appContainer.currentUser || {};
const logoutHandler = () => {
const { interceptorManager } = appContainer;
const context = {
user,
currentPagePath: decodeURIComponent(window.location.pathname),
};
interceptorManager.process('logout', context);
window.location.href = '/logout';
};
const preferDrawerModeSwitchModifiedHandler = (bool) => {
appContainer.setDrawerModePreference(bool);
};
const followOsCheckboxModifiedHandler = (bool) => {
// reset user preference
if (bool) {
appContainer.setColorSchemePreference(null);
}
// set preferDarkModeByMediaQuery as users preference
else {
appContainer.setColorSchemePreference(appContainer.state.preferDarkModeByMediaQuery);
}
};
const userPreferenceSwitchModifiedHandler = (bool) => {
appContainer.setColorSchemePreference(bool);
};
/*
* render
*/
const { preferDarkModeByMediaQuery, preferDarkModeByUser, preferDrawerModeByUser } = appContainer.state;
const isUserPreferenceExists = preferDarkModeByUser != null;
const isDarkMode = () => {
if (isUserPreferenceExists) {
return preferDarkModeByUser;
}
return preferDarkModeByMediaQuery;
};
return (
<>
{/* Button */}
{/* remove .dropdown-toggle for hide caret */}
{/* See https://stackoverflow.com/a/44577512/13183572 */}