in src/amo/components/Header/index.js [54:161]
renderMenuOrAuthButton() {
const {
i18n,
isReviewer,
loadedPageIsAnonymous,
siteIsReadOnly,
siteUser,
} = this.props;
if (loadedPageIsAnonymous) {
// The server has loaded a page that is marked as anonymous so we do not
// want to render any menu or authentication button here so that
// logged-in users are not confused.
return null;
}
return siteUser ? (
<DropdownMenu
text={siteUser.name}
className="Header-authenticate-button Header-button"
>
<DropdownMenuItem>{i18n.gettext('My Account')}</DropdownMenuItem>
<DropdownMenuItem>
<Link
className="Header-user-menu-collections-link"
to="/collections/"
>
{i18n.gettext('View My Collections')}
</Link>
</DropdownMenuItem>
<DropdownMenuItem>
<Link
className="Header-user-menu-view-profile-link"
to={siteUser ? `/user/${siteUser.id}/` : null}
>
{i18n.gettext('View My Profile')}
</Link>
</DropdownMenuItem>
<DropdownMenuItem>
<Link
className="Header-user-menu-edit-profile-link"
to={siteUser ? '/users/edit' : null}
>
{i18n.gettext('Edit My Profile')}
</Link>
</DropdownMenuItem>
<DropdownMenuItem>{i18n.gettext('Tools')}</DropdownMenuItem>
<DropdownMenuItem>
<Link
href="/developers/addon/submit/distribution"
prependClientApp={false}
>
{i18n.gettext('Submit a New Add-on')}
</Link>
</DropdownMenuItem>
<DropdownMenuItem>
<Link
href="/developers/addon/submit/theme/distribution"
prependClientApp={false}
>
{i18n.gettext('Submit a New Theme')}
</Link>
</DropdownMenuItem>
<DropdownMenuItem>
<Link
className="Header-user-menu-developers-submissions-link"
href="/developers/addons/"
prependClientApp={false}
>
{i18n.gettext('Manage My Submissions')}
</Link>
</DropdownMenuItem>
{isReviewer && (
<DropdownMenuItem>
<Link
className="Header-user-menu-reviewer-tools-link"
href="/reviewers/"
prependClientApp={false}
>
{i18n.gettext('Reviewer Tools')}
</Link>
</DropdownMenuItem>
)}
<DropdownMenuItem
className="Header-logout-button"
detached
disabled={siteIsReadOnly}
onClick={this.handleLogOut}
title={
siteIsReadOnly
? i18n.gettext(`This action is currently unavailable.
Please reload the page in a moment.`)
: null
}
>
{i18n.gettext('Log out')}
</DropdownMenuItem>
</DropdownMenu>
) : (
<AuthenticateButton
buttonType="none"
className="Header-authenticate-button Header-button"
noIcon
/>
);
}