From 684293ddbf1ad4edce590d56f7ff66fcd6c817a5 Mon Sep 17 00:00:00 2001 From: Ely Lucas Date: Tue, 3 Dec 2019 15:29:55 -0700 Subject: [PATCH] fix(react): don't show back button when not appropriate --- packages/react-router/package.json | 4 ++-- .../src/ReactRouter/NavManager.tsx | 1 + .../react-router/src/ReactRouter/Router.tsx | 24 ++++++++----------- .../src/ReactRouter/StackManager.tsx | 6 ++--- packages/react-router/tslint.json | 5 +++- packages/react/package.json | 4 ++-- packages/react/src/components/IonPage.tsx | 8 +++---- .../components/createControllerComponent.tsx | 12 +++++----- .../src/components/createOverlayComponent.tsx | 10 ++++---- packages/react/tslint.json | 5 ++-- 10 files changed, 40 insertions(+), 39 deletions(-) diff --git a/packages/react-router/package.json b/packages/react-router/package.json index f22bd4d44de..3a4e7e02a36 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -50,7 +50,7 @@ "@ionic/core": "4.11.5", "@ionic/react": "4.11.5", "@types/jest": "^23.3.9", - "@types/node": "12.6.9", + "@types/node": "^12.12.14", "@types/react": "^16.9.2", "@types/react-dom": "^16.9.0", "@types/react-router": "^5.0.3", @@ -70,7 +70,7 @@ "tslint": "^5.20.0", "tslint-ionic-rules": "0.0.21", "tslint-react": "^4.1.0", - "typescript": "3.5.3" + "typescript": "^3.7.2" }, "jest": { "preset": "ts-jest", diff --git a/packages/react-router/src/ReactRouter/NavManager.tsx b/packages/react-router/src/ReactRouter/NavManager.tsx index e73cd756eb8..edcb6461735 100644 --- a/packages/react-router/src/ReactRouter/NavManager.tsx +++ b/packages/react-router/src/ReactRouter/NavManager.tsx @@ -3,6 +3,7 @@ import { NavContext, NavContextState } from '@ionic/react'; import { Location as HistoryLocation, UnregisterCallback } from 'history'; import React from 'react'; import { RouteComponentProps } from 'react-router-dom'; + import { StackManager } from './StackManager'; interface NavManagerProps extends RouteComponentProps { diff --git a/packages/react-router/src/ReactRouter/Router.tsx b/packages/react-router/src/ReactRouter/Router.tsx index 50bfdb5f616..499b92914b0 100644 --- a/packages/react-router/src/ReactRouter/Router.tsx +++ b/packages/react-router/src/ReactRouter/Router.tsx @@ -2,7 +2,7 @@ import { NavDirection } from '@ionic/core'; import { RouterDirection, getConfig } from '@ionic/react'; import { Action as HistoryAction, Location as HistoryLocation, UnregisterCallback } from 'history'; import React from 'react'; -import { RouteComponentProps, withRouter, matchPath } from 'react-router-dom'; +import { RouteComponentProps, matchPath, withRouter } from 'react-router-dom'; import { generateId, isDevMode } from '../utils'; import { LocationHistory } from '../utils/LocationHistory'; @@ -23,7 +23,7 @@ class RouteManager extends React.Component { - for (let routeKey in this.routes) { + for (const routeKey in this.routes) { const route = this.routes[routeKey]; - if (route.props.path == child.props.path) { + if (route.props.path === child.props.path) { this.routes[routeKey] = child; } } @@ -408,11 +404,11 @@ class RouteManager extends React.Component { {context => } - ) -} + ); +}; export const StackManager = withContext(StackManagerInner); diff --git a/packages/react-router/tslint.json b/packages/react-router/tslint.json index 2f90574c64c..d46400c97a3 100644 --- a/packages/react-router/tslint.json +++ b/packages/react-router/tslint.json @@ -27,6 +27,9 @@ "jsx-no-bind": false, "jsx-no-lambda": false, "jsx-no-multiline-js": false, - "jsx-wrap-multiline": false + "jsx-wrap-multiline": false, + "forin": false, + "strict-type-predicates": false, + "no-unused-expression": false } } diff --git a/packages/react/package.json b/packages/react/package.json index d6822e557d5..32c7446c15c 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -48,7 +48,7 @@ }, "devDependencies": { "@types/jest": "^23.3.9", - "@types/node": "10.12.9", + "@types/node": "^12.12.14", "@types/react": "^16.9.2", "@types/react-dom": "^16.9.0", "fs-extra": "^8.1.0", @@ -66,7 +66,7 @@ "tslint": "^5.18.0", "tslint-ionic-rules": "0.0.21", "tslint-react": "^4.0.0", - "typescript": "3.5.3" + "typescript": "^3.7.2" }, "jest": { "preset": "ts-jest", diff --git a/packages/react/src/components/IonPage.tsx b/packages/react/src/components/IonPage.tsx index 1faa2e7b259..17ff6efe374 100644 --- a/packages/react/src/components/IonPage.tsx +++ b/packages/react/src/components/IonPage.tsx @@ -14,11 +14,11 @@ interface IonPageInternalProps extends IonPageProps { class IonPageInternal extends React.Component { context!: React.ContextType; - ref: React.RefObject;// React.createRef(); + ref: React.RefObject; 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 { if (this.context.hasIonicRouter()) { this.context.registerIonPage(this.ref.current); } - } + } } render() { @@ -46,6 +46,6 @@ class IonPageInternal extends React.Component { static get contextType() { return NavContext; } -}; +} export const IonPage = createForwardRef(IonPageInternal, 'IonPage'); diff --git a/packages/react/src/components/createControllerComponent.tsx b/packages/react/src/components/createControllerComponent.tsx index ef8dcec68ea..b0bb79ee4e8 100644 --- a/packages/react/src/components/createControllerComponent.tsx +++ b/packages/react/src/components/createControllerComponent.tsx @@ -15,12 +15,12 @@ export interface ReactControllerProps { export const createControllerComponent = ( displayName: string, - controller: { create: (options: OptionsType) => Promise } + controller: { create: (options: OptionsType) => Promise; } ) => { const dismissEventName = `on${displayName}DidDismiss`; type Props = OptionsType & ReactControllerProps & { - forwardedRef?: React.RefObject + forwardedRef?: React.RefObject; }; class Overlay extends React.Component { @@ -80,16 +80,16 @@ export const createControllerComponent = ((props, ref) => { - return - }) + return ; + }); }; diff --git a/packages/react/src/components/createOverlayComponent.tsx b/packages/react/src/components/createOverlayComponent.tsx index 7560904afdb..63bd121dc15 100644 --- a/packages/react/src/components/createOverlayComponent.tsx +++ b/packages/react/src/components/createOverlayComponent.tsx @@ -17,12 +17,12 @@ export interface ReactOverlayProps { export const createOverlayComponent = ( displayName: string, - controller: { create: (options: any) => Promise } + controller: { create: (options: any) => Promise; } ) => { const dismissEventName = `on${displayName}DidDismiss`; type Props = OverlayComponent & ReactOverlayProps & { - forwardedRef?: React.RefObject + forwardedRef?: React.RefObject; }; class Overlay extends React.Component { @@ -96,9 +96,9 @@ export const createOverlayComponent = ((props, ref) => { - return - }) + return ; + }); }; diff --git a/packages/react/tslint.json b/packages/react/tslint.json index 3ba6e0b0266..fb8fdaa4783 100644 --- a/packages/react/tslint.json +++ b/packages/react/tslint.json @@ -14,7 +14,6 @@ "trailing-comma": false, "no-null-keyword": false, "no-console": false, - "no-unbound-method": true, "no-floating-promises": false, "no-invalid-template-strings": true, "ban-export-const-enum": true, @@ -27,6 +26,8 @@ "jsx-no-bind": false, "jsx-no-lambda": false, "jsx-no-multiline-js": false, - "jsx-wrap-multiline": false + "jsx-wrap-multiline": false, + "no-empty-interface": false, + "no-unbound-method": false } }