import React from 'react'
import { THeaderProps, THeaderVariant } from '../../interfaces'
import BrandFtMastheadSvg from '../svg-components/BrandFtMasthead'
import { TNavMenuItem } from '@financial-times/dotcom-types-navigation'
import { AskFtButton } from '../ask-ft/askFtButton'
import { DropdownNavigation, ProfessionalLabel } from '../dropdown-navigation/dropdownNavigation'
import { PRO_NAVIGATION_DROPDOWN_DEFAULT_LIST } from '../dropdown-navigation/constants'
import { MprButton } from '../mpr/mprButton'
const HeaderWrapper = (props) => (
)
const DrawerIcon = () => (
Open side navigation menu
)
const SearchIcon = () => (
Open search bar
)
const MyAccountLink = ({
item,
signedIn,
variant
}: {
item: TNavMenuItem
signedIn: boolean
variant?: THeaderVariant
}) => {
const classNames = 'o-header__top-myaccount'
const id = signedIn ? 'o-header-top-link-myaccount' : 'o-header-top-link-signin'
const setTabIndex = variant === 'sticky' ? { tabIndex: -1 } : null
return (
{item.label}
)
}
const TopWrapper = (props) => (
)
const TopColumnLeft = (props: THeaderProps) => (
{props.showAskButton && (
)}
{props.showMprButton && (
)}
)
const TopColumnCenter = () => (
)
const TopColumnCenterNoLink = () => (
)
const TopColumnRightLoggedIn = (props: THeaderProps) => {
const [
signInAction,
subscribeAction,
restartSubscriptionAction
] = props.data['navbar-top-right']?.items ?? [];
const showRestartSubscriptionButton = props.showRestartSubscriptionButton && restartSubscriptionAction;
return (
{showRestartSubscriptionButton && (
)}
{/*
We want to ensure the restart subscription button and subscribe button
do not appear at the same time by any chance.
*/}
{!showRestartSubscriptionButton && !props.userIsSubscribed && subscribeAction && (
)}
{signInAction && (
)}
)
}
const MenuButton = ({ showProNavigation, signInAction, variant }) => {
const isSticky = variant === 'sticky'
return (
{showProNavigation ? (
}
variant={variant}
/>
) : (
)}
)
}
const SignInLink = ({
item,
variant,
className
}: {
item: TNavMenuItem
variant?: THeaderVariant
className?: string
}) => {
const setTabIndex = variant === 'sticky' ? { tabIndex: -1 } : null
return (
{item.label}
)
}
const SubscribeButton = ({
item,
variant,
className
}: {
item: TNavMenuItem
variant?: THeaderVariant
className?: string
}) => {
const setTabIndex = variant === 'sticky' ? { tabIndex: -1 } : null
return (
{item.label}
)
}
const RestartSubscriptionButton = ({ item, className, variant }: { item: TNavMenuItem, className?: string, variant?: THeaderVariant }) => {
const setTabIndex = variant === 'sticky' ? { tabIndex: -1 } : null
return (
{item.label}
)
}
const TopColumnRightAnon = ({ items, variant }: { items: TNavMenuItem[]; variant?: THeaderVariant }) => {
// If user is anonymous the second list item is styled as a button
const [signInAction, subscribeAction] = items
return (
{subscribeAction && (
)}
{signInAction && }
)
}
const TopColumnRight = (props: THeaderProps) => {
if (props.userIsLoggedIn) {
return
} else {
const userNavAnonItems = props.data['navbar-top-right-anon'].items
return
}
}
export {
HeaderWrapper,
TopWrapper,
TopColumnLeft,
TopColumnCenter,
TopColumnCenterNoLink,
TopColumnRight,
TopColumnRightAnon,
SubscribeButton,
SignInLink
}