refactor: account menu controller [skip e2e]
This commit is contained in:
@@ -4,16 +4,19 @@ import AccountMenu, { AccountMenuProps } from '../AccountMenu/AccountMenu'
|
|||||||
import Icon from '../Icon/Icon'
|
import Icon from '../Icon/Icon'
|
||||||
import Popover from '../Popover/Popover'
|
import Popover from '../Popover/Popover'
|
||||||
import StyledTooltip from '../StyledTooltip/StyledTooltip'
|
import StyledTooltip from '../StyledTooltip/StyledTooltip'
|
||||||
|
import { observer } from 'mobx-react-lite'
|
||||||
|
import { AccountMenuController } from '@/Controllers/AccountMenu/AccountMenuController'
|
||||||
|
|
||||||
type Props = AccountMenuProps & {
|
type Props = AccountMenuProps & {
|
||||||
isOpen: boolean
|
controller: AccountMenuController
|
||||||
hasError: boolean
|
hasError: boolean
|
||||||
toggleMenu: () => void
|
toggleMenu: () => void
|
||||||
user: unknown
|
user: unknown
|
||||||
}
|
}
|
||||||
|
|
||||||
const AccountMenuButton = ({ hasError, isOpen, mainApplicationGroup, onClickOutside, toggleMenu, user }: Props) => {
|
const AccountMenuButton = ({ hasError, controller, mainApplicationGroup, onClickOutside, toggleMenu, user }: Props) => {
|
||||||
const buttonRef = useRef<HTMLButtonElement>(null)
|
const buttonRef = useRef<HTMLButtonElement>(null)
|
||||||
|
const { show: isOpen } = controller
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -46,4 +49,4 @@ const AccountMenuButton = ({ hasError, isOpen, mainApplicationGroup, onClickOuts
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default AccountMenuButton
|
export default observer(AccountMenuButton)
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ type State = {
|
|||||||
showBetaWarning: boolean
|
showBetaWarning: boolean
|
||||||
showSyncResolution: boolean
|
showSyncResolution: boolean
|
||||||
newUpdateAvailable: boolean
|
newUpdateAvailable: boolean
|
||||||
showAccountMenu: boolean
|
|
||||||
offline: boolean
|
offline: boolean
|
||||||
hasError: boolean
|
hasError: boolean
|
||||||
arbitraryStatusMessage?: string
|
arbitraryStatusMessage?: string
|
||||||
@@ -62,7 +61,6 @@ class Footer extends AbstractComponent<Props, State> {
|
|||||||
showBetaWarning: false,
|
showBetaWarning: false,
|
||||||
showSyncResolution: false,
|
showSyncResolution: false,
|
||||||
newUpdateAvailable: false,
|
newUpdateAvailable: false,
|
||||||
showAccountMenu: false,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.webEventListenerDestroyer = props.application.addWebEventObserver((event, data) => {
|
this.webEventListenerDestroyer = props.application.addWebEventObserver((event, data) => {
|
||||||
@@ -119,12 +117,6 @@ class Footer extends AbstractComponent<Props, State> {
|
|||||||
arbitraryStatusMessage: message,
|
arbitraryStatusMessage: message,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
this.autorun(() => {
|
|
||||||
this.setState({
|
|
||||||
showAccountMenu: this.application.accountMenuController.show,
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
reloadUpgradeStatus() {
|
reloadUpgradeStatus() {
|
||||||
@@ -347,7 +339,7 @@ class Footer extends AbstractComponent<Props, State> {
|
|||||||
<div className="sk-app-bar-item relative z-footer-bar-item ml-0 select-none">
|
<div className="sk-app-bar-item relative z-footer-bar-item ml-0 select-none">
|
||||||
<AccountMenuButton
|
<AccountMenuButton
|
||||||
hasError={this.state.hasError}
|
hasError={this.state.hasError}
|
||||||
isOpen={this.state.showAccountMenu}
|
controller={this.application.accountMenuController}
|
||||||
mainApplicationGroup={this.props.applicationGroup}
|
mainApplicationGroup={this.props.applicationGroup}
|
||||||
onClickOutside={this.clickOutsideAccountMenu}
|
onClickOutside={this.clickOutsideAccountMenu}
|
||||||
toggleMenu={this.accountMenuClickHandler}
|
toggleMenu={this.accountMenuClickHandler}
|
||||||
|
|||||||
Reference in New Issue
Block a user