chore: fix mobile navigation [skip e2e]

This commit is contained in:
Aman Harwara
2023-08-11 01:25:16 +05:30
parent 5910a5262e
commit 23e6310486
3 changed files with 50 additions and 44 deletions

View File

@@ -8,12 +8,14 @@ import Icon from '../Icon/Icon'
import Popover from '../Popover/Popover' import Popover from '../Popover/Popover'
import QuickSettingsMenu from '../QuickSettingsMenu/QuickSettingsMenu' import QuickSettingsMenu from '../QuickSettingsMenu/QuickSettingsMenu'
import StyledTooltip from '../StyledTooltip/StyledTooltip' import StyledTooltip from '../StyledTooltip/StyledTooltip'
import RoundIconButton from '../Button/RoundIconButton'
type Props = { type Props = {
application: WebApplication application: WebApplication
isMobileNavigation?: boolean
} }
const QuickSettingsButton = ({ application }: Props) => { const QuickSettingsButton = ({ application, isMobileNavigation = false }: Props) => {
const buttonRef = useRef<HTMLButtonElement>(null) const buttonRef = useRef<HTMLButtonElement>(null)
const commandService = useCommandService() const commandService = useCommandService()
@@ -32,6 +34,9 @@ const QuickSettingsButton = ({ application }: Props) => {
return ( return (
<> <>
<StyledTooltip label="Open quick settings menu"> <StyledTooltip label="Open quick settings menu">
{isMobileNavigation ? (
<RoundIconButton className="ml-2.5 bg-default" onClick={toggleMenu} label="Go to vaults menu" icon="themes" />
) : (
<button <button
onClick={toggleMenu} onClick={toggleMenu}
className="flex h-full w-8 cursor-pointer items-center justify-center" className="flex h-full w-8 cursor-pointer items-center justify-center"
@@ -41,6 +46,7 @@ const QuickSettingsButton = ({ application }: Props) => {
<Icon type="themes" className={classNames(isOpen && 'text-info', 'rounded hover:text-info')} /> <Icon type="themes" className={classNames(isOpen && 'text-info', 'rounded hover:text-info')} />
</div> </div>
</button> </button>
)}
</StyledTooltip> </StyledTooltip>
<Popover <Popover
title="Quick settings" title="Quick settings"

View File

@@ -6,8 +6,9 @@ import StyledTooltip from '../StyledTooltip/StyledTooltip'
import VaultSelectionMenu from '../VaultSelectionMenu/VaultSelectionMenu' import VaultSelectionMenu from '../VaultSelectionMenu/VaultSelectionMenu'
import { useApplication } from '../ApplicationProvider' import { useApplication } from '../ApplicationProvider'
import { featureTrunkVaultsEnabled } from '@/FeatureTrunk' import { featureTrunkVaultsEnabled } from '@/FeatureTrunk'
import RoundIconButton from '../Button/RoundIconButton'
const VaultSelectionButton = () => { const VaultSelectionButton = ({ isMobileNavigation = false }: { isMobileNavigation?: boolean }) => {
const application = useApplication() const application = useApplication()
const buttonRef = useRef<HTMLButtonElement>(null) const buttonRef = useRef<HTMLButtonElement>(null)
const exclusivelyShownVault = application.vaultDisplayService.exclusivelyShownVault const exclusivelyShownVault = application.vaultDisplayService.exclusivelyShownVault
@@ -22,7 +23,19 @@ const VaultSelectionButton = () => {
return ( return (
<> <>
<StyledTooltip label="Open vault selection menu"> <StyledTooltip label="Open vault selection menu">
<button onClick={toggleMenu} className="flex h-full cursor-pointer items-center justify-center" ref={buttonRef}> {isMobileNavigation ? (
<RoundIconButton
className="ml-2.5 bg-default"
onClick={toggleMenu}
label="Go to vaults menu"
icon="safe-square"
/>
) : (
<button
onClick={toggleMenu}
className="flex h-full cursor-pointer items-center justify-center"
ref={buttonRef}
>
<div className="flex items-center"> <div className="flex items-center">
<Icon <Icon
type="safe-square" type="safe-square"
@@ -38,6 +51,7 @@ const VaultSelectionButton = () => {
)} )}
</div> </div>
</button> </button>
)}
</StyledTooltip> </StyledTooltip>
<Popover <Popover
title="Vault options" title="Vault options"

View File

@@ -15,6 +15,8 @@ import { usePaneSwipeGesture } from '../Panes/usePaneGesture'
import { mergeRefs } from '@/Hooks/mergeRefs' import { mergeRefs } from '@/Hooks/mergeRefs'
import { useAvailableSafeAreaPadding } from '@/Hooks/useSafeAreaPadding' import { useAvailableSafeAreaPadding } from '@/Hooks/useSafeAreaPadding'
import { featureTrunkVaultsEnabled } from '@/FeatureTrunk' import { featureTrunkVaultsEnabled } from '@/FeatureTrunk'
import QuickSettingsButton from '../Footer/QuickSettingsButton'
import VaultSelectionButton from '../Footer/VaultSelectionButton'
type Props = { type Props = {
application: WebApplication application: WebApplication
@@ -128,24 +130,8 @@ const Navigation = forwardRef<HTMLDivElement, Props>(({ application, className,
label="Go to preferences" label="Go to preferences"
icon="tune" icon="tune"
/> />
<RoundIconButton <QuickSettingsButton application={application} isMobileNavigation />
className="ml-2.5 bg-default" {featureTrunkVaultsEnabled() && <VaultSelectionButton isMobileNavigation />}
onClick={() => {
application.quickSettingsMenuController.toggle()
}}
label="Go to quick settings menu"
icon="themes"
/>
{featureTrunkVaultsEnabled() && (
<RoundIconButton
className="ml-2.5 bg-default"
onClick={() => {
application.vaultSelectionController.toggle()
}}
label="Go to vaults menu"
icon="safe-square"
/>
)}
</div> </div>
{children} {children}
</div> </div>