diff options
Diffstat (limited to 'src/view')
-rw-r--r-- | src/view/screens/Menu.tsx | 7 | ||||
-rw-r--r-- | src/view/shell/mobile/index.tsx | 24 |
2 files changed, 26 insertions, 5 deletions
diff --git a/src/view/screens/Menu.tsx b/src/view/screens/Menu.tsx index 27ed91adc..fab0f6dec 100644 --- a/src/view/screens/Menu.tsx +++ b/src/view/screens/Menu.tsx @@ -37,7 +37,12 @@ export const Menu = ({navIdx, visible}: ScreenParams) => { // = const onNavigate = (url: string) => { - store.nav.navigate(url) + if (url === '/notifications') { + store.nav.switchTo(1, true) + } else { + store.nav.switchTo(0, true) + store.nav.navigate(url) + } } const onPressCreateScene = () => { store.shell.openModal(new CreateSceneModel()) diff --git a/src/view/shell/mobile/index.tsx b/src/view/shell/mobile/index.tsx index 2c1023632..9acbdeca9 100644 --- a/src/view/shell/mobile/index.tsx +++ b/src/view/shell/mobile/index.tsx @@ -121,13 +121,29 @@ export const MobileShell: React.FC = observer(() => { const screenRenderDesc = constructScreenRenderDesc(store.nav) const onPressHome = () => { - if (store.nav.tab.current.url === '/') { - scrollElRef.current?.scrollToOffset({offset: 0}) + if (store.nav.tab.fixedTabPurpose === 0) { + if (store.nav.tab.current.url === '/') { + scrollElRef.current?.scrollToOffset({offset: 0}) + } else { + store.nav.tab.fixedTabReset() + } + } else { + store.nav.switchTo(0, false) + if (store.nav.tab.index === 0) { + store.nav.tab.fixedTabReset() + } + } + } + const onPressNotifications = () => { + if (store.nav.tab.fixedTabPurpose === 1) { + store.nav.tab.fixedTabReset() } else { - store.nav.tab.resetTo('/') + store.nav.switchTo(1, false) + if (store.nav.tab.index === 0) { + store.nav.tab.fixedTabReset() + } } } - const onPressNotifications = () => store.nav.tab.resetTo('/notifications') const onPressTabs = () => toggleTabsMenu(!isTabsSelectorActive) const doNewTab = (url: string) => () => store.nav.newTab(url) |