Fix header styles

This commit is contained in:
Justin Edmund 2023-06-23 19:15:17 -07:00
parent 4c50360476
commit c01a945f91
2 changed files with 28 additions and 83 deletions

View file

@ -1,4 +1,4 @@
#Header { .header {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
margin-bottom: $unit; margin-bottom: $unit;
@ -22,7 +22,7 @@
background: var(--placeholder-bg); background: var(--placeholder-bg);
} }
#DropdownWrapper { .dropdownWrapper {
display: inline-block; display: inline-block;
padding-bottom: $unit; padding-bottom: $unit;
@ -32,8 +32,6 @@
} }
&:hover { &:hover {
// padding-right: $unit-4x;
.Button { .Button {
background: var(--button-bg-hover); background: var(--button-bg-hover);
color: var(--button-text-hover); color: var(--button-text-hover);

View file

@ -10,25 +10,23 @@ import Link from 'next/link'
import { accountState, initialAccountState } from '~utils/accountState' import { accountState, initialAccountState } from '~utils/accountState'
import { appState, initialAppState } from '~utils/appState' import { appState, initialAppState } from '~utils/appState'
import { getLocalId } from '~utils/localId' import { getLocalId } from '~utils/localId'
import { retrieveLocaleCookies } from '~utils/retrieveCookies'
import { setEditKey, storeEditKey } from '~utils/userToken' import { setEditKey, storeEditKey } from '~utils/userToken'
import { import {
DropdownMenu, DropdownMenu,
DropdownMenuTrigger, DropdownMenuTrigger,
DropdownMenuContent, DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuSeparator, DropdownMenuSeparator,
DropdownMenuLabel,
} from '~components/common/DropdownMenuContent' } from '~components/common/DropdownMenuContent'
import DropdownMenuGroup from '~components/common/DropdownMenuGroup'
import DropdownMenuLabel from '~components/common/DropdownMenuLabel'
import DropdownMenuItem from '~components/common/DropdownMenuItem'
import LanguageSwitch from '~components/LanguageSwitch'
import LoginModal from '~components/auth/LoginModal' import LoginModal from '~components/auth/LoginModal'
import SignupModal from '~components/auth/SignupModal' import SignupModal from '~components/auth/SignupModal'
import AccountModal from '~components/auth/AccountModal' import AccountModal from '~components/auth/AccountModal'
import Toast from '~components/common/Toast'
import Button from '~components/common/Button' import Button from '~components/common/Button'
import Tooltip from '~components/common/Tooltip' import Tooltip from '~components/common/Tooltip'
import * as Switch from '@radix-ui/react-switch'
import ChevronIcon from '~public/icons/Chevron.svg' import ChevronIcon from '~public/icons/Chevron.svg'
import MenuIcon from '~public/icons/Menu.svg' import MenuIcon from '~public/icons/Menu.svg'
@ -44,7 +42,6 @@ const Header = () => {
const router = useRouter() const router = useRouter()
const locale = const locale =
router.locale && ['en', 'ja'].includes(router.locale) ? router.locale : 'en' router.locale && ['en', 'ja'].includes(router.locale) ? router.locale : 'en'
const localeData = retrieveLocaleCookies()
// State management // State management
const [remixToastOpen, setRemixToastOpen] = useState(false) const [remixToastOpen, setRemixToastOpen] = useState(false)
@ -53,7 +50,6 @@ const Header = () => {
const [settingsModalOpen, setSettingsModalOpen] = useState(false) const [settingsModalOpen, setSettingsModalOpen] = useState(false)
const [leftMenuOpen, setLeftMenuOpen] = useState(false) const [leftMenuOpen, setLeftMenuOpen] = useState(false)
const [rightMenuOpen, setRightMenuOpen] = useState(false) const [rightMenuOpen, setRightMenuOpen] = useState(false)
const [languageChecked, setLanguageChecked] = useState(false)
const [name, setName] = useState('') const [name, setName] = useState('')
const [originalName, setOriginalName] = useState('') const [originalName, setOriginalName] = useState('')
@ -71,11 +67,6 @@ const Header = () => {
useEffect(() => () => unsubscribe(), []) useEffect(() => () => unsubscribe(), [])
// Hooks
useEffect(() => {
setLanguageChecked(localeData === 'ja' ? true : false)
}, [localeData])
// Methods: Event handlers (Buttons) // Methods: Event handlers (Buttons)
function handleLeftMenuButtonClicked() { function handleLeftMenuButtonClicked() {
setLeftMenuOpen(!leftMenuOpen) setLeftMenuOpen(!leftMenuOpen)
@ -102,15 +93,6 @@ const Header = () => {
setRightMenuOpen(false) setRightMenuOpen(false)
} }
// Methods: Event handlers (Remix toasts)
function handleRemixToastOpenChanged(open: boolean) {
setRemixToastOpen(open)
}
function handleRemixToastCloseClicked() {
setRemixToastOpen(false)
}
// Methods: Actions // Methods: Actions
function handleNewTeam(event: React.MouseEvent) { function handleNewTeam(event: React.MouseEvent) {
event.preventDefault() event.preventDefault()
@ -118,15 +100,6 @@ const Header = () => {
closeRightMenu() closeRightMenu()
} }
function changeLanguage(value: boolean) {
const language = value ? 'ja' : 'en'
const expiresAt = new Date()
expiresAt.setDate(expiresAt.getDate() + 120)
setCookie('NEXT_LOCALE', language, { path: '/', expires: expiresAt })
router.push(router.asPath, undefined, { locale: language })
}
function logout() { function logout() {
// Close menu // Close menu
closeRightMenu() closeRightMenu()
@ -200,24 +173,6 @@ const Header = () => {
) )
} }
const remixToast = () => {
return (
<Toast
altText={t('toasts.remixed', { title: originalName })}
open={remixToastOpen}
duration={2400}
type="foreground"
content={
<Trans i18nKey="toasts.remixed">
You remixed <strong>{{ title: originalName }}</strong>
</Trans>
}
onOpenChange={handleRemixToastOpenChanged}
onCloseClick={handleRemixToastCloseClicked}
/>
)
}
// Rendering: Modals // Rendering: Modals
const settingsModal = () => { const settingsModal = () => {
const user = accountState.account.user const user = accountState.account.user
@ -251,16 +206,16 @@ const Header = () => {
const left = () => { const left = () => {
return ( return (
<section> <section>
<div id="DropdownWrapper"> <div className={styles.dropdownWrapper}>
<DropdownMenu <DropdownMenu
open={leftMenuOpen} open={leftMenuOpen}
onOpenChange={handleLeftMenuOpenChange} onOpenChange={handleLeftMenuOpenChange}
> >
<DropdownMenuTrigger asChild> <DropdownMenuTrigger asChild>
<Button <Button
leftAccessoryIcon={<MenuIcon />} active={leftMenuOpen}
className={classNames({ Active: leftMenuOpen })}
blended={true} blended={true}
leftAccessoryIcon={<MenuIcon />}
onClick={handleLeftMenuButtonClicked} onClick={handleLeftMenuButtonClicked}
/> />
</DropdownMenuTrigger> </DropdownMenuTrigger>
@ -304,8 +259,8 @@ const Header = () => {
<> <>
{accountState.account.authorized && accountState.account.user ? ( {accountState.account.authorized && accountState.account.user ? (
<> <>
<DropdownMenuGroup className="MenuGroup"> <DropdownMenuGroup>
<DropdownMenuItem className="MenuItem" onClick={closeLeftMenu}> <DropdownMenuItem onClick={closeLeftMenu}>
<Link <Link
href={`/${accountState.account.user.username}` || ''} href={`/${accountState.account.user.username}` || ''}
passHref passHref
@ -313,7 +268,7 @@ const Header = () => {
<span>{t('menu.profile')}</span> <span>{t('menu.profile')}</span>
</Link> </Link>
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem className="MenuItem" onClick={closeLeftMenu}> <DropdownMenuItem onClick={closeLeftMenu}>
<Link href={`/saved` || ''}>{t('menu.saved')}</Link> <Link href={`/saved` || ''}>{t('menu.saved')}</Link>
</DropdownMenuItem> </DropdownMenuItem>
</DropdownMenuGroup> </DropdownMenuGroup>
@ -321,19 +276,19 @@ const Header = () => {
) : ( ) : (
'' ''
)} )}
<DropdownMenuGroup className="MenuGroup"> <DropdownMenuGroup>
<DropdownMenuItem className="MenuItem" onClick={closeLeftMenu}> <DropdownMenuItem onClick={closeLeftMenu}>
<Link href="/teams">{t('menu.teams')}</Link> <Link href="/teams">{t('menu.teams')}</Link>
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem className="MenuItem"> <DropdownMenuItem>
<div> <div>
<span>{t('menu.guides')}</span> <span>{t('menu.guides')}</span>
<i className="tag">{t('coming_soon')}</i> <i className="tag">{t('coming_soon')}</i>
</div> </div>
</DropdownMenuItem> </DropdownMenuItem>
</DropdownMenuGroup> </DropdownMenuGroup>
<DropdownMenuGroup className="MenuGroup"> <DropdownMenuGroup>
<DropdownMenuItem className="MenuItem" onClick={closeLeftMenu}> <DropdownMenuItem onClick={closeLeftMenu}>
<a <a
href={locale == 'ja' ? '/ja/about' : '/about'} href={locale == 'ja' ? '/ja/about' : '/about'}
target="_blank" target="_blank"
@ -342,7 +297,7 @@ const Header = () => {
{t('about.segmented_control.about')} {t('about.segmented_control.about')}
</a> </a>
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem className="MenuItem" onClick={closeLeftMenu}> <DropdownMenuItem onClick={closeLeftMenu}>
<a <a
href={locale == 'ja' ? '/ja/updates' : '/updates'} href={locale == 'ja' ? '/ja/updates' : '/updates'}
target="_blank" target="_blank"
@ -351,7 +306,7 @@ const Header = () => {
{t('about.segmented_control.updates')} {t('about.segmented_control.updates')}
</a> </a>
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem className="MenuItem" onClick={closeLeftMenu}> <DropdownMenuItem onClick={closeLeftMenu}>
<a <a
href={locale == 'ja' ? '/ja/roadmap' : '/roadmap'} href={locale == 'ja' ? '/ja/roadmap' : '/roadmap'}
target="_blank" target="_blank"
@ -372,25 +327,25 @@ const Header = () => {
if (account.authorized && account.user) { if (account.authorized && account.user) {
items = ( items = (
<> <>
<DropdownMenuGroup className="MenuGroup"> <DropdownMenuGroup>
<DropdownMenuLabel className="MenuLabel"> <DropdownMenuLabel>
{account.user ? `@${account.user.username}` : t('no_user')} {account.user ? `@${account.user.username}` : t('no_user')}
</DropdownMenuLabel> </DropdownMenuLabel>
<DropdownMenuItem className="MenuItem" onClick={closeRightMenu}> <DropdownMenuItem onClick={closeRightMenu}>
<Link href={`/${account.user.username}` || ''} passHref> <Link href={`/${account.user.username}` || ''} passHref>
<span>{t('menu.profile')}</span> <span>{t('menu.profile')}</span>
</Link> </Link>
</DropdownMenuItem> </DropdownMenuItem>
</DropdownMenuGroup> </DropdownMenuGroup>
<DropdownMenuSeparator /> <DropdownMenuSeparator />
<DropdownMenuGroup className="MenuGroup"> <DropdownMenuGroup>
<DropdownMenuItem <DropdownMenuItem
className="MenuItem" className="MenuItem"
onClick={() => setSettingsModalOpen(true)} onClick={() => setSettingsModalOpen(true)}
> >
<span>{t('menu.settings')}</span> <span>{t('menu.settings')}</span>
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem className="MenuItem" onClick={logout}> <DropdownMenuItem onClick={logout}>
<span>{t('menu.logout')}</span> <span>{t('menu.logout')}</span>
</DropdownMenuItem> </DropdownMenuItem>
</DropdownMenuGroup> </DropdownMenuGroup>
@ -399,18 +354,10 @@ const Header = () => {
} else { } else {
items = ( items = (
<> <>
<DropdownMenuGroup className="MenuGroup"> <DropdownMenuGroup>
<DropdownMenuItem className="MenuItem language"> <DropdownMenuItem className="language">
<span>{t('menu.language')}</span> <span>{t('menu.language')}</span>
<Switch.Root <LanguageSwitch />
className="Switch"
onCheckedChange={changeLanguage}
checked={languageChecked}
>
<Switch.Thumb className="Thumb" />
<span className="left">JP</span>
<span className="right">EN</span>
</Switch.Root>
</DropdownMenuItem> </DropdownMenuItem>
</DropdownMenuGroup> </DropdownMenuGroup>
<DropdownMenuGroup className="MenuGroup"> <DropdownMenuGroup className="MenuGroup">
@ -435,7 +382,7 @@ const Header = () => {
} }
return ( return (
<nav id="Header"> <nav className={styles.header}>
{left()} {left()}
{right()} {right()}
{settingsModal()} {settingsModal()}