fix(react): don't show back button when not appropriate

This commit is contained in:
Ely Lucas
2019-12-03 15:29:55 -07:00
committed by Ely Lucas
parent 693ae21096
commit b8517781b1
10 changed files with 40 additions and 39 deletions

View File

@ -14,11 +14,11 @@ interface IonPageInternalProps extends IonPageProps {
class IonPageInternal extends React.Component<IonPageInternalProps> {
context!: React.ContextType<typeof NavContext>;
ref: React.RefObject<HTMLDivElement>;// React.createRef<HTMLDivElement>();
ref: React.RefObject<HTMLDivElement>;
constructor(props: IonPageInternalProps) {
super(props);
this.ref = this.props.forwardedRef || React.createRef()
this.ref = this.props.forwardedRef || React.createRef();
}
componentDidMount() {
@ -26,7 +26,7 @@ class IonPageInternal extends React.Component<IonPageInternalProps> {
if (this.context.hasIonicRouter()) {
this.context.registerIonPage(this.ref.current);
}
}
}
}
render() {
@ -46,6 +46,6 @@ class IonPageInternal extends React.Component<IonPageInternalProps> {
static get contextType() {
return NavContext;
}
};
}
export const IonPage = createForwardRef(IonPageInternal, 'IonPage');

View File

@ -15,12 +15,12 @@ export interface ReactControllerProps {
export const createControllerComponent = <OptionsType extends object, OverlayType extends OverlayBase>(
displayName: string,
controller: { create: (options: OptionsType) => Promise<OverlayType> }
controller: { create: (options: OptionsType) => Promise<OverlayType>; }
) => {
const dismissEventName = `on${displayName}DidDismiss`;
type Props = OptionsType & ReactControllerProps & {
forwardedRef?: React.RefObject<OverlayType>
forwardedRef?: React.RefObject<OverlayType>;
};
class Overlay extends React.Component<Props> {
@ -80,16 +80,16 @@ export const createControllerComponent = <OptionsType extends object, OverlayTyp
if (this.props.forwardedRef) {
(this.props.forwardedRef as any).current = this.overlay;
}
await this.overlay.present();
await this.overlay.present();
}
}
render(): null {
return null;
}
};
}
return React.forwardRef<OverlayType, Props>((props, ref) => {
return <Overlay {...props} forwardedRef={ref} />
})
return <Overlay {...props} forwardedRef={ref} />;
});
};

View File

@ -17,12 +17,12 @@ export interface ReactOverlayProps {
export const createOverlayComponent = <OverlayComponent extends object, OverlayType extends OverlayElement>(
displayName: string,
controller: { create: (options: any) => Promise<OverlayType> }
controller: { create: (options: any) => Promise<OverlayType>; }
) => {
const dismissEventName = `on${displayName}DidDismiss`;
type Props = OverlayComponent & ReactOverlayProps & {
forwardedRef?: React.RefObject<OverlayType>
forwardedRef?: React.RefObject<OverlayType>;
};
class Overlay extends React.Component<Props> {
@ -96,9 +96,9 @@ export const createOverlayComponent = <OverlayComponent extends object, OverlayT
this.el
);
}
};
}
return React.forwardRef<OverlayType, Props>((props, ref) => {
return <Overlay {...props} forwardedRef={ref} />
})
return <Overlay {...props} forwardedRef={ref} />;
});
};