feature(react): rc2 release

* fix(): add a page with class ion-page back to ionrouteroutlet - fixes #19146

* wip

* fix(react): attributes show up in dom

* chore(): adding ion-page to core wip

* wip

* fix destroy method

* wrap dom writes in raf

* Add comments

* fix(react): IonPage work

* chore(): ionpage rc3 changelog text

* fix(): syncing ion-page in a new way to get rid of timeout loop

* chore(): ViewStacks refactor out of router

* fix(): remove unused method in router

* wip - before setActiveView rework

* fix(): react router ion page work

* chore(): cleanup and dev release

* fix(): remove need to name tabs

* chore(): adding dev mode helpers

* fix(): adding className prop to back button fixes #19251

* fix(): routerDirection changes

* chore(): rc2 release

* fix(): fix react version in package

* chores(): build kickoff
This commit is contained in:
Ely Lucas
2019-09-12 14:25:37 -06:00
committed by GitHub
parent aec2936725
commit 73dd70d756
32 changed files with 822 additions and 611 deletions

View File

@ -1,25 +1,36 @@
import React from 'react';
import { createForwardRef } from './utils';
import { NavContext } from '../contexts/NavContext';
type Props = React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
import { ReactProps } from './ReactProps';
type InternalProps = Props & {
forwardedRef?: React.Ref<HTMLDivElement>
};
export const IonPage = /*@__PURE__*/(() => class IonPageInternal extends React.Component<React.HTMLAttributes<HTMLElement> & ReactProps> {
context!: React.ContextType<typeof NavContext>;
ref = React.createRef<HTMLDivElement>();
type ExternalProps = Props & {
ref?: React.Ref<HTMLDivElement>
};
componentDidMount() {
if (this.context && this.ref.current) {
if (this.context.hasIonicRouter()) {
this.context.registerIonPage(this.ref.current);
}
}
}
const IonPageInternal: React.FC<InternalProps> = ({ children, forwardedRef, className, ...props }) => (
<div
className={className !== undefined ? `ion-page ${className}` : 'ion-page'}
ref={forwardedRef}
{...props}
>
{children}
</div>
);
render() {
const { className, children, ...props } = this.props;
export const IonPage = /*@__PURE__*/createForwardRef<ExternalProps, HTMLDivElement>(IonPageInternal, 'IonPage');
return (
<div className={className ? `ion-page ${className}` : 'ion-page'} ref={this.ref} {...props}>
{children}
</div>
);
}
static get displayName() {
return 'IonPage';
}
static get contextType() {
return NavContext;
}
})();