chore(react): fixing test and another method to tab nav

This commit is contained in:
Ely Lucas
2019-10-14 08:43:39 -06:00
parent 8935d4d1b6
commit 28d21ae55f
4 changed files with 11 additions and 4 deletions

View File

@ -33,7 +33,8 @@ export class NavManager extends React.Component<NavManagerProps, NavContextState
getStackManager: this.getStackManager.bind(this),
getPageManager: this.getPageManager.bind(this),
currentPath: this.props.location.pathname,
registerIonPage: () => { return; } // overridden in View for each IonPage
registerIonPage: () => { return; }, // overridden in View for each IonPage
tabNavigate: this.tabNavigate.bind(this)
};
this.listenUnregisterCallback = this.props.history.listen((location: HistoryLocation) => {
@ -93,6 +94,10 @@ export class NavManager extends React.Component<NavManagerProps, NavContextState
this.props.history.push(path, { direction });
}
tabNavigate(url: string) {
this.props.history.replace(url, { direction: 'back' });
}
getPageManager() {
return (children: any) => children;
}

View File

@ -10,7 +10,7 @@ describe('IonTabs', () => {
const { container } = render(
<IonTabs>
<IonRouterOutlet></IonRouterOutlet>
<IonTabBar slot="bottom" currentPath={'/'} navigate={() => {}}>
<IonTabBar slot="bottom" currentPath={'/'}>
<IonTabButton tab="schedule">
<IonLabel>Schedule</IonLabel>
<IonIcon name="schedule"></IonIcon>
@ -44,7 +44,7 @@ describe('IonTabs', () => {
const { container } = render(
<IonTabs>
<IonRouterOutlet></IonRouterOutlet>
<IonTabBar slot="bottom" currentPath={'/'} navigate={() => {}}>
<IonTabBar slot="bottom" currentPath={'/'}>
{false &&
<IonTabButton tab="schedule">
<IonLabel>Schedule</IonLabel>

View File

@ -70,7 +70,7 @@ const IonTabBarUnwrapped = /*@__PURE__*/(() => class extends React.Component<Pro
if (this.state.activeTab === e.detail.tab) {
const originalHref = this.state.tabs[e.detail.tab].originalHref;
if (this.context.hasIonicRouter()) {
this.context.goBack(originalHref);
this.context.tabNavigate(originalHref);
} else {
this.context.navigate(originalHref, 'back');
}

View File

@ -10,6 +10,7 @@ export interface NavContextState {
navigate: (path: string, direction?: RouterDirection | 'none') => void;
hasIonicRouter: () => boolean;
registerIonPage: (page: HTMLElement) => void;
tabNavigate: (url: string) => void;
currentPath: string | undefined;
}
@ -26,6 +27,7 @@ export const NavContext = /*@__PURE__*/React.createContext<NavContextState>({
}
},
navigate: (path: string) => { window.location.pathname = path; },
tabNavigate: () => undefined,
hasIonicRouter: () => false,
registerIonPage: () => undefined,
currentPath: undefined