import React from 'react';
import { useLayout, usePopup } from '../../../utils/hooks/';
import { PageStore } from '../../../utils/stores/';
import { HeaderConsumer, MemberConsumer, LinksConsumer } from '../../../utils/contexts/';
import { CircleIconButton, MaterialIcon, NavigationContentApp, NavigationMenuList, PopupTop, PopupMain, UserThumbnail } from '../../_shared';
import { HeaderThemeSwitcher } from './HeaderThemeSwitcher';
import { translateString } from '../../../utils/helpers/';
function headerPopupPages(user, popupNavItems, hasHeaderThemeSwitcher) {
const pages = {
main: null,
};
if (user.is.anonymous) {
pages.main = (
);
} else {
const NavMenus = [];
function insertNavMenus(id, arr) {
if (arr.length) {
if (NavMenus.length) {
NavMenus.push(
);
}
NavMenus.push();
}
}
insertNavMenus('top', popupNavItems.top);
insertNavMenus('middle', popupNavItems.middle);
insertNavMenus('bottom', popupNavItems.bottom);
pages.main = (
);
}
if (hasHeaderThemeSwitcher) {
pages['switch-theme'] = (
);
}
return pages;
}
function UploadMediaButton({ user, links }) {
const [popupContentRef, PopupContent, PopupTrigger] = usePopup();
const uploadMenuItems = [
{
link: links.user.addMedia,
icon: 'upload',
text: translateString('Upload'),
},
{
link: '/record_screen',
icon: 'videocam',
text: translateString('Record Screen'),
},
];
return !user.is.anonymous && user.can.addMedia ? (
{translateString('Upload media')}
) : null;
}
function LoginButton({ user, link, hasHeaderThemeSwitcher }) {
return user.is.anonymous && user.can.login ? (
) : null;
}
function RegisterButton({ user, link, hasHeaderThemeSwitcher }) {
return user.is.anonymous && user.can.register ? (
) : null;
}
export function HeaderRight(props) {
const { toggleMobileSearch } = useLayout();
const [popupContentRef, PopupContent, PopupTrigger] = usePopup();
return (
{(header) => (
{(user) => (
{(links) => (
{user.is.anonymous ? (
) : (
)}
{PageStore.get('config-contents').header.right ? (
) : null}
)}
)}
)}
);
}